Creating drivers and *Programmable Classes for Tofino device
ONOS-6836 ONOS-6837 ONOS-6839
Change-Id: Iaf3dd8a08533877f66a177f6d529290c51b0675b
diff --git a/drivers/barefoot/BUCK b/drivers/barefoot/BUCK
new file mode 100644
index 0000000..fada65d
--- /dev/null
+++ b/drivers/barefoot/BUCK
@@ -0,0 +1,35 @@
+GRPC_VER = '1.3.0'
+
+COMPILE_DEPS = [
+ '//lib:CORE_DEPS',
+ '//lib:minimal-json',
+ '//incubator/bmv2/model:onos-incubator-bmv2-model',
+ '//protocols/p4runtime/api:onos-protocols-p4runtime-api',
+ '//drivers/default:onos-drivers-default',
+ '//incubator/grpc-dependencies:grpc-core-repkg-' + GRPC_VER,
+ '//lib:grpc-netty-' + GRPC_VER,
+]
+
+BUNDLES = [
+ ':onos-drivers-barefoot',
+ '//incubator/bmv2/model:onos-incubator-bmv2-model',
+ '//drivers/default:onos-drivers-default',
+]
+
+osgi_jar(
+ deps = COMPILE_DEPS,
+)
+
+onos_app (
+ app_name = 'org.onosproject.drivers.barefoot',
+ title = 'Barefoot Device Drivers',
+ category = 'Drivers',
+ url = 'http://onosproject.org',
+ description = 'ONOS Barefoot device drivers application.',
+ included_bundles = BUNDLES,
+ required_apps = [
+ 'org.onosproject.generaldeviceprovider',
+ 'org.onosproject.protocols.p4runtime',
+ 'org.onosproject.drivers.p4runtime'
+ ],
+)
diff --git a/drivers/barefoot/features.xml b/drivers/barefoot/features.xml
new file mode 100644
index 0000000..1741897
--- /dev/null
+++ b/drivers/barefoot/features.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ ~ Copyright 2017-present Open Networking Laboratory
+ ~
+ ~ 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.
+ -->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="${project.artifactId}-${project.version}">
+ <feature name="${project.artifactId}" version="${project.version}"
+ description="${project.description}">
+ <feature>onos-api</feature>
+ <bundle>mvn:${project.groupId}/${project.artifactId}/${project.version}</bundle>
+
+ </feature>
+</features>
diff --git a/drivers/barefoot/pom.xml b/drivers/barefoot/pom.xml
new file mode 100644
index 0000000..cc19685
--- /dev/null
+++ b/drivers/barefoot/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2017-present Open Networking Laboratory
+ ~
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>onos-drivers-general</artifactId>
+ <groupId>org.onosproject</groupId>
+ <version>1.11.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>onos-drivers-bmv2</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>BMv2 device drivers</description>
+ <dependencies>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-grpc-protocol-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>io.grpc</groupId>
+ <artifactId>grpc-netty</artifactId>
+ <version>1.3.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-incubator-bmv2-model</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onosproject</groupId>
+ <artifactId>onos-drivers</artifactId>
+ <version>1.11.0-SNAPSHOT</version>
+ </dependency>
+
+ <!-- protocols/p4runtime/api missing -->
+
+ </dependencies>
+
+ <properties>
+ <onos.app.name>org.onosproject.drivers.barefoot</onos.app.name>
+ <onos.app.origin>ON.Lab</onos.app.origin>
+ <onos.app.title>BMv2 Device Drivers</onos.app.title>
+ <onos.app.category>Drivers</onos.app.category>
+ <onos.app.url>http://onosproject.org</onos.app.url>
+ <onos.app.requires>
+ org.onosproject.generaldeviceprovider
+ </onos.app.requires>
+ </properties>
+
+</project>
diff --git a/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/BarefootDriversLoader.java b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/BarefootDriversLoader.java
new file mode 100644
index 0000000..f00b5ac
--- /dev/null
+++ b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/BarefootDriversLoader.java
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+
+package org.onosproject.drivers.barefoot;
+
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.ReferenceCardinality;
+import org.onosproject.net.driver.AbstractDriverLoader;
+import org.onosproject.net.pi.runtime.PiPipeconfService;
+
+/**
+ * Loader for P4Runtime device drivers.
+ */
+@Component(immediate = true)
+public class BarefootDriversLoader extends AbstractDriverLoader {
+
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected PiPipeconfService pipeconfService;
+
+ public BarefootDriversLoader() {
+ super("/barefoot-drivers.xml");
+ }
+
+ @Override
+ public void activate() {
+ pipeconfService.register(TofinoDefaultPipeconfFactory.get());
+ super.activate();
+ }
+
+ @Override
+ public void deactivate() {
+ pipeconfService.remove(TofinoDefaultPipeconfFactory.get().id());
+ super.deactivate();
+ }
+}
diff --git a/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultInterpreter.java b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultInterpreter.java
new file mode 100644
index 0000000..ea3dfe0
--- /dev/null
+++ b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultInterpreter.java
@@ -0,0 +1,244 @@
+/*
+ * 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.
+ */
+
+package org.onosproject.drivers.barefoot;
+
+import com.google.common.collect.ImmutableBiMap;
+import com.google.common.collect.ImmutableList;
+import org.onlab.packet.Ethernet;
+import org.onlab.util.ImmutableByteSequence;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.Port;
+import org.onosproject.net.PortNumber;
+import org.onosproject.net.device.DeviceService;
+import org.onosproject.net.driver.AbstractHandlerBehaviour;
+import org.onosproject.net.flow.TrafficTreatment;
+import org.onosproject.net.flow.criteria.Criterion;
+import org.onosproject.net.flow.instructions.Instruction;
+import org.onosproject.net.flow.instructions.Instructions;
+import org.onosproject.net.packet.DefaultInboundPacket;
+import org.onosproject.net.packet.InboundPacket;
+import org.onosproject.net.packet.OutboundPacket;
+import org.onosproject.net.pi.model.PiPipelineInterpreter;
+import org.onosproject.net.pi.runtime.PiAction;
+import org.onosproject.net.pi.runtime.PiActionId;
+import org.onosproject.net.pi.runtime.PiActionParam;
+import org.onosproject.net.pi.runtime.PiActionParamId;
+import org.onosproject.net.pi.runtime.PiHeaderFieldId;
+import org.onosproject.net.pi.runtime.PiPacketMetadata;
+import org.onosproject.net.pi.runtime.PiPacketMetadataId;
+import org.onosproject.net.pi.runtime.PiPacketOperation;
+import org.onosproject.net.pi.runtime.PiTableId;
+
+import java.nio.ByteBuffer;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import static java.util.stream.Collectors.toList;
+import static org.onosproject.net.PortNumber.CONTROLLER;
+import static org.onosproject.net.PortNumber.FLOOD;
+import static org.onosproject.net.flow.instructions.Instruction.Type.OUTPUT;
+import static org.onosproject.net.pi.runtime.PiPacketOperation.Type.PACKET_OUT;
+
+/**
+ * Interpreter implementation for the default pipeconf.
+ */
+public class TofinoDefaultInterpreter extends AbstractHandlerBehaviour implements PiPipelineInterpreter {
+ private static final String TABLE0 = "table0";
+ private static final String SEND_TO_CPU = "send_to_cpu";
+ private static final String PORT = "port";
+ private static final String DROP = "_drop";
+ private static final String SET_EGRESS_PORT = "set_egress_port";
+ private static final String EGRESS_PORT = "egress_port";
+ private static final int PORT_NUMBER_BIT_WIDTH = 9;
+
+ private static final PiHeaderFieldId IN_PORT_ID = PiHeaderFieldId.of("ig_intr_md", "ingress_port");
+ private static final PiHeaderFieldId ETH_DST_ID = PiHeaderFieldId.of("ethernet", "dstAddr");
+ private static final PiHeaderFieldId ETH_SRC_ID = PiHeaderFieldId.of("ethernet", "srcAddr");
+ private static final PiHeaderFieldId ETH_TYPE_ID = PiHeaderFieldId.of("ethernet", "etherType");
+
+ private static final ImmutableBiMap<Criterion.Type, PiHeaderFieldId> CRITERION_MAP =
+ new ImmutableBiMap.Builder<Criterion.Type, PiHeaderFieldId>()
+ .put(Criterion.Type.IN_PORT, IN_PORT_ID)
+ .put(Criterion.Type.ETH_DST, ETH_DST_ID)
+ .put(Criterion.Type.ETH_SRC, ETH_SRC_ID)
+ .put(Criterion.Type.ETH_TYPE, ETH_TYPE_ID)
+ .build();
+
+ private static final ImmutableBiMap<Integer, PiTableId> TABLE_MAP = ImmutableBiMap.of(
+ 0, PiTableId.of(TABLE0));
+ public static final String INGRESS_PORT = "ingress_port";
+
+
+ @Override
+ public PiAction mapTreatment(TrafficTreatment treatment, PiTableId piTableId) throws PiInterpreterException {
+
+ if (treatment.allInstructions().size() == 0) {
+ // No instructions means drop for us.
+ return actionWithName(DROP);
+ } else if (treatment.allInstructions().size() > 1) {
+ // Otherwise, we understand treatments with only 1 instruction.
+ throw new PiPipelineInterpreter.PiInterpreterException("Treatment has multiple instructions");
+ }
+
+ Instruction instruction = treatment.allInstructions().get(0);
+
+ switch (instruction.type()) {
+ case OUTPUT:
+ Instructions.OutputInstruction outInstruction = (Instructions.OutputInstruction) instruction;
+ PortNumber port = outInstruction.port();
+ if (!port.isLogical()) {
+ return PiAction.builder()
+ .withId(PiActionId.of(SET_EGRESS_PORT))
+ .withParameter(new PiActionParam(PiActionParamId.of(PORT),
+ ImmutableByteSequence.copyFrom(port.toLong())))
+ .build();
+ } else if (port.equals(CONTROLLER)) {
+ return actionWithName(SEND_TO_CPU);
+ } else {
+ throw new PiInterpreterException("Egress on logical port not supported: " + port);
+ }
+ case NOACTION:
+ return actionWithName(DROP);
+ default:
+ throw new PiInterpreterException("Instruction type not supported: " + instruction.type().name());
+ }
+ }
+
+ @Override
+ public Collection<PiPacketOperation> mapOutboundPacket(OutboundPacket packet)
+ throws PiInterpreterException {
+ TrafficTreatment treatment = packet.treatment();
+
+ // default.p4 supports only OUTPUT instructions.
+ List<Instructions.OutputInstruction> outInstructions = treatment.allInstructions()
+ .stream()
+ .filter(i -> i.type().equals(OUTPUT))
+ .map(i -> (Instructions.OutputInstruction) i)
+ .collect(toList());
+
+ if (treatment.allInstructions().size() != outInstructions.size()) {
+ // There are other instructions that are not of type OUTPUT
+ throw new PiInterpreterException("Treatment not supported: " + treatment);
+ }
+
+ ImmutableList.Builder<PiPacketOperation> builder = ImmutableList.builder();
+ for (Instructions.OutputInstruction outInst : outInstructions) {
+ if (outInst.port().isLogical() && !outInst.port().equals(FLOOD)) {
+ throw new PiInterpreterException("Logical port not supported: " +
+ outInst.port());
+ } else if (outInst.port().equals(FLOOD)) {
+ //Since default.p4 does not support flood for each port of the device
+ // create a packet operation to send the packet out of that specific port
+ for (Port port : handler().get(DeviceService.class).getPorts(packet.sendThrough())) {
+ builder.add(createPiPacketOperation(packet.data(), port.number().toLong()));
+ }
+ } else {
+ builder.add(createPiPacketOperation(packet.data(), outInst.port().toLong()));
+ }
+ }
+ return builder.build();
+ }
+
+ @Override
+ public InboundPacket mapInboundPacket(DeviceId deviceId, PiPacketOperation packetIn)
+ throws PiInterpreterException {
+
+ //We are assuming that the packet is ethernet type
+ Ethernet ethPkt = new Ethernet();
+
+ ethPkt.deserialize(packetIn.data().asArray(), 0, packetIn.data().size());
+
+ //Returns the ingress port packet metadata
+ Optional<PiPacketMetadata> packetMetadata = packetIn.metadatas()
+ .stream().filter(metadata -> metadata.id().name().equals(INGRESS_PORT))
+ .findFirst();
+
+ if (packetMetadata.isPresent()) {
+
+ //Obtaining the ingress port as an immutable byte sequence
+ ImmutableByteSequence portByteSequence = packetMetadata.get().value();
+
+ //Converting immutableByteSequence to short
+ short s = portByteSequence.asReadOnlyBuffer().getShort();
+
+ ConnectPoint receivedFrom = new ConnectPoint(deviceId, PortNumber.portNumber(s));
+
+ //FIXME should be optimizable with .asReadOnlyBytebuffer
+ ByteBuffer rawData = ByteBuffer.wrap(packetIn.data().asArray());
+ return new DefaultInboundPacket(receivedFrom, ethPkt, rawData);
+
+ } else {
+ throw new PiInterpreterException("Can't get packet metadata for" + INGRESS_PORT);
+ }
+ }
+
+ private PiPacketOperation createPiPacketOperation(ByteBuffer data, long portNumber) throws PiInterpreterException {
+ //create the metadata
+ PiPacketMetadata metadata = createPacketMetadata(portNumber);
+
+ //Create the Packet operation
+ return PiPacketOperation.builder()
+ .withType(PACKET_OUT)
+ .withData(ImmutableByteSequence.copyFrom(data))
+ .withMetadatas(ImmutableList.of(metadata))
+ .build();
+ }
+
+ private PiPacketMetadata createPacketMetadata(long portNumber) throws PiInterpreterException {
+ ImmutableByteSequence portValue = ImmutableByteSequence.copyFrom(portNumber);
+ //FIXME remove hardcoded bitWidth and retrieve it from pipelineModel
+ try {
+ portValue = ImmutableByteSequence.fit(portValue, PORT_NUMBER_BIT_WIDTH);
+ } catch (ImmutableByteSequence.ByteSequenceTrimException e) {
+ throw new PiInterpreterException("Port number too big: {}" +
+ portNumber + " causes " + e.getMessage());
+ }
+ return PiPacketMetadata.builder()
+ .withId(PiPacketMetadataId.of(EGRESS_PORT))
+ .withValue(portValue)
+ .build();
+ }
+
+ /**
+ * Returns an action instance with no runtime parameters.
+ */
+ private PiAction actionWithName(String name) {
+ return PiAction.builder().withId(PiActionId.of(name)).build();
+ }
+
+ @Override
+ public Optional<PiHeaderFieldId> mapCriterionType(Criterion.Type type) {
+ return Optional.ofNullable(CRITERION_MAP.get(type));
+ }
+
+ @Override
+ public Optional<Criterion.Type> mapPiHeaderFieldId(PiHeaderFieldId headerFieldId) {
+ return Optional.ofNullable(CRITERION_MAP.inverse().get(headerFieldId));
+ }
+
+ @Override
+ public Optional<PiTableId> mapFlowRuleTableId(int flowRuleTableId) {
+ return Optional.ofNullable(TABLE_MAP.get(flowRuleTableId));
+ }
+
+ @Override
+ public Optional<Integer> mapPiTableId(PiTableId piTableId) {
+ return Optional.ofNullable(TABLE_MAP.inverse().get(piTableId));
+ }
+}
diff --git a/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultPipeconfFactory.java b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultPipeconfFactory.java
new file mode 100644
index 0000000..0de3adc
--- /dev/null
+++ b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoDefaultPipeconfFactory.java
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+package org.onosproject.drivers.barefoot;
+
+import org.onosproject.bmv2.model.Bmv2PipelineModelParser;
+import org.onosproject.driver.pipeline.DefaultSingleTablePipeline;
+import org.onosproject.net.behaviour.Pipeliner;
+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 java.net.URL;
+
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.BMV2_JSON;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.TOFINO_CONTEXT_JSON;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.P4_INFO_TEXT;
+import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.TOFINO_BIN;
+
+/**
+ * Factory of pipeconf implementation for the default.p4 program on Tofino.
+ */
+final class TofinoDefaultPipeconfFactory {
+
+ private static final String PIPECONF_ID = "tofino-default-pipeconf";
+ private static final String JSON_PATH = "/default.json";
+ private static final String CONTEXT_JSON_PATH = "/context.json";
+ private static final String TOFINO_PATH = "/tofino.bin";
+ private static final String P4INFO_PATH = "/default.p4info";
+
+ private static final PiPipeconf PIPECONF = buildPipeconf();
+
+ private TofinoDefaultPipeconfFactory() {
+ // Hides constructor.
+ }
+
+ static PiPipeconf get() {
+ return PIPECONF;
+ }
+
+ private static PiPipeconf buildPipeconf() {
+
+ final URL jsonUrl = TofinoDefaultPipeconfFactory.class.getResource(JSON_PATH);
+ final URL p4InfoUrl = TofinoDefaultPipeconfFactory.class.getResource(P4INFO_PATH);
+ final URL tofinoUrl = TofinoDefaultPipeconfFactory.class.getResource(TOFINO_PATH);
+ final URL contextUrl = TofinoDefaultPipeconfFactory.class.getResource(CONTEXT_JSON_PATH);
+
+ return DefaultPiPipeconf.builder()
+ .withId(new PiPipeconfId(PIPECONF_ID))
+ .withPipelineModel(Bmv2PipelineModelParser.parse(jsonUrl))
+ .addBehaviour(PiPipelineInterpreter.class, TofinoDefaultInterpreter.class)
+ .addBehaviour(Pipeliner.class, DefaultSingleTablePipeline.class)
+ .addExtension(P4_INFO_TEXT, p4InfoUrl)
+ .addExtension(BMV2_JSON, jsonUrl)
+ .addExtension(TOFINO_BIN, tofinoUrl)
+ .addExtension(TOFINO_CONTEXT_JSON, contextUrl)
+ .build();
+ }
+}
diff --git a/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoPipelineProgrammable.java b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoPipelineProgrammable.java
new file mode 100644
index 0000000..3397254
--- /dev/null
+++ b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/TofinoPipelineProgrammable.java
@@ -0,0 +1,157 @@
+/*
+ * 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.
+ */
+
+package org.onosproject.drivers.barefoot;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Lists;
+import org.apache.commons.io.IOUtils;
+import org.onlab.util.SharedExecutors;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.driver.AbstractHandlerBehaviour;
+import org.onosproject.net.pi.model.PiPipeconf;
+import org.onosproject.net.pi.model.PiPipeconf.ExtensionType;
+import org.onosproject.net.pi.model.PiPipelineProgrammable;
+import org.onosproject.p4runtime.api.P4RuntimeClient;
+import org.onosproject.p4runtime.api.P4RuntimeController;
+import org.slf4j.Logger;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.Buffer;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
+
+import static com.google.common.base.Strings.isNullOrEmpty;
+import static org.slf4j.LoggerFactory.getLogger;
+
+/**
+ * Implementation of the PiPipelineProgrammable for BMv2.
+ */
+public class TofinoPipelineProgrammable extends AbstractHandlerBehaviour implements PiPipelineProgrammable {
+
+ private static final PiPipeconf DEFAULT_PIPECONF = TofinoDefaultPipeconfFactory.get();
+
+ private final Logger log = getLogger(getClass());
+
+ @Override
+ public CompletableFuture<Boolean> deployPipeconf(PiPipeconf pipeconf) {
+
+ CompletableFuture<Boolean> result = new CompletableFuture<>();
+
+ SharedExecutors.getPoolThreadExecutor().submit(() -> result.complete(doDeployConfig(pipeconf)));
+
+ return result;
+ }
+
+ private boolean doDeployConfig(PiPipeconf pipeconf) {
+
+ P4RuntimeController controller = handler().get(P4RuntimeController.class);
+
+ DeviceId deviceId = handler().data().deviceId();
+
+ if (!controller.hasClient(deviceId)) {
+ log.warn("Unable to find client for {}, aborting pipeconf deploy", deviceId);
+ return false;
+
+ }
+
+ P4RuntimeClient client = controller.getClient(deviceId);
+
+ //creating the ByteBuffer with all the needed elements to set the pipeline on the device
+ ByteBuffer pipelineBuffer = createPipelineBuffer(pipeconf,
+ ImmutableList.of(ExtensionType.TOFINO_BIN, ExtensionType.TOFINO_CONTEXT_JSON));
+
+ try {
+ if (!client.setPipelineConfig(pipeconf, pipelineBuffer).get()) {
+ log.warn("Unable to deploy pipeconf {} to {}", pipeconf.id(), deviceId);
+ return false;
+ }
+
+ // It would be more logical to have this performed at device handshake, but P4runtime would reject any
+ // command if a P4info has not been set first.
+ if (!client.initStreamChannel().get()) {
+ log.warn("Unable to init stream channel to {}.", deviceId);
+ return false;
+ }
+
+ } catch (InterruptedException | ExecutionException e) {
+ throw new RuntimeException(e);
+ }
+
+ return true;
+ }
+
+ private ByteBuffer createPipelineBuffer(PiPipeconf pipeconf, List<ExtensionType> targetConfigExtTypes) {
+ if (targetConfigExtTypes == null || targetConfigExtTypes.isEmpty() || isNullOrEmpty(pipeconf.id().toString())) {
+
+ log.warn("Not enough information to deploy the Pipeconf {} on the switch {}, {}", pipeconf.id(),
+ targetConfigExtTypes);
+ } else {
+ List<ByteBuffer> buffers = Lists.newLinkedList();
+ //Name of the pipeconf.
+ //Appears to be an arbitrary name and unrelated to p4 program
+ String name = pipeconf.id().toString();
+ buffers.add(ByteBuffer.allocate(4 + name.length())
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .putInt(name.length())
+ .put(name.getBytes(StandardCharsets.UTF_8)));
+
+ // Build buffers for all the extensions needed to deploy the pipeconf to Tofino
+ targetConfigExtTypes.forEach(targetConfigExtType -> {
+ if (!pipeconf.extension(targetConfigExtType).isPresent()) {
+ // FIXME this will break the expected data format; the resulting buffer will be invalid.
+ // FIXME Consider a stronger response here, like an exception.
+ log.warn("Missing extension {} in pipeconf {}", targetConfigExtType, pipeconf.id());
+ }
+ InputStream targetConfig = pipeconf.extension(targetConfigExtType).get();
+ try {
+ log.info("Setting extension {} in pipeconf {}", targetConfigExtType, pipeconf.id());
+ byte[] bin = IOUtils.toByteArray(targetConfig);
+ //length and byte of every extension
+ buffers.add(ByteBuffer.allocate(4 + bin.length)
+ .order(ByteOrder.LITTLE_ENDIAN)
+ .putInt(bin.length)
+ .put(bin));
+ } catch (IOException ex) {
+ // FIXME this will break the expected data format; the resulting buffer will be invalid.
+ // FIXME Consider a stronger response here, like an exception.
+ log.warn("Unable to load target-specific config for {}", ex.getMessage());
+ }
+ });
+
+ // Merge the buffers
+ int len = buffers.stream().mapToInt(Buffer::limit).sum();
+ ByteBuffer deviceData = ByteBuffer.allocate(len);
+ for (ByteBuffer b : buffers) {
+ deviceData.put((ByteBuffer) b.flip());
+ }
+ deviceData.flip(); // prepare for reading
+ return deviceData.asReadOnlyBuffer();
+ }
+ return null;
+ }
+
+ @Override
+ public Optional<PiPipeconf> getDefaultPipeconf() {
+ return Optional.of(DEFAULT_PIPECONF);
+ }
+}
diff --git a/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/package-info.java b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/package-info.java
new file mode 100644
index 0000000..e2302b1
--- /dev/null
+++ b/drivers/barefoot/src/main/java/org/onosproject/drivers/barefoot/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+/**
+ * Package for barefoot device drivers.
+ */
+package org.onosproject.drivers.barefoot;
\ No newline at end of file
diff --git a/drivers/barefoot/src/main/resources/barefoot-drivers.xml b/drivers/barefoot/src/main/resources/barefoot-drivers.xml
new file mode 100644
index 0000000..ee56455
--- /dev/null
+++ b/drivers/barefoot/src/main/resources/barefoot-drivers.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2017-present Open Networking Laboratory
+ ~
+ ~ 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="tofino" manufacturer="Barefoot Networks" hwVersion="1.0" swVersion="1.0" extends="p4runtime">
+ <behaviour api="org.onosproject.net.pi.model.PiPipelineProgrammable"
+ impl="org.onosproject.drivers.barefoot.TofinoPipelineProgrammable"/>
+ </driver>
+</drivers>
+
diff --git a/drivers/barefoot/src/main/resources/context.json b/drivers/barefoot/src/main/resources/context.json
new file mode 100644
index 0000000..ed7213f
--- /dev/null
+++ b/drivers/barefoot/src/main/resources/context.json
@@ -0,0 +1,18871 @@
+{
+ "build_date": "Tue Aug 29 00:02:03 2017",
+ "phv_allocation": [
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 0
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 1
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 2
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 3
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 4
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 5
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 6
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 7
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 8
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 9
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 10
+ },
+ {
+ "ingress": [
+ {
+ "phv_number": 0,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [],
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 1,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 2,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 64,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 65,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 66,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 67,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 77,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 78,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 79,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 80,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 81,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 82,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 68,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 5,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_drop_ctl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 128,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 32,
+ "phv_lsb": 15,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_resubmit_flag",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 129,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 130,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 41,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_ucast_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 131,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 67,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 132,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 256,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 257,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 258,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 56,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 259,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 65,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 260,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 64,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 47,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 261,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 288,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 43,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 289,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 290,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 291,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 320,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 60,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 321,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 49,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 322,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 45,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 323,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 54,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 324,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ }
+ ]
+ },
+ {
+ "phv_number": 325,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 73,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "egress": [
+ {
+ "phv_number": 80,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 13,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 0,
+ "phv_msb": 0,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_for_tm_copy_to_cpu",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 81,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 7,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 2,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_cos",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 82,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 0,
+ "phv_lsb": 0,
+ "is_pov": true,
+ "pov_headers": [
+ {
+ "bit_index": 0,
+ "position_offset": 76,
+ "header_name": "packet_in_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 1,
+ "position_offset": 77,
+ "header_name": "packet_out_hdr",
+ "hidden": false
+ },
+ {
+ "bit_index": 2,
+ "position_offset": 78,
+ "header_name": "ethernet",
+ "hidden": false
+ },
+ {
+ "bit_index": 3,
+ "position_offset": 79,
+ "header_name": "ipv4",
+ "hidden": false
+ },
+ {
+ "bit_index": 4,
+ "position_offset": 80,
+ "header_name": "tcp",
+ "hidden": false
+ },
+ {
+ "bit_index": 5,
+ "position_offset": 81,
+ "header_name": "udp",
+ "hidden": false
+ }
+ ],
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "POV",
+ "field_width": 0,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 144,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 9,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "ig_intr_md_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 145,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 33,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_in_hdr_ingress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 146,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 64,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 8,
+ "is_compiler_generated": false,
+ "field_name": "eg_intr_md_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 264,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 50,
+ "phv_lsb": 24,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ttl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 21,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 23,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_protocol",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 11,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_hdrChecksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 265,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 15,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_srcAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 266,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 53,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_dstAddr",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 267,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 28,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ackNo",
+ "field_width": 4,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 19,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "udp_length_",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 62,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 268,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 41,
+ "phv_lsb": 28,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dataOffset",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 61,
+ "phv_lsb": 25,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 27,
+ "is_compiler_generated": false,
+ "field_name": "tcp_res",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 14,
+ "phv_lsb": 22,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 24,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ecn",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 37,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 5,
+ "phv_msb": 21,
+ "is_compiler_generated": false,
+ "field_name": "tcp_ctrl",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 44,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_window",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 269,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 2,
+ "phv_lsb": 16,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "tcp_checksum",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 32,
+ "position_offset": 48,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_urgentPtr",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 270,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 271,
+ "records": [
+ {
+ "word_bit_width": 32,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 31,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 296,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 32,
+ "phv_lsb": 4,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_version",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 40,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 3,
+ "phv_msb": 3,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_ihl",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 297,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 4,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_diffserv",
+ "field_width": 1,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 298,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 8
+ }
+ ]
+ },
+ {
+ "phv_number": 299,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 38,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "tcp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 8,
+ "position_offset": 59,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "udp_srcPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 300,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 22,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 301,
+ "records": [
+ {
+ "word_bit_width": 8,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 39,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 32
+ }
+ ]
+ },
+ {
+ "phv_number": 332,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 57,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_totalLen",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 333,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 46,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_identification",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 334,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 8,
+ "phv_lsb": 13,
+ "is_pov": false,
+ "field_msb": 2,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_flags",
+ "field_width": 1,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 5,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 12,
+ "phv_msb": 12,
+ "is_compiler_generated": false,
+ "field_name": "ipv4_fragOffset",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 335,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 35,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 336,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 31,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 16
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 51,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "udp_dstPort",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 337,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 72,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "tcp_seqNo",
+ "field_width": 4,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 338,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 22,
+ "phv_lsb": 8,
+ "is_pov": false,
+ "field_msb": 7,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_dstAddr",
+ "field_width": 6,
+ "field_lsb": 0
+ },
+ {
+ "word_bit_width": 16,
+ "position_offset": 66,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 47,
+ "phv_msb": 7,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_srcAddr",
+ "field_width": 6,
+ "field_lsb": 40
+ }
+ ]
+ },
+ {
+ "phv_number": 339,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 42,
+ "phv_lsb": 0,
+ "is_pov": false,
+ "field_msb": 15,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "ethernet_etherType",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ },
+ {
+ "phv_number": 340,
+ "records": [
+ {
+ "word_bit_width": 16,
+ "position_offset": 0,
+ "phv_lsb": 7,
+ "is_pov": false,
+ "field_msb": 8,
+ "phv_msb": 15,
+ "is_compiler_generated": false,
+ "field_name": "packet_out_hdr_egress_port",
+ "field_width": 2,
+ "field_lsb": 0
+ }
+ ]
+ }
+ ],
+ "stage_number": 11
+ }
+ ],
+ "compiler_version": "5.1.0",
+ "tables": [
+ {
+ "direction": "ingress",
+ "handle": 33554433,
+ "name": "ingress_port_count_table__action__",
+ "table_type": "action",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870914,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 2,
+ "stage_table_type": "action_data",
+ "size": 0
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870914,
+ "name": "count_ingress",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": true,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "how_referenced": "direct",
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 16777217,
+ "name": "ingress_port_count_table",
+ "is_resource_controllable": true,
+ "table_type": "match",
+ "ap_bind_indirect_res_to_match": [],
+ "statistics_table_refs": [
+ {
+ "how_referenced": "indirect",
+ "handle": 67108865,
+ "name": "ingress_port_counter"
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870914,
+ "name": "count_ingress",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": true,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "meter_table_refs": [],
+ "default_action_handle": 536870914,
+ "uses_range": false,
+ "match_attributes": {
+ "stage_tables": [
+ {
+ "default_next_table": 33,
+ "action_format": [
+ {
+ "vliw_instruction_full": 64,
+ "next_table": 0,
+ "next_table_full": 33,
+ "action_handle": 536870914,
+ "action_name": "count_ingress",
+ "table_name": "egress_port_count_table",
+ "immediate_fields": [],
+ "vliw_instruction": 1
+ }
+ ],
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "memory_word_width": 0,
+ "entries_per_table_word": 1,
+ "table_word_width": 0,
+ "number_memory_units_per_table_word": 0
+ }
+ ],
+ "result_physical_buses": [
+ 1
+ ],
+ "logical_table_id": 0,
+ "stage_number": 2,
+ "stage_table_type": "match_with_no_key",
+ "size": 1
+ }
+ ],
+ "match_type": "match_with_no_key"
+ },
+ "stateful_table_refs": [],
+ "default_next_table_mask": 0,
+ "selection_table_refs": [],
+ "action_data_table_refs": [],
+ "match_key_fields": [],
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 33554434,
+ "name": "egress_port_count_table__action__",
+ "table_type": "action",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870916,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 1,
+ "stage_number": 2,
+ "stage_table_type": "action_data",
+ "size": 0
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870916,
+ "name": "count_egress",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": true,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "how_referenced": "direct",
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 16777218,
+ "name": "egress_port_count_table",
+ "is_resource_controllable": true,
+ "table_type": "match",
+ "ap_bind_indirect_res_to_match": [],
+ "statistics_table_refs": [
+ {
+ "how_referenced": "indirect",
+ "handle": 67108866,
+ "name": "egress_port_counter"
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870916,
+ "name": "count_egress",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": true,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "meter_table_refs": [],
+ "default_action_handle": 536870916,
+ "uses_range": false,
+ "match_attributes": {
+ "stage_tables": [
+ {
+ "default_next_table": 255,
+ "action_format": [
+ {
+ "vliw_instruction_full": 64,
+ "next_table": 0,
+ "next_table_full": 255,
+ "action_handle": 536870916,
+ "action_name": "count_egress",
+ "table_name": "--END_OF_PIPELINE--",
+ "immediate_fields": [],
+ "vliw_instruction": 0
+ }
+ ],
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "memory_word_width": 0,
+ "entries_per_table_word": 1,
+ "table_word_width": 0,
+ "number_memory_units_per_table_word": 0
+ }
+ ],
+ "result_physical_buses": [
+ 0
+ ],
+ "logical_table_id": 1,
+ "stage_number": 2,
+ "stage_table_type": "match_with_no_key",
+ "size": 1
+ }
+ ],
+ "match_type": "match_with_no_key"
+ },
+ "stateful_table_refs": [],
+ "default_next_table_mask": 0,
+ "selection_table_refs": [],
+ "action_data_table_refs": [],
+ "match_key_fields": [],
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 33554435,
+ "name": "ingress_pkt__action__",
+ "table_type": "action",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870919,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 0,
+ "stage_table_type": "action_data",
+ "size": 0
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870919,
+ "name": "_packet_out",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "how_referenced": "direct",
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 16777219,
+ "name": "ingress_pkt",
+ "is_resource_controllable": true,
+ "table_type": "match",
+ "ap_bind_indirect_res_to_match": [],
+ "statistics_table_refs": [],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870919,
+ "name": "_packet_out",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "meter_table_refs": [],
+ "default_action_handle": 536870919,
+ "uses_range": false,
+ "match_attributes": {
+ "stage_tables": [
+ {
+ "default_next_table": 16,
+ "action_format": [
+ {
+ "vliw_instruction_full": 65,
+ "next_table": 0,
+ "next_table_full": 16,
+ "action_handle": 536870919,
+ "action_name": "_packet_out",
+ "table_name": "_condition_1",
+ "immediate_fields": [],
+ "vliw_instruction": 1
+ }
+ ],
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "memory_word_width": 0,
+ "entries_per_table_word": 1,
+ "table_word_width": 0,
+ "number_memory_units_per_table_word": 0
+ }
+ ],
+ "result_physical_buses": [
+ 1
+ ],
+ "logical_table_id": 0,
+ "stage_number": 0,
+ "stage_table_type": "match_with_no_key",
+ "size": 1
+ }
+ ],
+ "match_type": "match_with_no_key"
+ },
+ "stateful_table_refs": [],
+ "default_next_table_mask": 0,
+ "selection_table_refs": [],
+ "action_data_table_refs": [],
+ "match_key_fields": [],
+ "size": 1024
+ },
+ {
+ "direction": "egress",
+ "handle": 33554436,
+ "name": "egress_pkt__action__",
+ "table_type": "action",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870922,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 1,
+ "stage_number": 0,
+ "stage_table_type": "action_data",
+ "size": 0
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870922,
+ "name": "add_packet_in_hdr",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "how_referenced": "direct",
+ "size": 1024
+ },
+ {
+ "direction": "egress",
+ "handle": 16777220,
+ "name": "egress_pkt",
+ "is_resource_controllable": true,
+ "table_type": "match",
+ "ap_bind_indirect_res_to_match": [],
+ "statistics_table_refs": [],
+ "actions": [
+ {
+ "p4_parameters": [],
+ "handle": 536870922,
+ "name": "add_packet_in_hdr",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "meter_table_refs": [],
+ "default_action_handle": 536870922,
+ "uses_range": false,
+ "match_attributes": {
+ "stage_tables": [
+ {
+ "default_next_table": 255,
+ "action_format": [
+ {
+ "vliw_instruction_full": 65,
+ "next_table": 0,
+ "next_table_full": 255,
+ "action_handle": 536870922,
+ "action_name": "add_packet_in_hdr",
+ "table_name": "--END_OF_PIPELINE--",
+ "immediate_fields": [],
+ "vliw_instruction": 1
+ }
+ ],
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "memory_word_width": 0,
+ "entries_per_table_word": 1,
+ "table_word_width": 0,
+ "number_memory_units_per_table_word": 0
+ }
+ ],
+ "result_physical_buses": [
+ 0
+ ],
+ "logical_table_id": 1,
+ "stage_number": 0,
+ "stage_table_type": "match_with_no_key",
+ "size": 1
+ }
+ ],
+ "match_type": "match_with_no_key"
+ },
+ "stateful_table_refs": [],
+ "default_next_table_mask": 0,
+ "selection_table_refs": [],
+ "action_data_table_refs": [],
+ "match_key_fields": [],
+ "size": 1024
+ },
+ {
+ "direction": "ingress",
+ "handle": 33554437,
+ "name": "table0__action__",
+ "table_type": "action",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": null,
+ "pack_format": [
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870924,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ },
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870926,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ },
+ {
+ "entries_per_table_word": 1,
+ "action_handle": 536870928,
+ "memory_word_width": 128,
+ "table_word_width": 128,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 0,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "lsb_mem_word_offset": 0,
+ "field_name": "--padding--"
+ }
+ ]
+ }
+ ],
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 1,
+ "stage_table_type": "action_data",
+ "size": 0
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [
+ {
+ "position": 0,
+ "name": "port",
+ "start_bit": 0,
+ "bit_width": 9
+ }
+ ],
+ "handle": 536870924,
+ "name": "set_egress_port",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ },
+ {
+ "p4_parameters": [],
+ "handle": 536870926,
+ "name": "send_to_cpu",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ },
+ {
+ "p4_parameters": [],
+ "handle": 536870928,
+ "name": "_drop",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "how_referenced": "direct",
+ "size": 512
+ },
+ {
+ "direction": "ingress",
+ "handle": 16777221,
+ "name": "table0",
+ "is_resource_controllable": true,
+ "table_type": "match",
+ "ap_bind_indirect_res_to_match": [],
+ "statistics_table_refs": [
+ {
+ "how_referenced": "direct",
+ "handle": 67108867,
+ "name": "table0_counter"
+ }
+ ],
+ "actions": [
+ {
+ "p4_parameters": [
+ {
+ "position": 0,
+ "name": "port",
+ "start_bit": 0,
+ "bit_width": 9
+ }
+ ],
+ "handle": 536870924,
+ "name": "set_egress_port",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ },
+ {
+ "p4_parameters": [],
+ "handle": 536870926,
+ "name": "send_to_cpu",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ },
+ {
+ "p4_parameters": [],
+ "handle": 536870928,
+ "name": "_drop",
+ "indirect_resources": [],
+ "override_stat_full_addr": 0,
+ "override_meter_addr_pfe": false,
+ "allowed_as_default_action": true,
+ "override_stat_addr_pfe": false,
+ "override_stateful_addr_pfe": false,
+ "override_meter_full_addr": 0,
+ "override_stat_addr": false,
+ "override_stateful_addr": false,
+ "override_stateful_full_addr": 0,
+ "override_meter_addr": false
+ }
+ ],
+ "meter_table_refs": [],
+ "uses_range": false,
+ "match_attributes": {
+ "stage_tables": [
+ {
+ "default_next_table": 32,
+ "memory_resource_allocation": {
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 21,
+ 22,
+ 23
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "tcam"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 47,
+ "entries_per_table_word": 1,
+ "entries": [
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 2,
+ "lsb_mem_word_idx": 2,
+ "source": "parity",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 45,
+ "field_name": "--tcam_parity_2--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 4,
+ "lsb_mem_word_idx": 2,
+ "source": "zero",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 41,
+ "field_name": "--unused--"
+ },
+ {
+ "start_bit": 40,
+ "field_width": 8,
+ "lsb_mem_word_idx": 2,
+ "source": "spec",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 33,
+ "field_name": "ethernet_dstAddr"
+ },
+ {
+ "start_bit": 32,
+ "field_width": 8,
+ "lsb_mem_word_idx": 2,
+ "source": "spec",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 25,
+ "field_name": "ethernet_srcAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 8,
+ "lsb_mem_word_idx": 2,
+ "source": "spec",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 17,
+ "field_name": "ethernet_dstAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 8,
+ "lsb_mem_word_idx": 2,
+ "source": "spec",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 9,
+ "field_name": "ig_intr_md_ingress_port"
+ },
+ {
+ "start_bit": 8,
+ "field_width": 8,
+ "lsb_mem_word_idx": 2,
+ "source": "spec",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 1,
+ "field_name": "ethernet_etherType"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 1,
+ "lsb_mem_word_idx": 2,
+ "source": "payload",
+ "msb_mem_word_idx": 2,
+ "lsb_mem_word_offset": 0,
+ "field_name": "--tcam_payload_2--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 2,
+ "lsb_mem_word_idx": 1,
+ "source": "parity",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 45,
+ "field_name": "--tcam_parity_1--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 2,
+ "lsb_mem_word_idx": 1,
+ "source": "version",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 43,
+ "field_name": "--version--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 2,
+ "lsb_mem_word_idx": 1,
+ "source": "zero",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 41,
+ "field_name": "--unused--"
+ },
+ {
+ "start_bit": 40,
+ "field_width": 8,
+ "lsb_mem_word_idx": 1,
+ "source": "spec",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 33,
+ "field_name": "ethernet_srcAddr"
+ },
+ {
+ "start_bit": 16,
+ "field_width": 8,
+ "lsb_mem_word_idx": 1,
+ "source": "spec",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 25,
+ "field_name": "ethernet_dstAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 8,
+ "lsb_mem_word_idx": 1,
+ "source": "spec",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 17,
+ "field_name": "ethernet_etherType"
+ },
+ {
+ "start_bit": 24,
+ "field_width": 16,
+ "lsb_mem_word_idx": 1,
+ "source": "spec",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 1,
+ "field_name": "ethernet_dstAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 1,
+ "lsb_mem_word_idx": 1,
+ "source": "payload",
+ "msb_mem_word_idx": 1,
+ "lsb_mem_word_offset": 0,
+ "field_name": "--tcam_payload_1--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 2,
+ "lsb_mem_word_idx": 0,
+ "source": "parity",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 45,
+ "field_name": "--tcam_parity_0--"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 3,
+ "lsb_mem_word_idx": 0,
+ "source": "zero",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 42,
+ "field_name": "--unused--"
+ },
+ {
+ "start_bit": 8,
+ "field_width": 1,
+ "lsb_mem_word_idx": 0,
+ "source": "spec",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 41,
+ "field_name": "ig_intr_md_ingress_port"
+ },
+ {
+ "start_bit": 8,
+ "field_width": 8,
+ "lsb_mem_word_idx": 0,
+ "source": "spec",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 33,
+ "field_name": "ethernet_dstAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 32,
+ "lsb_mem_word_idx": 0,
+ "source": "spec",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 1,
+ "field_name": "ethernet_srcAddr"
+ },
+ {
+ "start_bit": 0,
+ "field_width": 1,
+ "lsb_mem_word_idx": 0,
+ "source": "payload",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 0,
+ "field_name": "--tcam_payload_0--"
+ }
+ ]
+ }
+ ],
+ "table_word_width": 141,
+ "number_memory_units_per_table_word": 3
+ }
+ ],
+ "idletime_stage_table": {
+ "memory_resource_allocation": {
+ "spare_bank_memory_unit": 42,
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 42
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "map_ram"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 11,
+ "entries_per_table_word": 2,
+ "table_word_width": 11,
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "precision": 3,
+ "enable_pfe": true,
+ "two_way_notification": true,
+ "disable_notification": false,
+ "logical_table_id": 0,
+ "stage_number": 1,
+ "stage_table_type": "idletime",
+ "size": 2048
+ },
+ "ternary_indirection_stage_table": {
+ "action_format": [
+ {
+ "vliw_instruction_full": 65,
+ "next_table": 0,
+ "next_table_full": 32,
+ "action_handle": 536870924,
+ "action_name": "set_egress_port",
+ "table_name": "_condition_2",
+ "immediate_fields": [
+ {
+ "param_name": "port",
+ "dest_start": 0,
+ "param_type": "parameter",
+ "param_shift": 0,
+ "dest_width": 9
+ }
+ ],
+ "vliw_instruction": 5
+ },
+ {
+ "vliw_instruction_full": 66,
+ "next_table": 0,
+ "next_table_full": 32,
+ "action_handle": 536870926,
+ "action_name": "send_to_cpu",
+ "table_name": "_condition_2",
+ "immediate_fields": [],
+ "vliw_instruction": 6
+ },
+ {
+ "vliw_instruction_full": 67,
+ "next_table": 0,
+ "next_table_full": 32,
+ "action_handle": 536870928,
+ "action_name": "_drop",
+ "table_name": "_condition_2",
+ "immediate_fields": [],
+ "vliw_instruction": 7
+ }
+ ],
+ "memory_resource_allocation": {
+ "spare_bank_memory_unit": 2,
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 2
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "sram"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 128,
+ "entries_per_table_word": 4,
+ "entries": [
+ {
+ "entry_number": 3,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 13,
+ "lsb_mem_word_idx": 0,
+ "source": "zero",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 115,
+ "field_name": "--padding--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "immediate_name": "--immediate--",
+ "field_width": 16,
+ "lsb_mem_word_idx": 0,
+ "source": "immediate",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 99,
+ "field_name": "--immediate--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "field_width": 3,
+ "lsb_mem_word_idx": 0,
+ "source": "instr",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 96,
+ "field_name": "--instruction_address--",
+ "enable_pfe": false
+ }
+ ]
+ },
+ {
+ "entry_number": 2,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 13,
+ "lsb_mem_word_idx": 0,
+ "source": "zero",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 83,
+ "field_name": "--padding--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "immediate_name": "--immediate--",
+ "field_width": 16,
+ "lsb_mem_word_idx": 0,
+ "source": "immediate",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 67,
+ "field_name": "--immediate--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "field_width": 3,
+ "lsb_mem_word_idx": 0,
+ "source": "instr",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 64,
+ "field_name": "--instruction_address--",
+ "enable_pfe": false
+ }
+ ]
+ },
+ {
+ "entry_number": 1,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 13,
+ "lsb_mem_word_idx": 0,
+ "source": "zero",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 51,
+ "field_name": "--padding--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "immediate_name": "--immediate--",
+ "field_width": 16,
+ "lsb_mem_word_idx": 0,
+ "source": "immediate",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 35,
+ "field_name": "--immediate--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "field_width": 3,
+ "lsb_mem_word_idx": 0,
+ "source": "instr",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 32,
+ "field_name": "--instruction_address--",
+ "enable_pfe": false
+ }
+ ]
+ },
+ {
+ "entry_number": 0,
+ "fields": [
+ {
+ "start_bit": 0,
+ "field_width": 13,
+ "lsb_mem_word_idx": 0,
+ "source": "zero",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 19,
+ "field_name": "--padding--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "immediate_name": "--immediate--",
+ "field_width": 16,
+ "lsb_mem_word_idx": 0,
+ "source": "immediate",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 3,
+ "field_name": "--immediate--",
+ "enable_pfe": false
+ },
+ {
+ "start_bit": 0,
+ "field_width": 3,
+ "lsb_mem_word_idx": 0,
+ "source": "instr",
+ "msb_mem_word_idx": 0,
+ "lsb_mem_word_offset": 0,
+ "field_name": "--instruction_address--",
+ "enable_pfe": false
+ }
+ ]
+ }
+ ],
+ "table_word_width": 128,
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 1,
+ "stage_table_type": "ternary_indirection",
+ "size": 4096
+ },
+ "result_physical_buses": [
+ 0
+ ],
+ "logical_table_id": 0,
+ "stage_number": 1,
+ "stage_table_type": "ternary_match",
+ "size": 512
+ }
+ ],
+ "match_type": "ternary"
+ },
+ "stateful_table_refs": [],
+ "default_next_table_mask": 0,
+ "selection_table_refs": [],
+ "action_data_table_refs": [],
+ "match_key_fields": [
+ {
+ "bit_width": 9,
+ "match_type": "ternary",
+ "start_bit": 0,
+ "position": 0,
+ "bit_width_full": 9,
+ "name": "ig_intr_md_ingress_port"
+ },
+ {
+ "bit_width": 48,
+ "match_type": "ternary",
+ "start_bit": 0,
+ "position": 1,
+ "bit_width_full": 48,
+ "name": "ethernet_dstAddr"
+ },
+ {
+ "bit_width": 48,
+ "match_type": "ternary",
+ "start_bit": 0,
+ "position": 2,
+ "bit_width_full": 48,
+ "name": "ethernet_srcAddr"
+ },
+ {
+ "bit_width": 16,
+ "match_type": "ternary",
+ "start_bit": 0,
+ "position": 3,
+ "bit_width_full": 16,
+ "name": "ethernet_etherType"
+ }
+ ],
+ "size": 512
+ },
+ {
+ "direction": "ingress",
+ "statistics_type": "packets",
+ "handle": 67108865,
+ "name": "ingress_port_counter",
+ "byte_counter_resolution": 0,
+ "table_type": "statistics",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": {
+ "spare_bank_memory_unit": 55,
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 54
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "sram"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 128,
+ "entries_per_table_word": 4,
+ "table_word_width": 128,
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 2,
+ "stage_table_type": "statistics",
+ "size": 4096
+ }
+ ],
+ "enable_pfe": true,
+ "packet_counter_resolution": 32,
+ "pfe_bit_position": 19,
+ "how_referenced": "indirect",
+ "size": 254
+ },
+ {
+ "direction": "ingress",
+ "statistics_type": "packets",
+ "handle": 67108866,
+ "name": "egress_port_counter",
+ "byte_counter_resolution": 0,
+ "table_type": "statistics",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": {
+ "spare_bank_memory_unit": 79,
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 78
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "sram"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 128,
+ "entries_per_table_word": 4,
+ "table_word_width": 128,
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 1,
+ "stage_number": 2,
+ "stage_table_type": "statistics",
+ "size": 4096
+ }
+ ],
+ "enable_pfe": true,
+ "packet_counter_resolution": 32,
+ "pfe_bit_position": 19,
+ "how_referenced": "indirect",
+ "size": 254
+ },
+ {
+ "direction": "ingress",
+ "statistics_type": "packets",
+ "handle": 67108867,
+ "name": "table0_counter",
+ "byte_counter_resolution": 0,
+ "table_type": "statistics",
+ "stage_tables": [
+ {
+ "memory_resource_allocation": {
+ "spare_bank_memory_unit": 79,
+ "memory_units_and_vpns": [
+ {
+ "memory_units": [
+ 78
+ ],
+ "vpns": [
+ 0
+ ]
+ }
+ ],
+ "memory_type": "sram"
+ },
+ "pack_format": [
+ {
+ "memory_word_width": 128,
+ "entries_per_table_word": 4,
+ "table_word_width": 128,
+ "number_memory_units_per_table_word": 1
+ }
+ ],
+ "logical_table_id": 0,
+ "stage_number": 1,
+ "stage_table_type": "statistics",
+ "size": 4096
+ }
+ ],
+ "enable_pfe": false,
+ "packet_counter_resolution": 32,
+ "pfe_bit_position": 19,
+ "how_referenced": "direct",
+ "size": 512
+ }
+ ],
+ "parser": {
+ "ingress": [],
+ "egress": []
+ },
+ "learn_quanta": [],
+ "program_name": "default"
+}
\ No newline at end of file
diff --git a/drivers/barefoot/src/main/resources/default.json b/drivers/barefoot/src/main/resources/default.json
new file mode 100644
index 0000000..0ac74cc
--- /dev/null
+++ b/drivers/barefoot/src/main/resources/default.json
@@ -0,0 +1,1379 @@
+{
+ "__meta__": {
+ "version": [
+ 2,
+ 5
+ ],
+ "compiler": "https://github.com/p4lang/p4c-bm"
+ },
+ "header_types": [
+ {
+ "name": "standard_metadata_t",
+ "id": 0,
+ "fields": [
+ [
+ "ingress_port",
+ 9
+ ],
+ [
+ "packet_length",
+ 32
+ ],
+ [
+ "egress_spec",
+ 9
+ ],
+ [
+ "egress_port",
+ 9
+ ],
+ [
+ "egress_instance",
+ 32
+ ],
+ [
+ "instance_type",
+ 32
+ ],
+ [
+ "clone_spec",
+ 32
+ ],
+ [
+ "_padding",
+ 5
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "ingress_intrinsic_metadata_t",
+ "id": 1,
+ "fields": [
+ [
+ "resubmit_flag",
+ 1
+ ],
+ [
+ "_pad1",
+ 1
+ ],
+ [
+ "_pad2",
+ 2
+ ],
+ [
+ "_pad3",
+ 3
+ ],
+ [
+ "ingress_port",
+ 9
+ ],
+ [
+ "ingress_mac_tstamp",
+ 48
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "ingress_intrinsic_metadata_for_tm_t",
+ "id": 2,
+ "fields": [
+ [
+ "_pad1",
+ 7
+ ],
+ [
+ "ucast_egress_port",
+ 9
+ ],
+ [
+ "drop_ctl",
+ 3
+ ],
+ [
+ "bypass_egress",
+ 1
+ ],
+ [
+ "deflect_on_drop",
+ 1
+ ],
+ [
+ "ingress_cos",
+ 3
+ ],
+ [
+ "qid",
+ 5
+ ],
+ [
+ "icos_for_copy_to_cpu",
+ 3
+ ],
+ [
+ "_pad2",
+ 3
+ ],
+ [
+ "copy_to_cpu",
+ 1
+ ],
+ [
+ "packet_color",
+ 2
+ ],
+ [
+ "disable_ucast_cutthru",
+ 1
+ ],
+ [
+ "enable_mcast_cutthru",
+ 1
+ ],
+ [
+ "mcast_grp_a",
+ 16
+ ],
+ [
+ "mcast_grp_b",
+ 16
+ ],
+ [
+ "_pad3",
+ 3
+ ],
+ [
+ "level1_mcast_hash",
+ 13
+ ],
+ [
+ "_pad4",
+ 3
+ ],
+ [
+ "level2_mcast_hash",
+ 13
+ ],
+ [
+ "level1_exclusion_id",
+ 16
+ ],
+ [
+ "_pad5",
+ 7
+ ],
+ [
+ "level2_exclusion_id",
+ 9
+ ],
+ [
+ "rid",
+ 16
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "ingress_intrinsic_metadata_for_mirror_buffer_t",
+ "id": 3,
+ "fields": [
+ [
+ "_pad1",
+ 6
+ ],
+ [
+ "ingress_mirror_id",
+ 10
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "egress_intrinsic_metadata_t",
+ "id": 4,
+ "fields": [
+ [
+ "_pad0",
+ 7
+ ],
+ [
+ "egress_port",
+ 9
+ ],
+ [
+ "_pad1",
+ 5
+ ],
+ [
+ "enq_qdepth",
+ 19
+ ],
+ [
+ "_pad2",
+ 6
+ ],
+ [
+ "enq_congest_stat",
+ 2
+ ],
+ [
+ "enq_tstamp",
+ 32
+ ],
+ [
+ "_pad3",
+ 5
+ ],
+ [
+ "deq_qdepth",
+ 19
+ ],
+ [
+ "_pad4",
+ 6
+ ],
+ [
+ "deq_congest_stat",
+ 2
+ ],
+ [
+ "app_pool_congest_stat",
+ 8
+ ],
+ [
+ "deq_timedelta",
+ 32
+ ],
+ [
+ "egress_rid",
+ 16
+ ],
+ [
+ "_pad5",
+ 7
+ ],
+ [
+ "egress_rid_first",
+ 1
+ ],
+ [
+ "_pad6",
+ 3
+ ],
+ [
+ "egress_qid",
+ 5
+ ],
+ [
+ "_pad7",
+ 5
+ ],
+ [
+ "egress_cos",
+ 3
+ ],
+ [
+ "_pad8",
+ 7
+ ],
+ [
+ "deflection_flag",
+ 1
+ ],
+ [
+ "pkt_length",
+ 16
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "egress_intrinsic_metadata_for_mirror_buffer_t",
+ "id": 5,
+ "fields": [
+ [
+ "_pad1",
+ 6
+ ],
+ [
+ "egress_mirror_id",
+ 10
+ ],
+ [
+ "coalesce_flush",
+ 1
+ ],
+ [
+ "coalesce_length",
+ 7
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "egress_intrinsic_metadata_for_output_port_t",
+ "id": 6,
+ "fields": [
+ [
+ "_pad1",
+ 2
+ ],
+ [
+ "capture_tstamp_on_tx",
+ 1
+ ],
+ [
+ "update_delay_on_tx",
+ 1
+ ],
+ [
+ "force_tx_error",
+ 1
+ ],
+ [
+ "drop_ctl",
+ 3
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "packet_in_t",
+ "id": 7,
+ "fields": [
+ [
+ "ingress_port",
+ 9
+ ],
+ [
+ "_padding",
+ 7
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "packet_out_t",
+ "id": 8,
+ "fields": [
+ [
+ "egress_port",
+ 9
+ ],
+ [
+ "_padding",
+ 7
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "ethernet_t",
+ "id": 9,
+ "fields": [
+ [
+ "dstAddr",
+ 48
+ ],
+ [
+ "srcAddr",
+ 48
+ ],
+ [
+ "etherType",
+ 16
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "ipv4_t",
+ "id": 10,
+ "fields": [
+ [
+ "version",
+ 4
+ ],
+ [
+ "ihl",
+ 4
+ ],
+ [
+ "diffserv",
+ 8
+ ],
+ [
+ "totalLen",
+ 16
+ ],
+ [
+ "identification",
+ 16
+ ],
+ [
+ "flags",
+ 3
+ ],
+ [
+ "fragOffset",
+ 13
+ ],
+ [
+ "ttl",
+ 8
+ ],
+ [
+ "protocol",
+ 8
+ ],
+ [
+ "hdrChecksum",
+ 16
+ ],
+ [
+ "srcAddr",
+ 32
+ ],
+ [
+ "dstAddr",
+ 32
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "tcp_t",
+ "id": 11,
+ "fields": [
+ [
+ "srcPort",
+ 16
+ ],
+ [
+ "dstPort",
+ 16
+ ],
+ [
+ "seqNo",
+ 32
+ ],
+ [
+ "ackNo",
+ 32
+ ],
+ [
+ "dataOffset",
+ 4
+ ],
+ [
+ "res",
+ 3
+ ],
+ [
+ "ecn",
+ 3
+ ],
+ [
+ "ctrl",
+ 6
+ ],
+ [
+ "window",
+ 16
+ ],
+ [
+ "checksum",
+ 16
+ ],
+ [
+ "urgentPtr",
+ 16
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ },
+ {
+ "name": "udp_t",
+ "id": 12,
+ "fields": [
+ [
+ "srcPort",
+ 16
+ ],
+ [
+ "dstPort",
+ 16
+ ],
+ [
+ "length_",
+ 16
+ ],
+ [
+ "checksum",
+ 16
+ ]
+ ],
+ "length_exp": null,
+ "max_length": null
+ }
+ ],
+ "headers": [
+ {
+ "name": "standard_metadata",
+ "id": 0,
+ "header_type": "standard_metadata_t",
+ "metadata": true
+ },
+ {
+ "name": "ig_intr_md",
+ "id": 1,
+ "header_type": "ingress_intrinsic_metadata_t",
+ "metadata": false
+ },
+ {
+ "name": "ig_intr_md_for_tm",
+ "id": 2,
+ "header_type": "ingress_intrinsic_metadata_for_tm_t",
+ "metadata": false
+ },
+ {
+ "name": "ig_intr_md_for_mb",
+ "id": 3,
+ "header_type": "ingress_intrinsic_metadata_for_mirror_buffer_t",
+ "metadata": false
+ },
+ {
+ "name": "eg_intr_md",
+ "id": 4,
+ "header_type": "egress_intrinsic_metadata_t",
+ "metadata": false
+ },
+ {
+ "name": "eg_intr_md_for_mb",
+ "id": 5,
+ "header_type": "egress_intrinsic_metadata_for_mirror_buffer_t",
+ "metadata": false
+ },
+ {
+ "name": "eg_intr_md_for_oport",
+ "id": 6,
+ "header_type": "egress_intrinsic_metadata_for_output_port_t",
+ "metadata": false
+ },
+ {
+ "name": "packet_in_hdr",
+ "id": 7,
+ "header_type": "packet_in_t",
+ "metadata": false
+ },
+ {
+ "name": "packet_out_hdr",
+ "id": 8,
+ "header_type": "packet_out_t",
+ "metadata": false
+ },
+ {
+ "name": "ethernet",
+ "id": 9,
+ "header_type": "ethernet_t",
+ "metadata": false
+ },
+ {
+ "name": "ipv4",
+ "id": 10,
+ "header_type": "ipv4_t",
+ "metadata": false
+ },
+ {
+ "name": "tcp",
+ "id": 11,
+ "header_type": "tcp_t",
+ "metadata": false
+ },
+ {
+ "name": "udp",
+ "id": 12,
+ "header_type": "udp_t",
+ "metadata": false
+ }
+ ],
+ "header_stacks": [],
+ "parsers": [
+ {
+ "name": "parser",
+ "id": 0,
+ "init_state": "start",
+ "parse_states": [
+ {
+ "name": "start",
+ "id": 0,
+ "parser_ops": [],
+ "transition_key": [
+ {
+ "type": "lookahead",
+ "value": [
+ 96,
+ 8
+ ]
+ }
+ ],
+ "transitions": [
+ {
+ "type": "hexstr",
+ "value": "0x00",
+ "mask": null,
+ "next_state": "parse_pkt_in"
+ },
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": "default_parser"
+ }
+ ]
+ },
+ {
+ "name": "parse_pkt_in",
+ "id": 1,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "packet_in_hdr"
+ }
+ ]
+ }
+ ],
+ "transition_key": [],
+ "transitions": [
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": "parse_ethernet"
+ }
+ ]
+ },
+ {
+ "name": "parse_ethernet",
+ "id": 2,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "ethernet"
+ }
+ ]
+ }
+ ],
+ "transition_key": [
+ {
+ "type": "field",
+ "value": [
+ "ethernet",
+ "etherType"
+ ]
+ }
+ ],
+ "transitions": [
+ {
+ "type": "hexstr",
+ "value": "0x0800",
+ "mask": null,
+ "next_state": "parse_ipv4"
+ },
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": null
+ }
+ ]
+ },
+ {
+ "name": "parse_ipv4",
+ "id": 3,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "ipv4"
+ }
+ ]
+ }
+ ],
+ "transition_key": [
+ {
+ "type": "field",
+ "value": [
+ "ipv4",
+ "fragOffset"
+ ]
+ },
+ {
+ "type": "field",
+ "value": [
+ "ipv4",
+ "protocol"
+ ]
+ }
+ ],
+ "transitions": [
+ {
+ "type": "hexstr",
+ "value": "0x000006",
+ "mask": null,
+ "next_state": "parse_tcp"
+ },
+ {
+ "type": "hexstr",
+ "value": "0x000011",
+ "mask": null,
+ "next_state": "parse_udp"
+ },
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": null
+ }
+ ]
+ },
+ {
+ "name": "parse_tcp",
+ "id": 4,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "tcp"
+ }
+ ]
+ }
+ ],
+ "transition_key": [],
+ "transitions": [
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": null
+ }
+ ]
+ },
+ {
+ "name": "parse_udp",
+ "id": 5,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "udp"
+ }
+ ]
+ }
+ ],
+ "transition_key": [],
+ "transitions": [
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": null
+ }
+ ]
+ },
+ {
+ "name": "default_parser",
+ "id": 6,
+ "parser_ops": [],
+ "transition_key": [
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md",
+ "ingress_port"
+ ]
+ }
+ ],
+ "transitions": [
+ {
+ "type": "hexstr",
+ "value": "0x00ff",
+ "mask": null,
+ "next_state": "parse_pkt_out"
+ },
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": "parse_ethernet"
+ }
+ ]
+ },
+ {
+ "name": "parse_pkt_out",
+ "id": 7,
+ "parser_ops": [
+ {
+ "op": "extract",
+ "parameters": [
+ {
+ "type": "regular",
+ "value": "packet_out_hdr"
+ }
+ ]
+ }
+ ],
+ "transition_key": [],
+ "transitions": [
+ {
+ "type": "default",
+ "value": null,
+ "mask": null,
+ "next_state": "parse_ethernet"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "parse_vsets": [],
+ "deparsers": [
+ {
+ "name": "deparser",
+ "id": 0,
+ "order": [
+ "packet_in_hdr",
+ "packet_out_hdr",
+ "ethernet",
+ "ipv4",
+ "tcp",
+ "udp"
+ ]
+ }
+ ],
+ "meter_arrays": [],
+ "actions": [
+ {
+ "name": "add_packet_in_hdr",
+ "id": 0,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "add_header",
+ "parameters": [
+ {
+ "type": "header",
+ "value": "packet_in_hdr"
+ }
+ ]
+ },
+ {
+ "op": "modify_field",
+ "parameters": [
+ {
+ "type": "field",
+ "value": [
+ "packet_in_hdr",
+ "ingress_port"
+ ]
+ },
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md",
+ "ingress_port"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "send_to_cpu",
+ "id": 1,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "modify_field",
+ "parameters": [
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "copy_to_cpu"
+ ]
+ },
+ {
+ "type": "hexstr",
+ "value": "0x1"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "_drop",
+ "id": 2,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "drop",
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "_packet_out",
+ "id": 3,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "modify_field",
+ "parameters": [
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "ucast_egress_port"
+ ]
+ },
+ {
+ "type": "field",
+ "value": [
+ "packet_out_hdr",
+ "egress_port"
+ ]
+ }
+ ]
+ },
+ {
+ "op": "remove_header",
+ "parameters": [
+ {
+ "type": "header",
+ "value": "packet_out_hdr"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "count_ingress",
+ "id": 4,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "count",
+ "parameters": [
+ {
+ "type": "counter_array",
+ "value": "ingress_port_counter"
+ },
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md",
+ "ingress_port"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "count_egress",
+ "id": 5,
+ "runtime_data": [],
+ "primitives": [
+ {
+ "op": "count",
+ "parameters": [
+ {
+ "type": "counter_array",
+ "value": "egress_port_counter"
+ },
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "ucast_egress_port"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "set_egress_port",
+ "id": 6,
+ "runtime_data": [
+ {
+ "name": "port",
+ "bitwidth": 9
+ }
+ ],
+ "primitives": [
+ {
+ "op": "modify_field",
+ "parameters": [
+ {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "ucast_egress_port"
+ ]
+ },
+ {
+ "type": "runtime_data",
+ "value": 0
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "pipelines": [
+ {
+ "name": "ingress",
+ "id": 0,
+ "init_table": "_condition_0",
+ "tables": [
+ {
+ "name": "ingress_port_count_table",
+ "id": 0,
+ "match_type": "exact",
+ "type": "simple",
+ "max_size": 16384,
+ "with_counters": false,
+ "direct_meters": null,
+ "support_timeout": false,
+ "key": [],
+ "actions": [
+ "count_ingress"
+ ],
+ "next_tables": {
+ "count_ingress": "egress_port_count_table"
+ },
+ "default_entry": {
+ "action_id": 4,
+ "action_const": true
+ },
+ "base_default_next": "egress_port_count_table"
+ },
+ {
+ "name": "egress_port_count_table",
+ "id": 1,
+ "match_type": "exact",
+ "type": "simple",
+ "max_size": 16384,
+ "with_counters": false,
+ "direct_meters": null,
+ "support_timeout": false,
+ "key": [],
+ "actions": [
+ "count_egress"
+ ],
+ "next_tables": {
+ "count_egress": null
+ },
+ "default_entry": {
+ "action_id": 5,
+ "action_const": true
+ },
+ "base_default_next": null
+ },
+ {
+ "name": "ingress_pkt",
+ "id": 2,
+ "match_type": "exact",
+ "type": "simple",
+ "max_size": 16384,
+ "with_counters": false,
+ "direct_meters": null,
+ "support_timeout": false,
+ "key": [],
+ "actions": [
+ "_packet_out"
+ ],
+ "next_tables": {
+ "_packet_out": "_condition_1"
+ },
+ "default_entry": {
+ "action_id": 3,
+ "action_const": true,
+ "action_data": [],
+ "action_entry_const": false
+ },
+ "base_default_next": "_condition_1"
+ },
+ {
+ "name": "table0",
+ "id": 3,
+ "match_type": "ternary",
+ "type": "simple",
+ "max_size": 16384,
+ "with_counters": true,
+ "direct_meters": null,
+ "support_timeout": true,
+ "key": [
+ {
+ "match_type": "ternary",
+ "target": [
+ "ig_intr_md",
+ "ingress_port"
+ ],
+ "mask": null
+ },
+ {
+ "match_type": "ternary",
+ "target": [
+ "ethernet",
+ "dstAddr"
+ ],
+ "mask": null
+ },
+ {
+ "match_type": "ternary",
+ "target": [
+ "ethernet",
+ "srcAddr"
+ ],
+ "mask": null
+ },
+ {
+ "match_type": "ternary",
+ "target": [
+ "ethernet",
+ "etherType"
+ ],
+ "mask": null
+ }
+ ],
+ "actions": [
+ "set_egress_port",
+ "send_to_cpu",
+ "_drop"
+ ],
+ "next_tables": {
+ "set_egress_port": "_condition_2",
+ "send_to_cpu": "_condition_2",
+ "_drop": "_condition_2"
+ },
+ "base_default_next": "_condition_2"
+ }
+ ],
+ "action_profiles": [],
+ "conditionals": [
+ {
+ "name": "_condition_0",
+ "id": 0,
+ "expression": {
+ "type": "expression",
+ "value": {
+ "op": "valid",
+ "left": null,
+ "right": {
+ "type": "header",
+ "value": "packet_out_hdr"
+ }
+ }
+ },
+ "true_next": "ingress_pkt",
+ "false_next": "_condition_1"
+ },
+ {
+ "name": "_condition_1",
+ "id": 1,
+ "expression": {
+ "type": "expression",
+ "value": {
+ "op": "not",
+ "left": null,
+ "right": {
+ "type": "expression",
+ "value": {
+ "op": "valid",
+ "left": null,
+ "right": {
+ "type": "header",
+ "value": "packet_out_hdr"
+ }
+ }
+ }
+ }
+ },
+ "true_next": "table0",
+ "false_next": "_condition_2"
+ },
+ {
+ "name": "_condition_2",
+ "id": 2,
+ "expression": {
+ "type": "expression",
+ "value": {
+ "op": "<",
+ "left": {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "ucast_egress_port"
+ ]
+ },
+ "right": {
+ "type": "hexstr",
+ "value": "0xfe"
+ }
+ }
+ },
+ "true_next": "ingress_port_count_table",
+ "false_next": null
+ }
+ ]
+ },
+ {
+ "name": "egress",
+ "id": 1,
+ "init_table": "_condition_3",
+ "tables": [
+ {
+ "name": "egress_pkt",
+ "id": 4,
+ "match_type": "exact",
+ "type": "simple",
+ "max_size": 16384,
+ "with_counters": false,
+ "direct_meters": null,
+ "support_timeout": false,
+ "key": [],
+ "actions": [
+ "add_packet_in_hdr"
+ ],
+ "next_tables": {
+ "add_packet_in_hdr": null
+ },
+ "default_entry": {
+ "action_id": 0,
+ "action_const": true,
+ "action_data": [],
+ "action_entry_const": false
+ },
+ "base_default_next": null
+ }
+ ],
+ "action_profiles": [],
+ "conditionals": [
+ {
+ "name": "_condition_3",
+ "id": 3,
+ "expression": {
+ "type": "expression",
+ "value": {
+ "op": "==",
+ "left": {
+ "type": "field",
+ "value": [
+ "ig_intr_md_for_tm",
+ "copy_to_cpu"
+ ]
+ },
+ "right": {
+ "type": "hexstr",
+ "value": "0x1"
+ }
+ }
+ },
+ "true_next": "egress_pkt",
+ "false_next": null
+ }
+ ]
+ }
+ ],
+ "calculations": [],
+ "checksums": [],
+ "learn_lists": [],
+ "field_lists": [],
+ "counter_arrays": [
+ {
+ "name": "ingress_port_counter",
+ "id": 0,
+ "is_direct": false,
+ "size": 254
+ },
+ {
+ "name": "egress_port_counter",
+ "id": 1,
+ "is_direct": false,
+ "size": 254
+ },
+ {
+ "name": "table0_counter",
+ "id": 2,
+ "is_direct": true,
+ "binding": "table0",
+ "size": null
+ }
+ ],
+ "register_arrays": [],
+ "force_arith": [
+ [
+ "standard_metadata",
+ "ingress_port"
+ ],
+ [
+ "standard_metadata",
+ "packet_length"
+ ],
+ [
+ "standard_metadata",
+ "egress_spec"
+ ],
+ [
+ "standard_metadata",
+ "egress_port"
+ ],
+ [
+ "standard_metadata",
+ "egress_instance"
+ ],
+ [
+ "standard_metadata",
+ "instance_type"
+ ],
+ [
+ "standard_metadata",
+ "clone_spec"
+ ],
+ [
+ "standard_metadata",
+ "_padding"
+ ]
+ ],
+ "extern_instances": []
+}
\ No newline at end of file
diff --git a/drivers/barefoot/src/main/resources/default.p4info b/drivers/barefoot/src/main/resources/default.p4info
new file mode 100644
index 0000000..29e874c
--- /dev/null
+++ b/drivers/barefoot/src/main/resources/default.p4info
@@ -0,0 +1,212 @@
+tables {
+ preamble {
+ id: 33617813
+ name: "table0"
+ alias: "table0"
+ }
+ match_fields {
+ id: 1
+ name: "ig_intr_md.ingress_port"
+ bitwidth: 9
+ match_type: TERNARY
+ }
+ match_fields {
+ id: 2
+ name: "ethernet.dstAddr"
+ bitwidth: 48
+ match_type: TERNARY
+ }
+ match_fields {
+ id: 3
+ name: "ethernet.srcAddr"
+ bitwidth: 48
+ match_type: TERNARY
+ }
+ match_fields {
+ id: 4
+ name: "ethernet.etherType"
+ bitwidth: 16
+ match_type: TERNARY
+ }
+ action_refs {
+ id: 16794308
+ }
+ action_refs {
+ id: 16829080
+ }
+ action_refs {
+ id: 16784184
+ }
+ action_refs {
+ id: 16800567
+ annotations: "@defaultonly()"
+ }
+ direct_resource_ids: 301990488
+ size: 1024
+ with_entry_timeout: true
+}
+tables {
+ preamble {
+ id: 33560548
+ name: "ingress_pkt"
+ alias: "ingress_pkt"
+ }
+ action_refs {
+ id: 16835928
+ }
+ size: 1024
+}
+tables {
+ preamble {
+ id: 33618793
+ name: "egress_port_count_table"
+ alias: "egress_port_count_table"
+ }
+ action_refs {
+ id: 16822771
+ }
+ size: 1024
+}
+tables {
+ preamble {
+ id: 33579767
+ name: "ingress_port_count_table"
+ alias: "ingress_port_count_table"
+ }
+ action_refs {
+ id: 16837943
+ }
+ size: 1024
+}
+tables {
+ preamble {
+ id: 33608529
+ name: "egress_pkt"
+ alias: "egress_pkt"
+ }
+ action_refs {
+ id: 16835663
+ }
+ size: 1024
+}
+actions {
+ preamble {
+ id: 16800567
+ name: "NoAction"
+ alias: "NoAction"
+ }
+}
+actions {
+ preamble {
+ id: 16794308
+ name: "set_egress_port"
+ alias: "set_egress_port"
+ }
+ params {
+ id: 1
+ name: "port"
+ bitwidth: 9
+ }
+}
+actions {
+ preamble {
+ id: 16829080
+ name: "send_to_cpu"
+ alias: "send_to_cpu"
+ }
+}
+actions {
+ preamble {
+ id: 16784184
+ name: "_drop"
+ alias: "_drop"
+ }
+}
+actions {
+ preamble {
+ id: 16835928
+ name: "_packet_out"
+ alias: "_packet_out"
+ }
+}
+actions {
+ preamble {
+ id: 16822771
+ name: "count_egress"
+ alias: "count_egress"
+ }
+}
+actions {
+ preamble {
+ id: 16837943
+ name: "count_ingress"
+ alias: "count_ingress"
+ }
+}
+actions {
+ preamble {
+ id: 16835663
+ name: "add_packet_in_hdr"
+ alias: "add_packet_in_hdr"
+ }
+}
+counters {
+ preamble {
+ id: 302008596
+ name: "egress_port_counter"
+ alias: "egress_port_counter"
+ annotations: "@min_width(32)"
+ }
+ spec {
+ unit: PACKETS
+ }
+ size: 254
+}
+counters {
+ preamble {
+ id: 301991238
+ name: "ingress_port_counter"
+ alias: "ingress_port_counter"
+ annotations: "@min_width(32)"
+ }
+ spec {
+ unit: PACKETS
+ }
+ size: 254
+}
+direct_counters {
+ preamble {
+ id: 301990488
+ name: "table0_counter"
+ alias: "table0_counter"
+ }
+ spec {
+ unit: PACKETS
+ }
+ direct_table_id: 33617813
+}
+# Manually adding controller_packet_metadata for packet I/O since P4_14 doesn't support annotations.
+controller_packet_metadata {
+ preamble {
+ id: 2868941301
+ name: "packet_in"
+ annotations: "@controller_header(\"packet_in\")"
+ }
+ metadata {
+ id: 1
+ name: "ingress_port"
+ bitwidth: 9
+ }
+}
+controller_packet_metadata {
+ preamble {
+ id: 2868916615
+ name: "packet_out"
+ annotations: "@controller_header(\"packet_out\")"
+ }
+ metadata {
+ id: 1
+ name: "egress_port"
+ bitwidth: 9
+ }
+}
diff --git a/drivers/barefoot/src/main/resources/tofino.bin b/drivers/barefoot/src/main/resources/tofino.bin
new file mode 100644
index 0000000..f90407a
--- /dev/null
+++ b/drivers/barefoot/src/main/resources/tofino.bin
Binary files differ
diff --git a/drivers/pom.xml b/drivers/pom.xml
index 129c9df..3c7a0ad 100644
--- a/drivers/pom.xml
+++ b/drivers/pom.xml
@@ -48,9 +48,11 @@
<module>lisp</module>
<module>flowspec</module>
<module>oplink</module>
- <!-- <module>bmv2</module> -->
<module>hp</module>
<module>microsemi</module>
+ <!-- <module>bmv2</module> -->
+ <!--<module>barefoot</module>-->
+ <!--<module>p4runtime</module>-->
</modules>
<!--<properties>