diff --git a/common_requirements.in b/common_requirements.in
index e1bcad78bfc23217633fb28ef28a2d70d070644a..b277265768c9726f17ab046d8aa932167615f523 100644
--- a/common_requirements.in
+++ b/common_requirements.in
@@ -15,6 +15,7 @@
 coverage==6.3
 grpcio==1.47.*
 grpcio-health-checking==1.47.*
+grpcio-reflection==1.47.*
 grpcio-tools==1.47.*
 grpclib==0.4.4
 prettytable==3.5.0
diff --git a/manifests/servicemonitors.yaml b/manifests/servicemonitors.yaml
index d486ca971e63cf9ccc20a435d49c39e530fb438f..fa6aed0f927efa21d55ff65b18b401070e411bf4 100644
--- a/manifests/servicemonitors.yaml
+++ b/manifests/servicemonitors.yaml
@@ -575,9 +575,9 @@ apiVersion: monitoring.coreos.com/v1
 kind: ServiceMonitor
 metadata:
   namespace: monitoring # namespace where prometheus is running
-  name: tfs-kpi_value_apiservice-metric
+  name: tfs-kpi-value-apiservice-metric
   labels:
-    app: kpi_value_apiservice
+    app: kpi-value-apiservice
     #release: prometheus
     #release: prom  # name of the release
     # ( VERY IMPORTANT: You need to know the correct release name by viewing
@@ -588,7 +588,7 @@ spec:
     matchLabels:
       # Target app service
       #namespace: tfs
-      app: kpi_value_apiservice # same as above
+      app: kpi-value-apiservice # same as above
       #release: prometheus # same as above
   endpoints:
     - port: metrics # named port in target app
@@ -604,9 +604,9 @@ apiVersion: monitoring.coreos.com/v1
 kind: ServiceMonitor
 metadata:
   namespace: monitoring # namespace where prometheus is running
-  name: tfs-kpi_value_writerservice-metric
+  name: tfs-kpi-value-writerservice-metric
   labels:
-    app: kpi_value_writerservice
+    app: kpi-value-writerservice
     #release: prometheus
     #release: prom  # name of the release
     # ( VERY IMPORTANT: You need to know the correct release name by viewing
@@ -617,7 +617,7 @@ spec:
     matchLabels:
       # Target app service
       #namespace: tfs
-      app: kpi_value_writerservice # same as above
+      app: kpi-value-writerservice # same as above
       #release: prometheus # same as above
   endpoints:
     - port: metrics # named port in target app
diff --git a/manifests/webuiservice.yaml b/manifests/webuiservice.yaml
index 4d3b7780c4cfd82a87f89baee57633503d30b92d..5a321c33e33e83b5eb67b9bacf8b9ce8f1edf304 100644
--- a/manifests/webuiservice.yaml
+++ b/manifests/webuiservice.yaml
@@ -12,6 +12,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: grafana-pvc
+spec:
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 1Gi
+---
 apiVersion: apps/v1
 kind: Deployment
 metadata:
@@ -99,6 +110,13 @@ spec:
             limits:
               cpu: 500m
               memory: 1024Mi
+          volumeMounts:
+            - mountPath: /var/lib/grafana
+              name: grafana-pv
+      volumes:
+        - name: grafana-pv
+          persistentVolumeClaim:
+            claimName: grafana-pvc
 ---
 apiVersion: v1
 kind: Service
diff --git a/proto/context.proto b/proto/context.proto
index 9f06d32ee04b5102ce2af511f45f8de34f984599..4d61572df1db6c95b64e9ce1cbfdd9e0db111078 100644
--- a/proto/context.proto
+++ b/proto/context.proto
@@ -258,6 +258,14 @@ message LinkId {
   Uuid link_uuid = 1;
 }
 
+enum LinkTypeEnum {
+  LINKTYPE_UNKNOWN = 0;
+  LINKTYPE_COPPER  = 1;
+  LINKTYPE_FIBER   = 2;
+  LINKTYPE_RADIO   = 3;
+  LINKTYPE_VIRTUAL = 4;
+}
+
 message LinkAttributes {
   float total_capacity_gbps = 1;
   float used_capacity_gbps  = 2;
@@ -266,9 +274,9 @@ message LinkAttributes {
 message Link {
   LinkId link_id = 1;
   string name = 2;
-  repeated EndPointId link_endpoint_ids = 3;
-  LinkAttributes attributes = 4;
-  LinkTypeEnum link_type = 5;
+  LinkTypeEnum link_type = 3;
+  repeated EndPointId link_endpoint_ids = 4;
+  LinkAttributes attributes = 5;
 }
 
 message LinkIdList {
@@ -284,14 +292,6 @@ message LinkEvent {
   LinkId link_id = 2;
 }
 
-enum LinkTypeEnum {
-  LINKTYPE_UNKNOWN = 0;
-  LINKTYPE_COPPER = 1;
-  LINKTYPE_VIRTUAL_COPPER = 2;
-  LINKTYPE_OPTICAL = 3;
-  LINKTYPE_VIRTUAL_OPTICAL = 4;
-}
-
 // ----- Service -------------------------------------------------------------------------------------------------------
 message ServiceId {
   ContextId context_id = 1;
diff --git a/scripts/grpcurl_inspect_context.sh b/scripts/grpcurl_inspect_context.sh
new file mode 100755
index 0000000000000000000000000000000000000000..dda920a7a1899a9d8cdc3e1d1c7c576463c66fed
--- /dev/null
+++ b/scripts/grpcurl_inspect_context.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+########################################################################################################################
+# Define your deployment settings here
+########################################################################################################################
+
+# If not already set, set the name of the Kubernetes namespace to deploy to.
+export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
+
+########################################################################################################################
+# Automated steps start here
+########################################################################################################################
+
+# Ref: https://github.com/fullstorydev/grpcurl
+
+source tfs_runtime_env_vars.sh
+
+GRPC_ENDPOINT="$CONTEXTSERVICE_SERVICE_HOST:$CONTEXTSERVICE_SERVICE_PORT_GRPC"
+GRP_CURL_CMD="docker run fullstorydev/grpcurl --plaintext $GRPC_ENDPOINT"
+
+GRPC_SERVICES=`$GRP_CURL_CMD list`
+echo "gRPC Services found in $GRPC_ENDPOINT:"
+printf "\n"
+
+for GRPC_SERVICE in $GRPC_SERVICES; do
+    echo "gRPC Service: $GRPC_SERVICE"
+    $GRP_CURL_CMD describe $GRPC_SERVICE
+    printf "\n"
+done
+
+echo "Done!"
diff --git a/scripts/grpcurl_inspect_device.sh b/scripts/grpcurl_inspect_device.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0e1202fb6ed3b0306f3dfe03cd60eeb55c7abe83
--- /dev/null
+++ b/scripts/grpcurl_inspect_device.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+########################################################################################################################
+# Define your deployment settings here
+########################################################################################################################
+
+# If not already set, set the name of the Kubernetes namespace to deploy to.
+export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
+
+########################################################################################################################
+# Automated steps start here
+########################################################################################################################
+
+# Ref: https://github.com/fullstorydev/grpcurl
+
+source tfs_runtime_env_vars.sh
+
+GRPC_ENDPOINT="$DEVICESERVICE_SERVICE_HOST:$DEVICESERVICE_SERVICE_PORT_GRPC"
+GRP_CURL_CMD="docker run fullstorydev/grpcurl --plaintext $GRPC_ENDPOINT"
+
+GRPC_SERVICES=`$GRP_CURL_CMD list`
+echo "gRPC Services found in $GRPC_ENDPOINT:"
+printf "\n"
+
+for GRPC_SERVICE in $GRPC_SERVICES; do
+    echo "gRPC Service: $GRPC_SERVICE"
+    $GRP_CURL_CMD describe $GRPC_SERVICE
+    printf "\n"
+done
+
+echo "Done!"
diff --git a/scripts/grpcurl_inspect_pathcomp_frontend.sh b/scripts/grpcurl_inspect_pathcomp_frontend.sh
new file mode 100755
index 0000000000000000000000000000000000000000..686f7ae1e46aed2c60a33cd7fc7265ff1b5a3762
--- /dev/null
+++ b/scripts/grpcurl_inspect_pathcomp_frontend.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+########################################################################################################################
+# Define your deployment settings here
+########################################################################################################################
+
+# If not already set, set the name of the Kubernetes namespace to deploy to.
+export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
+
+########################################################################################################################
+# Automated steps start here
+########################################################################################################################
+
+# Ref: https://github.com/fullstorydev/grpcurl
+
+source tfs_runtime_env_vars.sh
+
+GRPC_ENDPOINT="$PATHCOMPSERVICE_SERVICE_HOST:$PATHCOMPSERVICE_SERVICE_PORT_GRPC"
+GRP_CURL_CMD="docker run fullstorydev/grpcurl --plaintext $GRPC_ENDPOINT"
+
+GRPC_SERVICES=`$GRP_CURL_CMD list`
+echo "gRPC Services found in $GRPC_ENDPOINT:"
+printf "\n"
+
+for GRPC_SERVICE in $GRPC_SERVICES; do
+    echo "gRPC Service: $GRPC_SERVICE"
+    $GRP_CURL_CMD describe $GRPC_SERVICE
+    printf "\n"
+done
+
+echo "Done!"
diff --git a/scripts/grpcurl_inspect_service.sh b/scripts/grpcurl_inspect_service.sh
new file mode 100755
index 0000000000000000000000000000000000000000..f1b674ee5aa8d7f0a1878840cc1f674d61b51ea5
--- /dev/null
+++ b/scripts/grpcurl_inspect_service.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+########################################################################################################################
+# Define your deployment settings here
+########################################################################################################################
+
+# If not already set, set the name of the Kubernetes namespace to deploy to.
+export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
+
+########################################################################################################################
+# Automated steps start here
+########################################################################################################################
+
+# Ref: https://github.com/fullstorydev/grpcurl
+
+source tfs_runtime_env_vars.sh
+
+GRPC_ENDPOINT="$SERVICESERVICE_SERVICE_HOST:$SERVICESERVICE_SERVICE_PORT_GRPC"
+GRP_CURL_CMD="docker run fullstorydev/grpcurl --plaintext $GRPC_ENDPOINT"
+
+GRPC_SERVICES=`$GRP_CURL_CMD list`
+echo "gRPC Services found in $GRPC_ENDPOINT:"
+printf "\n"
+
+for GRPC_SERVICE in $GRPC_SERVICES; do
+    echo "gRPC Service: $GRPC_SERVICE"
+    $GRP_CURL_CMD describe $GRPC_SERVICE
+    printf "\n"
+done
+
+echo "Done!"
diff --git a/scripts/grpcurl_inspect_slice.sh b/scripts/grpcurl_inspect_slice.sh
new file mode 100755
index 0000000000000000000000000000000000000000..170be7bf567c5f7adb0d84db62416ecc0d512f21
--- /dev/null
+++ b/scripts/grpcurl_inspect_slice.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+########################################################################################################################
+# Define your deployment settings here
+########################################################################################################################
+
+# If not already set, set the name of the Kubernetes namespace to deploy to.
+export TFS_K8S_NAMESPACE=${TFS_K8S_NAMESPACE:-"tfs"}
+
+########################################################################################################################
+# Automated steps start here
+########################################################################################################################
+
+# Ref: https://github.com/fullstorydev/grpcurl
+
+source tfs_runtime_env_vars.sh
+
+GRPC_ENDPOINT="$SLICESERVICE_SERVICE_HOST:$SLICESERVICE_SERVICE_PORT_GRPC"
+GRP_CURL_CMD="docker run fullstorydev/grpcurl --plaintext $GRPC_ENDPOINT"
+
+GRPC_SERVICES=`$GRP_CURL_CMD list`
+echo "gRPC Services found in $GRPC_ENDPOINT:"
+printf "\n"
+
+for GRPC_SERVICE in $GRPC_SERVICES; do
+    echo "gRPC Service: $GRPC_SERVICE"
+    $GRP_CURL_CMD describe $GRPC_SERVICE
+    printf "\n"
+done
+
+echo "Done!"
diff --git a/src/common/tools/client/RetryDecorator.py b/src/common/tools/client/RetryDecorator.py
index fc45d95c8dccbbca32ace5fbba5fb4aefc7a4d79..4750ff73ae4342ce2eb2a31941ff48b46e5be281 100644
--- a/src/common/tools/client/RetryDecorator.py
+++ b/src/common/tools/client/RetryDecorator.py
@@ -51,24 +51,32 @@ LOGGER = logging.getLogger(__name__)
 def delay_linear(initial=0, increment=0, maximum=None):
     def compute(num_try):
         delay = initial + (num_try - 1) * increment
-        if maximum is not None: delay = max(delay, maximum)
+        if maximum is not None:
+            delay = max(delay, maximum)
         return delay
     return compute
 
 def delay_exponential(initial=1, increment=1, maximum=None):
     def compute(num_try):
         delay = initial * pow(increment, (num_try - 1))
-        if maximum is not None: delay = max(delay, maximum)
+        if maximum is not None:
+            delay = max(delay, maximum)
         return delay
     return compute
 
-def retry(max_retries=0, delay_function=delay_linear(initial=0, increment=0),
-          prepare_method_name=None, prepare_method_args=[], prepare_method_kwargs={}):
+# pylint: disable=dangerous-default-value
+def retry(
+    max_retries=0, delay_function=delay_linear(initial=0, increment=0),
+    prepare_method_name=None, prepare_method_args=list(), prepare_method_kwargs=dict()
+):
     def _reconnect(func):
         def wrapper(self, *args, **kwargs):
             if prepare_method_name is not None:
                 prepare_method = getattr(self, prepare_method_name, None)
-                if prepare_method is None: raise Exception('Prepare Method ({}) not found'.format(prepare_method_name))
+                if prepare_method is None:
+                    MSG = 'Prepare Method ({:s}) not found'
+                    # pylint: disable=broad-exception-raised
+                    raise Exception(MSG.format(prepare_method_name))
             num_try, given_up = 0, False
             while not given_up:
                 try:
@@ -78,14 +86,29 @@ def retry(max_retries=0, delay_function=delay_linear(initial=0, increment=0),
 
                     num_try += 1
                     given_up = num_try > max_retries
-                    if given_up: raise Exception('Giving up... {:d} tries failed'.format(max_retries)) from e
+                    if given_up:
+                        MSG = '[{:s}:{:s}] Giving up... {:d} tries failed'
+                        msg = MSG.format(func.__module__, func.__name__, max_retries)
+                        # pylint: disable=broad-exception-raised
+                        raise Exception(msg) from e
                     if delay_function is not None:
                         delay = delay_function(num_try)
                         time.sleep(delay)
-                        LOGGER.info('Retry {:d}/{:d} after {:f} seconds...'.format(num_try, max_retries, delay))
+                        MSG = '[{:s}:{:s}] Retry {:d}/{:d} after {:f} seconds...'
+                        LOGGER.info(MSG.format(
+                            func.__module__, func.__name__, num_try, max_retries, delay
+                        ))
                     else:
-                        LOGGER.info('Retry {:d}/{:d} immediate...'.format(num_try, max_retries))
+                        MSG = '[{:s}:{:s}] Retry {:d}/{:d} immediate...'
+                        LOGGER.info(MSG.format(
+                            func.__module__, func.__name__, num_try, max_retries
+                        ))
 
-                    if prepare_method_name is not None: prepare_method(*prepare_method_args, **prepare_method_kwargs)
+                    if prepare_method_name is not None:
+                        MSG = '[{:s}:{:s}] Running prepare method...'
+                        LOGGER.debug(MSG.format(
+                            prepare_method.__module__, prepare_method.__name__
+                        ))
+                        prepare_method(*prepare_method_args, **prepare_method_kwargs)
         return wrapper
     return _reconnect
diff --git a/src/common/tools/service/GenericGrpcService.py b/src/common/tools/service/GenericGrpcService.py
index f29582fff87f4ca89ee44c78adbec33f321a9a39..453309127ccf49272d004740c1e3be52cba26779 100644
--- a/src/common/tools/service/GenericGrpcService.py
+++ b/src/common/tools/service/GenericGrpcService.py
@@ -12,18 +12,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from typing import Optional, Union
 import grpc, logging
 from concurrent import futures
+from typing import Any, List, Optional, Union
 from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH
 from grpc_health.v1.health_pb2 import HealthCheckResponse
 from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server
+from grpc_reflection.v1alpha import reflection
 from common.Settings import get_grpc_bind_address, get_grpc_grace_period, get_grpc_max_workers
 
 class GenericGrpcService:
     def __init__(
-        self, bind_port : Union[str, int], bind_address : Optional[str] = None, max_workers : Optional[int] = None,
-        grace_period : Optional[int] = None, enable_health_servicer : bool = True, cls_name : str = __name__
+        self, bind_port : Union[str, int], bind_address : Optional[str] = None,
+        max_workers : Optional[int] = None, grace_period : Optional[int] = None,
+        enable_health_servicer : bool = True, enable_reflection : bool = True,
+        cls_name : str = __name__
     ) -> None:
         self.logger = logging.getLogger(cls_name)
         self.bind_port = bind_port
@@ -31,6 +34,8 @@ class GenericGrpcService:
         self.max_workers = get_grpc_max_workers() if max_workers is None else max_workers
         self.grace_period = get_grpc_grace_period() if grace_period is None else grace_period
         self.enable_health_servicer = enable_health_servicer
+        self.enable_reflection = enable_reflection
+        self.reflection_service_names : List[str] = [reflection.SERVICE_NAME]
         self.endpoint = None
         self.health_servicer = None
         self.pool = None
@@ -39,6 +44,11 @@ class GenericGrpcService:
     def install_servicers(self):
         pass
 
+    def add_reflection_service_name(self, service_descriptor : Any, service_name : str):
+        self.reflection_service_names.append(
+            service_descriptor.services_by_name[service_name].full_name
+        )
+
     def start(self):
         self.endpoint = '{:s}:{:s}'.format(str(self.bind_address), str(self.bind_port))
         self.logger.info('Starting Service (tentative endpoint: {:s}, max_workers: {:s})...'.format(
@@ -54,6 +64,9 @@ class GenericGrpcService:
                 experimental_non_blocking=True, experimental_thread_pool=futures.ThreadPoolExecutor(max_workers=1))
             add_HealthServicer_to_server(self.health_servicer, self.server)
 
+        if self.enable_reflection:
+            reflection.enable_server_reflection(self.reflection_service_names, self.server)
+
         self.bind_port = self.server.add_insecure_port(self.endpoint)
         self.endpoint = '{:s}:{:s}'.format(str(self.bind_address), str(self.bind_port))
         self.logger.info('Listening on {:s}...'.format(str(self.endpoint)))
diff --git a/src/common/tools/service/GenericGrpcServiceAsync.py b/src/common/tools/service/GenericGrpcServiceAsync.py
index 1d652deb79e1389e2403d1d13debcba7dbc43ecc..551a3d568612f59c2bc26f692ab8d1d27dc4f4b3 100644
--- a/src/common/tools/service/GenericGrpcServiceAsync.py
+++ b/src/common/tools/service/GenericGrpcServiceAsync.py
@@ -12,19 +12,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from typing import Optional, Union
-import grpc
-import logging
+import grpc, logging
 from concurrent import futures
+from typing import Any, List, Optional, Union
 from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH
 from grpc_health.v1.health_pb2 import HealthCheckResponse
 from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server
+from grpc_reflection.v1alpha import reflection
 from common.Settings import get_grpc_bind_address, get_grpc_grace_period, get_grpc_max_workers
 
 class GenericGrpcServiceAsync:
     def __init__(
-        self, bind_port: Union[str, int], bind_address: Optional[str] = None, max_workers: Optional[int] = None,
-        grace_period: Optional[int] = None, enable_health_servicer: bool = True, cls_name: str = __name__
+        self, bind_port : Union[str, int], bind_address : Optional[str] = None,
+        max_workers : Optional[int] = None, grace_period : Optional[int] = None,
+        enable_health_servicer : bool = True, enable_reflection : bool = True,
+        cls_name : str = __name__
     ) -> None:
         self.logger = logging.getLogger(cls_name)
         self.bind_port = bind_port
@@ -32,6 +34,8 @@ class GenericGrpcServiceAsync:
         self.max_workers = get_grpc_max_workers() if max_workers is None else max_workers
         self.grace_period = get_grpc_grace_period() if grace_period is None else grace_period
         self.enable_health_servicer = enable_health_servicer
+        self.enable_reflection = enable_reflection
+        self.reflection_service_names : List[str] = [reflection.SERVICE_NAME]
         self.endpoint = None
         self.health_servicer = None
         self.pool = None
@@ -40,7 +44,12 @@ class GenericGrpcServiceAsync:
     async def install_servicers(self):
         pass
 
-    async def start(self):
+    def add_reflection_service_name(self, service_descriptor : Any, service_name : str):
+        self.reflection_service_names.append(
+            service_descriptor.services_by_name[service_name].full_name
+        )
+
+    def start(self):
         self.endpoint = '{:s}:{:s}'.format(str(self.bind_address), str(self.bind_port))
         self.logger.info('Starting Service (tentative endpoint: {:s}, max_workers: {:s})...'.format(
             str(self.endpoint), str(self.max_workers)))
@@ -55,6 +64,9 @@ class GenericGrpcServiceAsync:
                 experimental_non_blocking=True, experimental_thread_pool=futures.ThreadPoolExecutor(max_workers=1))
             add_HealthServicer_to_server(self.health_servicer, self.server)
 
+        if self.enable_reflection:
+            reflection.enable_server_reflection(self.reflection_service_names, self.server)
+
         self.bind_port = self.server.add_insecure_port(self.endpoint)
         self.endpoint = '{:s}:{:s}'.format(str(self.bind_address), str(self.bind_port))
         self.logger.info('Listening on {:s}...'.format(str(self.endpoint)))
diff --git a/src/context/service/ContextService.py b/src/context/service/ContextService.py
index a385f4481ec022b475649b749f5206512fe216b2..d633dea15a1e00316c9e8eac9d31ca69829f180f 100644
--- a/src/context/service/ContextService.py
+++ b/src/context/service/ContextService.py
@@ -16,7 +16,9 @@ import logging, sqlalchemy
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
 from common.message_broker.MessageBroker import MessageBroker
+from common.proto.context_pb2 import DESCRIPTOR as CONTEXT_DESCRIPTOR
 from common.proto.context_pb2_grpc import add_ContextServiceServicer_to_server
+from common.proto.context_policy_pb2 import DESCRIPTOR as CONTEXT_POLICY_DESCRIPTOR
 from common.proto.context_policy_pb2_grpc import add_ContextPolicyServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from .ContextServiceServicerImpl import ContextServiceServicerImpl
@@ -36,3 +38,6 @@ class ContextService(GenericGrpcService):
     def install_servicers(self):
         add_ContextServiceServicer_to_server(self.context_servicer, self.server)
         add_ContextPolicyServiceServicer_to_server(self.context_servicer, self.server)
+
+        self.add_reflection_service_name(CONTEXT_DESCRIPTOR, 'ContextService')
+        self.add_reflection_service_name(CONTEXT_POLICY_DESCRIPTOR, 'ContextPolicyService')
diff --git a/src/context/service/database/Connection.py b/src/context/service/database/Connection.py
index de45151a5ca95e974e940503aaade83a47faf46c..529c02d6e29b6434b3da0ec03593634b3ab87f08 100644
--- a/src/context/service/database/Connection.py
+++ b/src/context/service/database/Connection.py
@@ -74,7 +74,7 @@ def connection_set(db_engine : Engine, messagebroker : MessageBroker, request :
     _,service_uuid = service_get_uuid(request.service_id, allow_random=False)
     settings = grpc_message_to_json_string(request.settings),
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     connection_data = [{
         'connection_uuid': connection_uuid,
diff --git a/src/context/service/database/Context.py b/src/context/service/database/Context.py
index f0cd36f83fb3588976a3fcf515e2e97bd9613f4c..f3ef214c3715ac8c6110e3d5a18c2fb744d2d6db 100644
--- a/src/context/service/database/Context.py
+++ b/src/context/service/database/Context.py
@@ -82,7 +82,8 @@ def context_set(db_engine : Engine, messagebroker : MessageBroker, request : Con
     if len(request.slice_ids) > 0:      # pragma: no cover
         LOGGER.warning('Items in field "slice_ids" ignored. This field is used for retrieval purposes only.')
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
+
     context_data = [{
         'context_uuid': context_uuid,
         'context_name': context_name,
diff --git a/src/context/service/database/Device.py b/src/context/service/database/Device.py
index 930b5299f9c77243e5d26c453d051e3ecb455e27..7515f8d68227bd26f5d5384756186394492e5e53 100644
--- a/src/context/service/database/Device.py
+++ b/src/context/service/database/Device.py
@@ -92,7 +92,7 @@ def device_set(db_engine : Engine, messagebroker : MessageBroker, request : Devi
     oper_status = grpc_to_enum__device_operational_status(request.device_operational_status)
     device_drivers = [grpc_to_enum__device_driver(d) for d in request.device_drivers]
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     topology_uuids : Set[str] = set()
     related_topologies : List[Dict] = list()
diff --git a/src/context/service/database/Link.py b/src/context/service/database/Link.py
index deef3769cb64e34ae6c300f562c31983a8807286..6244a8517f66280893acb10944a235666beb80d4 100644
--- a/src/context/service/database/Link.py
+++ b/src/context/service/database/Link.py
@@ -22,11 +22,12 @@ from common.proto.context_pb2 import Empty, EventTypeEnum, Link, LinkId, LinkIdL
 from common.message_broker.MessageBroker import MessageBroker
 from common.method_wrappers.ServiceExceptions import NotFoundException
 from common.tools.object_factory.Link import json_link_id
-from context.service.database.uuids.Topology import topology_get_uuid
+from .models.enums.LinkType import grpc_to_enum__link_type_enum
 from .models.LinkModel import LinkModel, LinkEndPointModel
 from .models.TopologyModel import TopologyLinkModel, TopologyModel
 from .uuids.EndPoint import endpoint_get_uuid
 from .uuids.Link import link_get_uuid
+from .uuids.Topology import topology_get_uuid
 from .Events import notify_event_context, notify_event_link, notify_event_topology
 
 LOGGER = logging.getLogger(__name__)
@@ -68,7 +69,9 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
     link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name
     link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True)
 
-    now = datetime.datetime.utcnow()
+    link_type = grpc_to_enum__link_type_enum(request.link_type)
+
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     topology_uuids : Set[str] = set()
     related_topologies : List[Dict] = list()
@@ -117,6 +120,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
     link_data = [{
         'link_uuid'           : link_uuid,
         'link_name'           : link_name,
+        'link_type'           : link_type,
         'total_capacity_gbps' : total_capacity_gbps,
         'used_capacity_gbps'  : used_capacity_gbps,
         'created_at'          : now,
@@ -129,6 +133,7 @@ def link_set(db_engine : Engine, messagebroker : MessageBroker, request : Link)
             index_elements=[LinkModel.link_uuid],
             set_=dict(
                 link_name           = stmt.excluded.link_name,
+                link_type           = stmt.excluded.link_type,
                 total_capacity_gbps = stmt.excluded.total_capacity_gbps,
                 used_capacity_gbps  = stmt.excluded.used_capacity_gbps,
                 updated_at          = stmt.excluded.updated_at,
diff --git a/src/context/service/database/OpticalLink.py b/src/context/service/database/OpticalLink.py
index 53fd7bdb5a5964376c6ffb94c6b130b6744f7215..1f45daf43bb805e750b1742e6e4ea7e18039cc43 100644
--- a/src/context/service/database/OpticalLink.py
+++ b/src/context/service/database/OpticalLink.py
@@ -64,7 +64,7 @@ def optical_link_set(db_engine : Engine, messagebroker : MessageBroker, request
     link_name = raw_link_uuid if len(raw_link_name) == 0 else raw_link_name
     link_uuid = link_get_uuid(request.link_id, link_name=link_name, allow_random=True)
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     # By default, always add link to default Context/Topology
     topology_uuids : Set[str] = set()
diff --git a/src/context/service/database/PolicyRule.py b/src/context/service/database/PolicyRule.py
index 3d59c59b3ade828450924404d081e237b7a37c1f..ad38838fc127aaee1927f9e44ac0791cef105300 100644
--- a/src/context/service/database/PolicyRule.py
+++ b/src/context/service/database/PolicyRule.py
@@ -84,7 +84,7 @@ def policyrule_set(db_engine : Engine, messagebroker : MessageBroker, request :
         'actionList': json_policyrule_basic.get('actionList', []),
     }, sort_keys=True)
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     policyrule_data = [{
         'policyrule_uuid'     : policyrule_uuid,
diff --git a/src/context/service/database/Service.py b/src/context/service/database/Service.py
index c789b291bd15bda1a49d8dd68e78d1875adccfb7..62f07e4fbe4f90af7834358cc79d4c8cb82934f4 100644
--- a/src/context/service/database/Service.py
+++ b/src/context/service/database/Service.py
@@ -91,7 +91,7 @@ def service_set(db_engine : Engine, messagebroker : MessageBroker, request : Ser
 
     service_status = grpc_to_enum__service_status(request.service_status.service_status)
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     service_endpoints_data : List[Dict] = list()
     for i,endpoint_id in enumerate(request.service_endpoint_ids):
@@ -180,7 +180,8 @@ def service_unset(db_engine : Engine, messagebroker : MessageBroker, request : S
                 ['should be == request.service_id.context_id.context_uuid.uuid({:s})'.format(raw_context_uuid)])
         service_endpoint_uuids.add(endpoint_get_uuid(endpoint_id, allow_random=False)[2])
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
+
     constraints = compose_constraints_data(request.service_constraints, now, service_uuid=service_uuid)
     config_rules = compose_config_rules_data(request.service_config.config_rules, now, service_uuid=service_uuid)
 
diff --git a/src/context/service/database/Slice.py b/src/context/service/database/Slice.py
index 18620e6fc76bbbbf6f445767d92a108f84c20a06..84e210e025e750613387a18c4c7eef4618cdfcdb 100644
--- a/src/context/service/database/Slice.py
+++ b/src/context/service/database/Slice.py
@@ -89,7 +89,7 @@ def slice_set(db_engine : Engine, messagebroker : MessageBroker, request : Slice
 
     slice_status = grpc_to_enum__slice_status(request.slice_status.slice_status)
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
 
     slice_endpoints_data : List[Dict] = list()
     for i,endpoint_id in enumerate(request.slice_endpoint_ids):
@@ -222,7 +222,8 @@ def slice_unset(db_engine : Engine, messagebroker : MessageBroker, request : Sli
         for subslice_id in request.slice_subslice_ids
     }
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
+
     constraints = compose_constraints_data(request.slice_constraints, now, slice_uuid=slice_uuid)
     config_rules = compose_config_rules_data(request.slice_config.config_rules, now, slice_uuid=slice_uuid)
 
diff --git a/src/context/service/database/Topology.py b/src/context/service/database/Topology.py
index ba2649c69abb025988e576f4978479bc05a5d657..1ee5d16422e94d2b9a2ed4dede461a14e97434ec 100644
--- a/src/context/service/database/Topology.py
+++ b/src/context/service/database/Topology.py
@@ -134,7 +134,8 @@ def topology_set(db_engine : Engine, messagebroker : MessageBroker, request : To
             MSG += 'Items in field "link_ids" ignored. This field is used for retrieval purposes only.'
             LOGGER.warning(MSG)
 
-    now = datetime.datetime.utcnow()
+    now = datetime.datetime.now(datetime.timezone.utc)
+
     topology_data = [{
         'context_uuid' : context_uuid,
         'topology_uuid': topology_uuid,
diff --git a/src/context/service/database/models/LinkModel.py b/src/context/service/database/models/LinkModel.py
index 423e39832201cc19d98a106b136fb545f4e24b7d..1bfa532d843bce4e078ef087fa4659b6fec75ceb 100644
--- a/src/context/service/database/models/LinkModel.py
+++ b/src/context/service/database/models/LinkModel.py
@@ -13,17 +13,22 @@
 # limitations under the License.
 
 import operator
-from sqlalchemy import CheckConstraint, Column, DateTime, Float, ForeignKey, Integer, String
+from sqlalchemy import (
+    CheckConstraint, Column, DateTime, Enum, Float, ForeignKey, Integer, String
+)
 from sqlalchemy.dialects.postgresql import UUID
 from sqlalchemy.orm import relationship
 from typing import Dict
+from common.proto.context_pb2 import LinkTypeEnum
 from ._Base import _Base
+from .enums.LinkType import ORM_LinkTypeEnum
 
 class LinkModel(_Base):
     __tablename__ = 'link'
 
     link_uuid           = Column(UUID(as_uuid=False), primary_key=True)
     link_name           = Column(String, nullable=False)
+    link_type           = Column(Enum(ORM_LinkTypeEnum), nullable=False)
     total_capacity_gbps = Column(Float, nullable=True)
     used_capacity_gbps  = Column(Float, nullable=True)
     created_at          = Column(DateTime, nullable=False)
@@ -44,11 +49,14 @@ class LinkModel(_Base):
         result = {
             'link_id'          : self.dump_id(),
             'name'             : self.link_name,
+            'link_type'        : self.link_type.value,
             'link_endpoint_ids': [
                 link_endpoint.endpoint.dump_id()
                 for link_endpoint in sorted(self.link_endpoints, key=operator.attrgetter('position'))
             ],
         }
+        if self.link_type is None:
+            self.link_type = LinkTypeEnum.LINKTYPE_UNKNOWN
         if self.total_capacity_gbps is not None:
             attributes : Dict = result.setdefault('attributes', dict())
             attributes.setdefault('total_capacity_gbps', self.total_capacity_gbps)
diff --git a/src/context/service/database/models/enums/LinkType.py b/src/context/service/database/models/enums/LinkType.py
new file mode 100644
index 0000000000000000000000000000000000000000..68624af845ea813aa5ca886de97861852a294516
--- /dev/null
+++ b/src/context/service/database/models/enums/LinkType.py
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import enum, functools
+from common.proto.context_pb2 import LinkTypeEnum
+from ._GrpcToEnum import grpc_to_enum
+
+# IMPORTANT: Entries of enum class ORM_LinkTypeEnum should be named as in
+#            the proto files removing the prefixes. For example, proto item
+#            LinkTypeEnum.DEVICEDRIVER_COPPER should be included as COPPER.
+#            If item name does not match, automatic mapping of proto enums
+#            to database enums will fail.
+class ORM_LinkTypeEnum(enum.Enum):
+    UNKNOWN = LinkTypeEnum.LINKTYPE_UNKNOWN
+    COPPER  = LinkTypeEnum.LINKTYPE_COPPER
+    FIBER   = LinkTypeEnum.LINKTYPE_FIBER
+    RADIO   = LinkTypeEnum.LINKTYPE_RADIO
+    VIRTUAL = LinkTypeEnum.LINKTYPE_VIRTUAL
+
+grpc_to_enum__link_type_enum = functools.partial(
+    grpc_to_enum, LinkTypeEnum, ORM_LinkTypeEnum
+)
diff --git a/src/device/requirements.in b/src/device/requirements.in
index c89303df34d5562fdc2a7e83be76973578660ba5..ca2cdea47bb1ec1045a8bb8c35d64999b8f77f85 100644
--- a/src/device/requirements.in
+++ b/src/device/requirements.in
@@ -24,13 +24,13 @@ Flask-HTTPAuth==4.5.0
 Flask-RESTful==0.3.9
 ipaddress
 Jinja2==3.0.3
-libyang==2.8.0
+libyang==2.8.4
 macaddress
 ncclient==0.6.15
 numpy<2.0.0
 p4runtime==1.3.0
 pandas==1.5.*
-paramiko==2.9.2
+paramiko==2.11.*
 pyang==2.6.*
 git+https://github.com/robshakir/pyangbind.git
 python-json-logger==2.0.2
diff --git a/src/device/service/DeviceService.py b/src/device/service/DeviceService.py
index a94259471e76e40ddc5c6a1f2c109e8ada5075ae..a5a48e1bf80bce67fccd32316fa92935428d5b65 100644
--- a/src/device/service/DeviceService.py
+++ b/src/device/service/DeviceService.py
@@ -12,10 +12,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import os
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
+from common.proto.device_pb2 import DESCRIPTOR as DEVICE_DESCRIPTOR
 from common.proto.device_pb2_grpc import add_DeviceServiceServicer_to_server
+from common.proto.optical_device_pb2 import DESCRIPTOR as OPTICAL_DEVICE_DESCRIPTOR
 from common.proto.optical_device_pb2_grpc import add_OpenConfigServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from device.Config import LOAD_ALL_DEVICE_DRIVERS
@@ -41,8 +42,11 @@ class DeviceService(GenericGrpcService):
     def install_servicers(self):
         self.monitoring_loops.start()
         add_DeviceServiceServicer_to_server(self.device_servicer, self.server)
+        self.add_reflection_service_name(DEVICE_DESCRIPTOR, 'DeviceService')
+
         if LOAD_ALL_DEVICE_DRIVERS:
             add_OpenConfigServiceServicer_to_server(self.openconfig_device_servicer,self.server)
+            self.add_reflection_service_name(OPTICAL_DEVICE_DESCRIPTOR, 'OpenConfigService')
 
     def stop(self):
         super().stop()
diff --git a/src/device/service/driver_api/_Driver.py b/src/device/service/driver_api/_Driver.py
index 2580c3e785450f7be1972679872c3d16db39c714..e838e5b3d3cfca353fd4994fd60ad387b5f6766d 100644
--- a/src/device/service/driver_api/_Driver.py
+++ b/src/device/service/driver_api/_Driver.py
@@ -25,12 +25,15 @@ RESOURCE_ROUTING_POLICIES = '__routing_policies__'
 RESOURCE_SERVICES = '__services__'
 RESOURCE_ACL = '__acl__'
 RESOURCE_INVENTORY = '__inventory__'
+RESOURCE_RULES = "__rules__"
 
 
 class _Driver:
     def __init__(self, name : str, address: str, port: int, **settings) -> None:
         """ Initialize Driver.
             Parameters:
+                name : str
+                    Device driver name
                 address : str
                     The address of the device
                 port : int
diff --git a/src/device/service/drivers/gnmi_openconfig/GnmiSessionHandler.py b/src/device/service/drivers/gnmi_openconfig/GnmiSessionHandler.py
index 00409dfbdf0f1932da4cedef9c02dccbb5be5ad0..03a55f472d2d4d4cd6726795fe6000c4fb68f95b 100644
--- a/src/device/service/drivers/gnmi_openconfig/GnmiSessionHandler.py
+++ b/src/device/service/drivers/gnmi_openconfig/GnmiSessionHandler.py
@@ -40,7 +40,6 @@ class GnmiSessionHandler:
         self._use_tls   = settings.get('use_tls', False)
         self._channel : Optional[grpc.Channel] = None
         self._stub : Optional[gNMIStub] = None
-        self._yang_handler = None
         self._monit_thread = None
         self._yang_handler = YangHandler()
         self._subscriptions = Subscriptions()
diff --git a/src/device/service/drivers/gnmi_openconfig/examples/libyang_examples.py b/src/device/service/drivers/gnmi_openconfig/examples/libyang_examples.py
new file mode 100644
index 0000000000000000000000000000000000000000..f16be652b753ca24fb7c16b361d43781328d97d4
--- /dev/null
+++ b/src/device/service/drivers/gnmi_openconfig/examples/libyang_examples.py
@@ -0,0 +1,162 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import json, libyang, logging, os
+from typing import Dict
+
+logging.basicConfig(level=logging.DEBUG)
+LOGGER = logging.getLogger(__name__)
+
+YANG_BASE_PATH = '/home/tfs/tfs-ctrl/src/device/service/drivers/gnmi_openconfig/git/openconfig/public'
+YANG_SEARCH_PATHS = ':'.join([
+    os.path.join(YANG_BASE_PATH, 'release'),
+    os.path.join(YANG_BASE_PATH, 'third_party'),
+])
+
+YANG_MODULES = [
+    'iana-if-type',
+    'openconfig-bgp-types',
+    'openconfig-vlan-types',
+
+    'openconfig-interfaces',
+    'openconfig-if-8021x',
+    'openconfig-if-aggregate',
+    'openconfig-if-ethernet-ext',
+    'openconfig-if-ethernet',
+    'openconfig-if-ip-ext',
+    'openconfig-if-ip',
+    'openconfig-if-poe',
+    'openconfig-if-sdn-ext',
+    'openconfig-if-tunnel',
+
+    'openconfig-vlan',
+
+    'openconfig-types',
+    'openconfig-policy-types',
+    'openconfig-mpls-types',
+    'openconfig-network-instance-types',
+    'openconfig-network-instance',
+
+    'openconfig-platform',
+    'openconfig-platform-controller-card',
+    'openconfig-platform-cpu',
+    'openconfig-platform-ext',
+    'openconfig-platform-fabric',
+    'openconfig-platform-fan',
+    'openconfig-platform-integrated-circuit',
+    'openconfig-platform-linecard',
+    'openconfig-platform-pipeline-counters',
+    'openconfig-platform-port',
+    'openconfig-platform-psu',
+    'openconfig-platform-software',
+    'openconfig-platform-transceiver',
+    'openconfig-platform-types',
+]
+
+class YangHandler:
+    def __init__(self) -> None:
+        self._yang_context = libyang.Context(YANG_SEARCH_PATHS)
+        self._loaded_modules = set()
+        for yang_module_name in YANG_MODULES:
+            LOGGER.info('Loading module: {:s}'.format(str(yang_module_name)))
+            self._yang_context.load_module(yang_module_name).feature_enable_all()
+            self._loaded_modules.add(yang_module_name)
+        self._data_path_instances = dict()
+
+    def get_data_paths(self) -> Dict[str, libyang.DNode]:
+        return self._data_path_instances
+
+    def get_data_path(self, path : str) -> libyang.DNode:
+        data_path_instance = self._data_path_instances.get(path)
+        if data_path_instance is None:
+            data_path_instance = self._yang_context.create_data_path(path)
+            self._data_path_instances[path] = data_path_instance
+        return data_path_instance
+
+    def destroy(self) -> None:
+        self._yang_context.destroy()
+
+def main():
+    yang_handler = YangHandler()
+
+    LOGGER.info('YangHandler Data (before):')
+    for path, dnode in yang_handler.get_data_paths().items():
+        LOGGER.info('|-> {:s}: {:s}'.format(str(path), json.dumps(dnode.print_dict())))
+
+    if_name        = 'eth1'
+    sif_index      = 0
+    enabled        = True
+    address_ip     = '172.16.0.1'
+    address_ip2    = '192.168.0.1'
+    address_prefix = 24
+    mtu            = 1500
+
+    yang_ifs : libyang.DContainer = yang_handler.get_data_path('/openconfig-interfaces:interfaces')
+    yang_if_path = 'interface[name="{:s}"]'.format(if_name)
+    yang_if : libyang.DContainer = yang_ifs.create_path(yang_if_path)
+    yang_if.create_path('config/name',    if_name)
+    yang_if.create_path('config/enabled', enabled)
+    yang_if.create_path('config/mtu',     mtu    )
+
+    yang_sifs : libyang.DContainer = yang_if.create_path('subinterfaces')
+    yang_sif_path = 'subinterface[index="{:d}"]'.format(sif_index)
+    yang_sif : libyang.DContainer = yang_sifs.create_path(yang_sif_path)
+    yang_sif.create_path('config/index',   sif_index)
+    yang_sif.create_path('config/enabled', enabled  )
+
+    yang_ipv4 : libyang.DContainer = yang_sif.create_path('openconfig-if-ip:ipv4')
+    yang_ipv4.create_path('config/enabled', enabled)
+
+    yang_ipv4_addrs : libyang.DContainer = yang_ipv4.create_path('addresses')
+    yang_ipv4_addr_path = 'address[ip="{:s}"]'.format(address_ip)
+    yang_ipv4_addr : libyang.DContainer = yang_ipv4_addrs.create_path(yang_ipv4_addr_path)
+    yang_ipv4_addr.create_path('config/ip',            address_ip    )
+    yang_ipv4_addr.create_path('config/prefix-length', address_prefix)
+
+    yang_ipv4_addr_path2 = 'address[ip="{:s}"]'.format(address_ip2)
+    yang_ipv4_addr2 : libyang.DContainer = yang_ipv4_addrs.create_path(yang_ipv4_addr_path2)
+    yang_ipv4_addr2.create_path('config/ip',            address_ip2   )
+    yang_ipv4_addr2.create_path('config/prefix-length', address_prefix)
+
+    str_data = yang_if.print_mem('json')
+    json_data = json.loads(str_data)
+    json_data = json_data['openconfig-interfaces:interface'][0]
+    str_data = json.dumps(json_data, indent=4)
+    LOGGER.info('Resulting Request (before unlink): {:s}'.format(str_data))
+
+    yang_ipv4_addr2.unlink()
+
+    root_node : libyang.DContainer = yang_handler.get_data_path('/openconfig-interfaces:interfaces')
+    LOGGER.info('root_node={:s}'.format(str(root_node.print_mem('json'))))
+
+    for s in root_node.siblings():
+        LOGGER.info('sibling: {:s}'.format(str(s)))
+
+    PATH_TMPL = '/openconfig-interfaces:interfaces/interface[name="{:s}"]/subinterfaces/subinterface[index="{:d}"]'
+    yang_sif = root_node.find_path(PATH_TMPL.format(if_name, sif_index))
+    if yang_sif is not None:
+        LOGGER.info('yang_sif={:s}'.format(str(yang_sif.print_mem('json'))))
+        yang_sif.unlink()
+        yang_sif.free()
+
+    str_data = yang_if.print_mem('json')
+    json_data = json.loads(str_data)
+    json_data = json_data['openconfig-interfaces:interface'][0]
+    str_data = json.dumps(json_data, indent=4)
+    LOGGER.info('Resulting Request (after unlink): {:s}'.format(str_data))
+
+    yang_handler.destroy()
+
+if __name__ == '__main__':
+    main()
diff --git a/src/device/service/drivers/gnmi_openconfig/handlers/Interface.py b/src/device/service/drivers/gnmi_openconfig/handlers/Interface.py
index a52c84691c00b0c09336e2400dbeb94a9ca310ed..ed833b647d9c856cd7e54c5258b14924d187eb9f 100644
--- a/src/device/service/drivers/gnmi_openconfig/handlers/Interface.py
+++ b/src/device/service/drivers/gnmi_openconfig/handlers/Interface.py
@@ -34,6 +34,21 @@ class InterfaceHandler(_Handler):
             PATH_TMPL = '/interfaces/interface[name={:s}]/subinterfaces/subinterface[index={:d}]'
             str_path = PATH_TMPL.format(if_name, sif_index)
             str_data = json.dumps({})
+
+            root_node : libyang.DContainer = yang_handler.get_data_path(
+                '/openconfig-interfaces:interfaces'
+            )
+            yang_sif = root_node.find_path('/'.join([
+                '', # add slash at the beginning
+                'openconfig-interfaces:interfaces',
+                'interface[name="{:s}"]'.format(if_name),
+                'subinterfaces',
+                'subinterface[index="{:d}"]'.format(sif_index),
+            ]))
+            if yang_sif is not None:
+                yang_sif.unlink()
+                yang_sif.free()
+
             return str_path, str_data
 
         enabled        = get_bool(resource_value, 'enabled',  True) # True/False
diff --git a/src/device/service/drivers/gnmi_openconfig/handlers/NetworkInstanceInterface.py b/src/device/service/drivers/gnmi_openconfig/handlers/NetworkInstanceInterface.py
index 2a4c19baa7ccdcc177e2724609a87636d1398a8a..f6f61a32403f154578da0247d0e1db24a727b017 100644
--- a/src/device/service/drivers/gnmi_openconfig/handlers/NetworkInstanceInterface.py
+++ b/src/device/service/drivers/gnmi_openconfig/handlers/NetworkInstanceInterface.py
@@ -36,15 +36,13 @@ class NetworkInstanceInterfaceHandler(_Handler):
 
         if IS_CEOS: ni_if_id = if_name
 
+        PATH_TMPL = '/network-instances/network-instance[name={:s}]/interfaces/interface[id={:s}]'
+        str_path = PATH_TMPL.format(ni_name, ni_if_id)
+
         if delete:
-            PATH_TMPL = '/network-instances/network-instance[name={:s}]/interfaces/interface[id={:s}]'
-            str_path = PATH_TMPL.format(ni_name, ni_if_id)
             str_data = json.dumps({})
             return str_path, str_data
 
-        str_path = '/network-instances/network-instance[name={:s}]/interfaces/interface[id={:s}]'.format(
-            ni_name, ni_if_id
-        )
         #str_data = json.dumps({
         #    'id': if_id,
         #    'config': {'id': if_id, 'interface': if_name, 'subinterface': sif_index},
diff --git a/src/device/service/drivers/p4/p4_common.py b/src/device/service/drivers/p4/p4_common.py
index ec851493777243829737136722198173580fbadd..b55296a65922de93370a66301254cacf9ca7220a 100644
--- a/src/device/service/drivers/p4/p4_common.py
+++ b/src/device/service/drivers/p4/p4_common.py
@@ -27,10 +27,12 @@ import math
 import re
 import socket
 import ipaddress
+from typing import Any, Dict, List, Optional, Tuple
 from ctypes import c_uint16, sizeof
 import macaddress
 
-from common.type_checkers.Checkers import chk_type
+from common.type_checkers.Checkers import \
+    chk_attribute, chk_string, chk_type, chk_issubclass
 try:
     from .p4_exception import UserBadValueError
 except ImportError:
@@ -38,6 +40,7 @@ except ImportError:
 
 P4_ATTR_DEV_ID = "id"
 P4_ATTR_DEV_NAME = "name"
+P4_ATTR_DEV_ENDPOINTS = "endpoints"
 P4_ATTR_DEV_VENDOR = "vendor"
 P4_ATTR_DEV_HW_VER = "hw_ver"
 P4_ATTR_DEV_SW_VER = "sw_ver"
@@ -50,6 +53,7 @@ P4_VAL_DEF_HW_VER = "BMv2 simple_switch"
 P4_VAL_DEF_SW_VER = "Stratum"
 P4_VAL_DEF_TIMEOUT = 60
 
+RESOURCE_ENDPOINTS_ROOT_PATH = "/endpoints"
 
 # Logger instance
 LOGGER = logging.getLogger(__name__)
@@ -422,6 +426,28 @@ def parse_action_parameters_from_json(resource):
     return action_params
 
 
+def parse_replicas_from_json(resource):
+    """
+    Parse the session replicas within a JSON-based object.
+
+    :param resource: JSON-based object
+    :return: map of replicas
+    """
+    if not resource or ("replicas" not in resource):
+        LOGGER.warning(
+            "JSON entry misses 'replicas' list of attributes")
+        return None
+    chk_type("replicas", resource["replicas"], list)
+
+    replicas = {}
+    for rep in resource["replicas"]:
+        chk_type("egress-port", rep["egress-port"], int)
+        chk_type("instance", rep["instance"], int)
+        replicas[rep["egress-port"]] = rep["instance"]
+
+    return replicas
+
+
 def parse_integer_list_from_json(resource, resource_list, resource_item):
     """
     Parse the list of integers within a JSON-based object.
@@ -443,3 +469,77 @@ def parse_integer_list_from_json(resource, resource_list, resource_item):
         integers_list.append(item[resource_item])
 
     return integers_list
+
+def process_optional_string_field(
+    #TODO: Consider adding this in common methdos as it is taken by the Emulated driver
+    endpoint_data : Dict[str, Any], field_name : str, endpoint_resource_value : Dict[str, Any]
+) -> None:
+    field_value = chk_attribute(field_name, endpoint_data, 'endpoint_data', default=None)
+    if field_value is None: return
+    chk_string('endpoint_data.{:s}'.format(field_name), field_value)
+    if len(field_value) > 0: endpoint_resource_value[field_name] = field_value
+
+def compose_resource_endpoints(endpoints_list : List[Tuple[str, Any]]):
+    #TODO: Consider adding this in common methods; currently taken by the Emulated driver
+    endpoint_resources = []
+    for i, endpoint in enumerate(endpoints_list):
+        LOGGER.debug("P4 endpoint {}: {}".format(i, endpoint))
+        endpoint_resource = compose_resource_endpoint(endpoint)
+        if endpoint_resource is None: continue
+        endpoint_resources.append(endpoint_resource)
+    return endpoint_resources
+
+def compose_resource_endpoint(endpoint_data : Dict[str, Any]) -> Optional[Tuple[str, Dict]]:
+    #TODO: Consider adding this in common methods; currently taken by the Emulated driver
+    try:
+        endpoint_uuid = chk_attribute('uuid', endpoint_data, 'endpoint_data')
+        chk_string('endpoint_data.uuid', endpoint_uuid, min_length=1)
+        endpoint_resource_path = RESOURCE_ENDPOINTS_ROOT_PATH
+        endpoint_resource_key = '{:s}/endpoint[{:s}]'.format(endpoint_resource_path, endpoint_uuid)
+        endpoint_resource_value = {'uuid': endpoint_uuid}
+
+        # Check endpoint's optional string fields
+        process_optional_string_field(endpoint_data, 'name', endpoint_resource_value)
+        process_optional_string_field(endpoint_data, 'type', endpoint_resource_value)
+        process_optional_string_field(endpoint_data, 'context_uuid', endpoint_resource_value)
+        process_optional_string_field(endpoint_data, 'topology_uuid', endpoint_resource_value)
+
+        return endpoint_resource_key, endpoint_resource_value
+    except: # pylint: disable=bare-except
+        LOGGER.error('Problem composing endpoint({:s})'.format(str(endpoint_data)))
+        return None
+
+def compose_resource_rules(rules_list : List[Tuple[str, Any]]):
+    rule_resources = []
+    for i, rule in enumerate(rules_list):
+        rule_resource = compose_resource_rule(rule_data=rule, rule_cnt=i)
+        if rule_resource is None: continue
+        rule_resources.append(rule_resource)
+    return rule_resources
+
+def compose_resource_rule(rule_data : Dict[str, Any], rule_cnt : int) -> Optional[Tuple[str, Dict]]:
+    try:
+        LOGGER.info("Rule: {}".format(rule_data))
+
+        rule_resource_key = chk_attribute('resource_key', rule_data, 'rule_data')
+        chk_string('rule_data.resource_key', rule_resource_key, min_length=1)
+
+        rule_resource_value = chk_attribute('resource_value', rule_data, 'rule_data')
+        chk_issubclass('rule_data.resource_value', rule_resource_value, dict)
+
+        rule_key_unique = ""
+
+        if "table" == rule_resource_key:
+            table_name = parse_resource_string_from_json(rule_resource_value, "table-name")
+            assert table_name, "Invalid table name in rule"
+            rule_key_unique = '/{0}s/{0}/{1}[{2}]'.format(rule_resource_key, table_name, rule_cnt)
+        else:
+            msg = f"Parsed an invalid key {rule_resource_key}"
+            LOGGER.error(msg)
+            raise Exception(msg)
+
+        assert rule_key_unique, "Invalid unique resource key"
+        return rule_key_unique, rule_resource_value
+    except: # pylint: disable=bare-except
+        LOGGER.error('Problem composing rule({:s})'.format(str(rule_data)))
+        return None
diff --git a/src/device/service/drivers/p4/p4_context.py b/src/device/service/drivers/p4/p4_context.py
index ca8f0c19ef6cecdc361664323bbe2cd8beed64e3..ce8e308e8b2f55aa37c7cf06b6a56fdf7dc3bd7f 100644
--- a/src/device/service/drivers/p4/p4_context.py
+++ b/src/device/service/drivers/p4/p4_context.py
@@ -34,6 +34,7 @@ class P4Type(enum.Enum):
     meter = 6
     direct_meter = 7
     controller_packet_metadata = 8
+    digest = 9
 
 
 P4Type.table.p4info_name = "tables"
@@ -44,6 +45,7 @@ P4Type.direct_counter.p4info_name = "direct_counters"
 P4Type.meter.p4info_name = "meters"
 P4Type.direct_meter.p4info_name = "direct_meters"
 P4Type.controller_packet_metadata.p4info_name = "controller_packet_metadata"
+P4Type.digest.p4info_name = "digests"
 
 for object_type in P4Type:
     object_type.pretty_name = object_type.name.replace('_', ' ')
@@ -58,11 +60,12 @@ class P4RuntimeEntity(enum.Enum):
     table_entry = 1
     action_profile_member = 2
     action_profile_group = 3
-    meter_entry = 4
-    direct_meter_entry = 5
-    counter_entry = 6
-    direct_counter_entry = 7
+    counter_entry = 4
+    direct_counter_entry = 5
+    meter_entry = 6
+    direct_meter_entry = 7
     packet_replication_engine_entry = 8
+    digest_entry = 9
 
 
 class Context:
diff --git a/src/device/service/drivers/p4/p4_driver.py b/src/device/service/drivers/p4/p4_driver.py
index d31fa46738fad9f9404c8ba21dfbc49b08fde074..c89a42baddaf45737ebfcf26a665f0a6beb8544f 100644
--- a/src/device/service/drivers/p4/p4_driver.py
+++ b/src/device/service/drivers/p4/p4_driver.py
@@ -23,15 +23,19 @@ import threading
 from typing import Any, Iterator, List, Optional, Tuple, Union
 from common.method_wrappers.Decorator import MetricsPool, metered_subclass_method
 from common.type_checkers.Checkers import chk_type, chk_length, chk_string
+from device.service.driver_api._Driver import RESOURCE_ENDPOINTS, RESOURCE_RULES
 from .p4_common import matches_ipv4, matches_ipv6, valid_port,\
-    P4_ATTR_DEV_ID, P4_ATTR_DEV_NAME, P4_ATTR_DEV_VENDOR,\
-    P4_ATTR_DEV_HW_VER, P4_ATTR_DEV_SW_VER,\
+    compose_resource_endpoints, parse_resource_string_from_json,\
+    P4_ATTR_DEV_ID, P4_ATTR_DEV_NAME, P4_ATTR_DEV_ENDPOINTS,\
+    P4_ATTR_DEV_VENDOR, P4_ATTR_DEV_HW_VER, P4_ATTR_DEV_SW_VER,\
     P4_ATTR_DEV_P4BIN, P4_ATTR_DEV_P4INFO, P4_ATTR_DEV_TIMEOUT,\
     P4_VAL_DEF_VENDOR, P4_VAL_DEF_HW_VER, P4_VAL_DEF_SW_VER,\
     P4_VAL_DEF_TIMEOUT
-from .p4_manager import P4Manager, KEY_TABLE, KEY_ACTION, \
-    KEY_ACTION_PROFILE, KEY_COUNTER, KEY_DIR_COUNTER, KEY_METER, KEY_DIR_METER,\
-    KEY_CTL_PKT_METADATA
+from .p4_manager import P4Manager, \
+    KEY_TABLE, KEY_ACTION, KEY_ACTION_PROFILE, \
+    KEY_COUNTER, KEY_DIR_COUNTER, KEY_METER, KEY_DIR_METER,\
+    KEY_CTL_PKT_METADATA, KEY_DIGEST, KEY_CLONE_SESSION,\
+    KEY_ENDPOINT
 from .p4_client import WriteOperation
 
 try:
@@ -59,6 +63,8 @@ class P4Driver(_Driver):
             P4 device datapath ID (Mandatory)
         name : str
             P4 device name (Optional)
+        endpoints : list
+            List of P4 device endpoints, i.e., ports (Optional)
         vendor : str
             P4 device vendor (Optional)
         hw_ver : str
@@ -70,17 +76,22 @@ class P4Driver(_Driver):
         p4info : str
             Path to P4 info file (Optional, but must be combined with p4bin)
         timeout : int
-            Device timeout in seconds (Optional)
+            P4 device timeout in seconds (Optional)
+        rules : list
+            List of rules to configure the P4 device's pipeline
     """
 
     def __init__(self, address: str, port: int, **settings) -> None:
-        super().__init__(settings.pop('name', DRIVER_NAME), address, port, **settings)
+        super().__init__(name=DRIVER_NAME, address=address, port=port, setting=settings)
         self.__manager = None
         self.__address = address
         self.__port = int(port)
-        self.__endpoint = None
+        self.__grpc_endpoint = None
         self.__settings = settings
         self.__id = None
+        self.__name = None
+        self.__endpoints = []
+        self.__rules = {}
         self.__vendor = P4_VAL_DEF_VENDOR
         self.__hw_version = P4_VAL_DEF_HW_VER
         self.__sw_version = P4_VAL_DEF_SW_VER
@@ -97,7 +108,7 @@ class P4Driver(_Driver):
                     self.__address, self.__port)
 
         for key, value in settings.items():
-            LOGGER.info("\t%8s = %s", key, value)
+            LOGGER.info("\t%9s = %s", key, value)
 
     def Connect(self) -> bool:
         """
@@ -105,14 +116,14 @@ class P4Driver(_Driver):
 
         :return: boolean connection status.
         """
-        LOGGER.info("Connecting to P4 device %s ...", self.__endpoint)
+        LOGGER.info("Connecting to P4 device %s ...", self.__grpc_endpoint)
 
         with self.__lock:
             # Skip if already connected
             if self.__started.is_set():
                 return True
 
-            # Dynamically devise an election ID
+            # TODO: Dynamically devise an election ID
             election_id = (1, 0)
 
             # Spawn a P4 manager for this device
@@ -140,7 +151,7 @@ class P4Driver(_Driver):
 
         :return: boolean disconnection status.
         """
-        LOGGER.info("Disconnecting from P4 device %s ...", self.__endpoint)
+        LOGGER.info("Disconnecting from P4 device %s ...", self.__grpc_endpoint)
 
         # If not started, assume it is already disconnected
         if not self.__started.is_set():
@@ -167,13 +178,15 @@ class P4Driver(_Driver):
 
         :return: list of initial configuration items.
         """
-        initial_conf = []
+
+        resource_keys = [RESOURCE_ENDPOINTS] if self.__endpoints else []
 
         with self.__lock:
-            if not initial_conf:
-                LOGGER.warning("No initial configuration for P4 device %s ...",
-                               self.__endpoint)
-            return []
+            if not resource_keys:
+                LOGGER.warning("No initial configuration for P4 device {} ...".format(self.__grpc_endpoint))
+                return []
+            LOGGER.info("Initial configuration for P4 device {}:".format(self.__grpc_endpoint))
+            return self.GetConfig(resource_keys)
 
     @metered_subclass_method(METRICS_POOL)
     def GetConfig(self, resource_keys: List[str] = [])\
@@ -186,7 +199,7 @@ class P4Driver(_Driver):
         None/Exception.
         """
         LOGGER.info(
-            "Getting configuration from P4 device %s ...", self.__endpoint)
+            "Getting configuration from P4 device %s ...", self.__grpc_endpoint)
 
         # No resource keys means fetch all configuration
         if len(resource_keys) == 0:
@@ -195,7 +208,7 @@ class P4Driver(_Driver):
                 "implies getting all resource keys!")
             resource_keys = [
                 obj_name for obj_name, _ in self.__manager.p4_objects.items()
-            ]
+            ] + [RESOURCE_ENDPOINTS] + [RESOURCE_RULES]
 
         # Verify the input type
         chk_type("resources", resource_keys, list)
@@ -214,7 +227,7 @@ class P4Driver(_Driver):
         changes requested.
         """
         LOGGER.info(
-            "Setting configuration to P4 device %s ...", self.__endpoint)
+            "Setting configuration to P4 device %s ...", self.__grpc_endpoint)
 
         if not resources or len(resources) == 0:
             LOGGER.warning(
@@ -238,7 +251,7 @@ class P4Driver(_Driver):
         deletions requested.
         """
         LOGGER.info(
-            "Deleting configuration from P4 device %s ...", self.__endpoint)
+            "Deleting configuration from P4 device %s ...", self.__grpc_endpoint)
 
         if not resources or len(resources) == 0:
             LOGGER.warning(
@@ -308,6 +321,14 @@ class P4Driver(_Driver):
         """
         return self.__manager
 
+    def is_started(self):
+        """
+        Check if an instance of the P4 manager is started.
+
+        :return: boolean P4 manager instance status
+        """
+        return self.__started.is_set()
+
     def __parse_and_validate_settings(self):
         """
         Verify that the driver inputs comply to what is expected.
@@ -319,7 +340,7 @@ class P4Driver(_Driver):
             f"{self.__address} not a valid IPv4 or IPv6 address"
         assert valid_port(self.__port), \
             f"{self.__port} not a valid transport port"
-        self.__endpoint = f"{self.__address}:{self.__port}"
+        self.__grpc_endpoint = f"{self.__address}:{self.__port}"
 
         # Device ID
         try:
@@ -337,6 +358,16 @@ class P4Driver(_Driver):
                 "No device name is provided. Setting default name: %s",
                 self.__name)
 
+        # Device endpoints
+        if P4_ATTR_DEV_ENDPOINTS in self.__settings:
+            endpoints = self.__settings.get(P4_ATTR_DEV_ENDPOINTS, [])
+            endpoint_resources = compose_resource_endpoints(endpoints)
+            if endpoint_resources:
+                LOGGER.info("Setting endpoints: {}".format(endpoint_resources))
+                self.SetConfig(endpoint_resources)
+        else:
+            LOGGER.warning("No device endpoints are provided.")
+
         # Device vendor
         if P4_ATTR_DEV_VENDOR in self.__settings:
             self.__vendor = self.__settings.get(P4_ATTR_DEV_VENDOR)
@@ -365,7 +396,7 @@ class P4Driver(_Driver):
         if P4_ATTR_DEV_P4BIN in self.__settings:
             self.__p4bin_path = self.__settings.get(P4_ATTR_DEV_P4BIN)
             assert os.path.exists(self.__p4bin_path),\
-                "Invalid path to p4bin file"
+                "Invalid path to p4bin file: {}".format(self.__p4bin_path)
             assert P4_ATTR_DEV_P4INFO in self.__settings,\
                 "p4info and p4bin settings must be provided together"
 
@@ -373,7 +404,7 @@ class P4Driver(_Driver):
         if P4_ATTR_DEV_P4INFO in self.__settings:
             self.__p4info_path = self.__settings.get(P4_ATTR_DEV_P4INFO)
             assert os.path.exists(self.__p4info_path),\
-                "Invalid path to p4info file"
+                "Invalid path to p4info file: {}".format(self.__p4info_path)
             assert P4_ATTR_DEV_P4BIN in self.__settings,\
                 "p4info and p4bin settings must be provided together"
 
@@ -404,7 +435,7 @@ class P4Driver(_Driver):
         """
         resources = []
 
-        LOGGER.debug("GetConfig() -> Keys: %s", resource_keys)
+        LOGGER.info("GetConfig() -> Keys: {}".format(resource_keys))
 
         for resource_key in resource_keys:
             entries = []
@@ -423,8 +454,7 @@ class P4Driver(_Driver):
                             entries.append(c_entries)
                 elif KEY_DIR_COUNTER == resource_key:
                     for d_cnt_name in self.__manager.get_direct_counter_names():
-                        dc_entries = \
-                            self.__manager.direct_counter_entries_to_json(
+                        dc_entries = self.__manager.direct_counter_entries_to_json(
                                 d_cnt_name)
                         if dc_entries:
                             entries.append(dc_entries)
@@ -436,28 +466,35 @@ class P4Driver(_Driver):
                             entries.append(m_entries)
                 elif KEY_DIR_METER == resource_key:
                     for d_meter_name in self.__manager.get_direct_meter_names():
-                        dm_entries = \
-                            self.__manager.direct_meter_entries_to_json(
+                        dm_entries = self.__manager.direct_meter_entries_to_json(
                                 d_meter_name)
                         if dm_entries:
                             entries.append(dm_entries)
                 elif KEY_ACTION_PROFILE == resource_key:
                     for ap_name in self.__manager.get_action_profile_names():
-                        ap_entries = \
-                            self.__manager.action_prof_member_entries_to_json(
+                        ap_entries = self.__manager.action_prof_member_entries_to_json(
                                 ap_name)
                         if ap_entries:
                             entries.append(ap_entries)
                 elif KEY_ACTION == resource_key:
-                    #To be implemented or deprecated
-                    pass
-                elif '__endpoints__' == resource_key:
-                    #Not Supported for P4 devices
+                    # To be implemented or deprecated
                     pass
                 elif KEY_CTL_PKT_METADATA == resource_key:
+                    #TODO: Handle controller packet metadata
                     msg = f"{resource_key.capitalize()} is not a " \
                           f"retrievable resource"
-                    raise Exception(msg)
+                    LOGGER.warning("%s", msg)
+                elif KEY_DIGEST == resource_key:
+                    #TODO: Handle digests
+                    msg = f"{resource_key.capitalize()} is not a " \
+                          f"retrievable resource"
+                    LOGGER.warning("%s", msg)
+                elif RESOURCE_ENDPOINTS == resource_key:
+                    resources += self.__endpoints
+                    continue
+                elif RESOURCE_RULES == resource_key:
+                     resources = self.__rules_into_resources()
+                     continue
                 else:
                     msg = f"GetConfig failed due to invalid " \
                           f"resource key: {resource_key}"
@@ -465,8 +502,10 @@ class P4Driver(_Driver):
                 resources.append(
                     (resource_key, entries if entries else None)
                 )
-            except Exception as ex:  # pylint: disable=broad-except
-                resources.append((resource_key, ex))
+            except Exception as e:  # pylint: disable=broad-except
+                resources.append((resource_key, e))
+
+        LOGGER.info("GetConfig() -> Results: %s", resources)
 
         return resources
 
@@ -480,6 +519,8 @@ class P4Driver(_Driver):
         """
         results = []
 
+        LOGGER.info("SetConfig -> Resources {}".format(resources))
+
         for i, resource in enumerate(resources):
             str_resource_name = f"resources[#{i}]"
             resource_key = ""
@@ -499,11 +540,15 @@ class P4Driver(_Driver):
                 continue
 
             try:
-                resource_value = json.loads(resource_value)
-            except Exception:  # pylint: disable=broad-except
-                pass
+                # Rules are JSON-based, endpoints are not
+                if "endpoint" not in resource_key:
+                    resource_value = json.loads(resource_value)
+            except Exception as e:  # pylint: disable=broad-except
+                LOGGER.exception("Exception validating resource value {}".format(resource_value))
+                results.append(e)
+                continue
 
-            LOGGER.debug(
+            LOGGER.info(
                 "SetConfig() -> Key: %s - Value: %s",
                 resource_key, resource_value)
 
@@ -512,13 +557,22 @@ class P4Driver(_Driver):
             # to be inserted already exists, thus simply needs an update.
             operation = WriteOperation.insert
 
+            # Dataplane and cache rule insertion process
             try:
-                self.__apply_operation(resource_key, resource_value, operation)
-                results.append(True)
-            except Exception as ex:  # pylint: disable=broad-except
-                results.append(ex)
+                r2, r3 = False, True
+                r1 = self.__cache_rule_insert(resource_key, resource_value, operation)
+                # Cache insertion succeeded, proceed to dataplane
+                if r1:
+                    r2 = self.__apply_operation(resource_key, resource_value, operation)
+                # Dataplane insertion did not succeed --> Revert caching
+                if not r2 and r1:
+                    r3 = self.__cache_rule_remove(resource_key)
+                results.append(r1 & r2 & r3)
+            except Exception as e:  # pylint: disable=broad-except
+                results.append(e)
+                continue
 
-        print(results)
+        LOGGER.info("SetConfig() -> Results: {}".format(results))
 
         return results
 
@@ -552,21 +606,31 @@ class P4Driver(_Driver):
 
             try:
                 resource_value = json.loads(resource_value)
-            except Exception:  # pylint: disable=broad-except
-                pass
+            except Exception as e:  # pylint: disable=broad-except
+                results.append(e)
+                continue
 
-            LOGGER.debug("DeleteConfig() -> Key: %s - Value: %s",
+            LOGGER.info("DeleteConfig() -> Key: %s - Value: %s",
                          resource_key, resource_value)
 
             operation = WriteOperation.delete
 
+            # Dataplane and cache rule removal process
             try:
-                self.__apply_operation(resource_key, resource_value, operation)
-                results.append(True)
-            except Exception as ex:  # pylint: disable=broad-except
-                results.append(ex)
+                r2, r3 = False, True
+                r1 = self.__cache_rule_remove(resource_key)
+                # Cache removal succeeded, proceed to dataplane
+                if r1:
+                    r2 = self.__apply_operation(resource_key, resource_value, operation)
+                # Dataplane removal did not succeed --> Revert caching
+                if not r2 and r1:
+                    r3 = self.__cache_rule_insert(resource_key, resource_value, WriteOperation.insert)
+                results.append(r1 & r2 & r3)
+            except Exception as e:  # pylint: disable=broad-except
+                results.append(e)
+                continue
 
-        print(results)
+        LOGGER.info("DeleteConfig() -> Results: {}".format(results))
 
         return results
 
@@ -583,35 +647,85 @@ class P4Driver(_Driver):
         """
 
         # Apply settings to the various tables
-        if KEY_TABLE == resource_key:
+        if KEY_TABLE in resource_key:
             self.__manager.table_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_COUNTER == resource_key:
+        elif KEY_COUNTER in resource_key:
             self.__manager.counter_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_DIR_COUNTER == resource_key:
+        elif KEY_DIR_COUNTER in resource_key:
             self.__manager.direct_counter_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_METER == resource_key:
+        elif KEY_METER in resource_key:
             self.__manager.meter_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_DIR_METER == resource_key:
+        elif KEY_DIR_METER in resource_key:
             self.__manager.direct_meter_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_ACTION_PROFILE == resource_key:
+        elif KEY_ACTION_PROFILE in resource_key:
             self.__manager.action_prof_member_entry_operation_from_json(
                 resource_value, operation)
             self.__manager.action_prof_group_entry_operation_from_json(
                 resource_value, operation)
-        elif KEY_CTL_PKT_METADATA == resource_key:
+        elif KEY_CLONE_SESSION in resource_key:
+            self.__manager.clone_session_entry_operation_from_json(
+                resource_value, operation)
+        elif KEY_CTL_PKT_METADATA in resource_key:
             msg = f"{resource_key.capitalize()} is not a " \
                   f"configurable resource"
             raise Exception(msg)
+        elif KEY_DIGEST in resource_key:
+            msg = f"{resource_key.capitalize()} is not a " \
+                  f"configurable resource"
+            raise Exception(msg)
+        elif KEY_ENDPOINT in resource_key:
+            self.__endpoints.append((resource_key, resource_value))
         else:
             msg = f"{operation} on invalid key {resource_key}"
             LOGGER.error(msg)
             raise Exception(msg)
 
-        LOGGER.debug("%s operation: %s", resource_key.capitalize(), operation)
+        return True
+
+    def __cache_rule_insert(self, resource_key, resource_value, operation):
+        """
+        Insert a new rule into the rule cache or update an existing one.
+
+        :param resource_key: P4 resource key
+        :param resource_value: P4 resource value in JSON format
+        :param operation: write operation (i.e., insert, update) to apply
+        :return: True if new rule is inserted or existing is updated, otherwise False
+        """
+        if (resource_key in self.__rules.keys()) and (operation == WriteOperation.insert):
+            LOGGER.error("Attempting to insert an existing rule key: {}".format(resource_key))
+            return False
+        elif (resource_key not in self.__rules.keys()) and (operation == WriteOperation.update):
+            LOGGER.error("Attempting to update a non-existing rule key: {}".format(resource_key))
+            return False
+        elif (resource_key in self.__rules.keys()) and (operation == WriteOperation.update):
+            LOGGER.warning("Updating an existing rule key: {}".format(resource_key))
+        self.__rules[resource_key] = resource_value
+        return True
+
+    def __cache_rule_remove(self, resource_key):
+        """
+        Remove an existing rule from the rule cache.
 
+        :param resource_key: P4 resource key
+        :return: True if existing rule is removed, otherwise False
+        """
+        if resource_key not in self.__rules.keys():
+            LOGGER.error("Attempting to remove a non-existing rule key: {}".format(resource_key))
+            return False
+        self.__rules.pop(resource_key)
         return True
+
+    def __rules_into_resources(self):
+        """
+        Transform rules from the driver's rule map into
+        resources exposed through the SBI API.
+        """
+        resource_list = []
+        for rule_key, rule_val in self.__rules.items():
+            resource_list.append((rule_key, rule_val))
+        return resource_list
diff --git a/src/device/service/drivers/p4/p4_manager.py b/src/device/service/drivers/p4/p4_manager.py
index f6684412a4d650ecb909632b9ddcbc3d17a55a5c..210422ed8de2559b56fa22da4e36f154b7d03b99 100644
--- a/src/device/service/drivers/p4/p4_manager.py
+++ b/src/device/service/drivers/p4/p4_manager.py
@@ -35,7 +35,8 @@ try:
     from .p4_common import encode,\
         parse_resource_string_from_json, parse_resource_integer_from_json,\
         parse_resource_bytes_from_json, parse_match_operations_from_json,\
-        parse_action_parameters_from_json, parse_integer_list_from_json
+        parse_action_parameters_from_json, parse_integer_list_from_json,\
+        parse_replicas_from_json
     from .p4_exception import UserError, InvalidP4InfoError
 except ImportError:
     from p4_client import P4RuntimeClient, P4RuntimeException,\
@@ -58,6 +59,7 @@ CONTEXT = Context()
 CLIENTS = {}
 
 # Constant P4 entities
+KEYS_P4 = []
 KEY_TABLE = "table"
 KEY_ACTION = "action"
 KEY_ACTION_PROFILE = "action_profile"
@@ -66,6 +68,11 @@ KEY_DIR_COUNTER = "direct_counter"
 KEY_METER = "meter"
 KEY_DIR_METER = "direct_meter"
 KEY_CTL_PKT_METADATA = "controller_packet_metadata"
+KEY_DIGEST = "digest"
+
+# Extra resource keys
+KEY_CLONE_SESSION = "clone_session"
+KEY_ENDPOINT = "endpoint"
 
 
 def get_context():
@@ -83,19 +90,20 @@ def get_table_type(table):
     :param table: P4 table
     :return: P4 table type
     """
-    for m_f in table.match_fields:
-        if m_f.match_type == p4info_pb2.MatchField.EXACT:
-            return p4info_pb2.MatchField.EXACT
-        if m_f.match_type == p4info_pb2.MatchField.LPM:
-            return p4info_pb2.MatchField.LPM
-        if m_f.match_type == p4info_pb2.MatchField.TERNARY:
-            return p4info_pb2.MatchField.TERNARY
-        if m_f.match_type == p4info_pb2.MatchField.RANGE:
-            return p4info_pb2.MatchField.RANGE
-        if m_f.match_type == p4info_pb2.MatchField.OPTIONAL:
-            return p4info_pb2.MatchField.OPTIONAL
-    return None
+    is_ternary = False
 
+    for m_f in table.match_fields:
+        # LPM and range are special forms of ternary
+        if m_f.match_type in [
+            p4info_pb2.MatchField.TERNARY,
+            p4info_pb2.MatchField.LPM,
+            p4info_pb2.MatchField.RANGE
+        ]:
+            is_ternary = True
+
+    if is_ternary:
+        return p4info_pb2.MatchField.TERNARY
+    return p4info_pb2.MatchField.EXACT
 
 def match_type_to_str(match_type):
     """
@@ -132,12 +140,12 @@ class P4Manager:
         self.__id = device_id
         self.__ip_address = ip_address
         self.__port = int(port)
-        self.__endpoint = f"{self.__ip_address}:{self.__port}"
+        self.__grpc_endpoint = f"{self.__ip_address}:{self.__port}"
         self.key_id = ip_address+str(port)
         CLIENTS[self.key_id] = P4RuntimeClient(
-            self.__id, self.__endpoint, election_id, role_name, ssl_options)
+            self.__id, self.__grpc_endpoint, election_id, role_name, ssl_options)
         self.__p4info = None
-        
+
         self.local_client = CLIENTS[self.key_id]
 
         # Internal memory for whitebox management
@@ -146,14 +154,14 @@ class P4Manager:
 
         # | -> P4 entities
         self.table_entries = {}
+        self.action_profile_members = {}
+        self.action_profile_groups = {}
         self.counter_entries = {}
         self.direct_counter_entries = {}
         self.meter_entries = {}
         self.direct_meter_entries = {}
-        self.multicast_groups = {}
         self.clone_session_entries = {}
-        self.action_profile_members = {}
-        self.action_profile_groups = {}
+        self.multicast_groups = {}
 
     def start(self, p4bin_path, p4info_path):
         """
@@ -234,7 +242,7 @@ class P4Manager:
         self.__id = None
         self.__ip_address = None
         self.__port = None
-        self.__endpoint = None
+        self.__grpc_endpoint = None
         self.__clear_state()
 
     def __clear_state(self):
@@ -244,14 +252,14 @@ class P4Manager:
         :return: void
         """
         self.table_entries.clear()
+        self.action_profile_members.clear()
+        self.action_profile_groups.clear()
         self.counter_entries.clear()
         self.direct_counter_entries.clear()
         self.meter_entries.clear()
         self.direct_meter_entries.clear()
-        self.multicast_groups.clear()
         self.clone_session_entries.clear()
-        self.action_profile_members.clear()
-        self.action_profile_groups.clear()
+        self.multicast_groups.clear()
         self.p4_objects.clear()
 
     def __init_objects(self):
@@ -264,7 +272,7 @@ class P4Manager:
         global KEY_TABLE, KEY_ACTION, KEY_ACTION_PROFILE, \
             KEY_COUNTER, KEY_DIR_COUNTER, \
             KEY_METER, KEY_DIR_METER, \
-            KEY_CTL_PKT_METADATA
+            KEY_CTL_PKT_METADATA, KEY_DIGEST, KEYS_P4
 
         KEY_TABLE = P4Type.table.name
         KEY_ACTION = P4Type.action.name
@@ -274,12 +282,15 @@ class P4Manager:
         KEY_METER = P4Type.meter.name
         KEY_DIR_METER = P4Type.direct_meter.name
         KEY_CTL_PKT_METADATA = P4Type.controller_packet_metadata.name
-        assert (k for k in [
+        KEY_DIGEST = P4Type.digest.name
+
+        KEYS_P4 = [
             KEY_TABLE, KEY_ACTION, KEY_ACTION_PROFILE,
             KEY_COUNTER, KEY_DIR_COUNTER,
             KEY_METER, KEY_DIR_METER,
-            KEY_CTL_PKT_METADATA
-        ])
+            KEY_CTL_PKT_METADATA, KEY_DIGEST
+        ]
+        assert (k for k in KEYS_P4)
 
         if not self.p4_objects:
             LOGGER.warning(
@@ -292,6 +303,11 @@ class P4Manager:
             for table in self.p4_objects[KEY_TABLE]:
                 self.table_entries[table.name] = []
 
+        if KEY_ACTION_PROFILE in self.p4_objects:
+            for act_prof in self.p4_objects[KEY_ACTION_PROFILE]:
+                self.action_profile_members[act_prof.name] = []
+                self.action_profile_groups[act_prof.name] = []
+
         if KEY_COUNTER in self.p4_objects:
             for cnt in self.p4_objects[KEY_COUNTER]:
                 self.counter_entries[cnt.name] = []
@@ -308,11 +324,6 @@ class P4Manager:
             for d_meter in self.p4_objects[KEY_DIR_METER]:
                 self.direct_meter_entries[d_meter.name] = []
 
-        if KEY_ACTION_PROFILE in self.p4_objects:
-            for act_prof in self.p4_objects[KEY_ACTION_PROFILE]:
-                self.action_profile_members[act_prof.name] = []
-                self.action_profile_groups[act_prof.name] = []
-
     def __discover_objects(self):
         """
         Discover and store all P4 objects.
@@ -509,6 +520,20 @@ class P4Manager:
                 return pkt_meta
         return None
 
+    def get_digest(self, digest_name):
+        """
+        Get a digest object by name.
+
+        :param digest_name: name of a digest object
+        :return: digest object or None
+        """
+        if KEY_DIGEST not in self.p4_objects:
+            return None
+        for dg in self.p4_objects[KEY_DIGEST]:
+            if dg == digest_name.name:
+                return digest_name
+        return None
+
     def get_resource_keys(self):
         """
         Retrieve the available P4 resource keys.
@@ -561,15 +586,15 @@ class P4Manager:
         self.table_entries[table_name] = []
 
         try:
-            for count, table_entry in enumerate(
-                    TableEntry(self.local_client, table_name)(action=action_name).read()):
-                LOGGER.debug(
-                    "Table %s - Entry %d\n%s", table_name, count, table_entry)
+            entries = TableEntry(self.local_client, table_name).read()
+            assert self.local_client
+            for table_entry in entries:
                 self.table_entries[table_name].append(table_entry)
             return self.table_entries[table_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
-            return []
+            LOGGER.error("Failed to get table %s entries: %s",
+                         table_name, str(ex))
+        return []
 
     def table_entries_to_json(self, table_name):
         """
@@ -634,10 +659,14 @@ class P4Manager:
         :return: number of P4 table entries or negative integer
         upon missing table
         """
-        entries = self.get_table_entries(table_name, action_name)
-        if entries is None:
-            return -1
-        return len(entries)
+        count = 0
+        try:
+            entries = TableEntry(self.local_client, table_name).read()
+            count = sum(1 for _ in entries)
+        except Exception as e:  # pylint: disable=broad-except
+            LOGGER.error("Failed to read entries of table: %s", table_name)
+
+        return count
 
     def count_table_entries_all(self):
         """
@@ -675,7 +704,7 @@ class P4Manager:
         metadata = parse_resource_bytes_from_json(json_resource, "metadata")
 
         if operation in [WriteOperation.insert, WriteOperation.update]:
-            LOGGER.debug("Table entry to insert/update: %s", json_resource)
+            LOGGER.info("Table entry to insert/update: %s", json_resource)
             return self.insert_table_entry(
                 table_name=table_name,
                 match_map=match_map,
@@ -685,7 +714,7 @@ class P4Manager:
                 metadata=metadata if metadata else None
             )
         if operation == WriteOperation.delete:
-            LOGGER.debug("Table entry to delete: %s", json_resource)
+            LOGGER.info("Table entry to delete: %s", json_resource)
             return self.delete_table_entry(
                 table_name=table_name,
                 match_map=match_map,
@@ -700,7 +729,7 @@ class P4Manager:
             cnt_pkt=-1, cnt_byte=-1):
         """
         Insert an entry into an exact match table.
-    
+
         :param table_name: P4 table name
         :param match_map: Map of match operations
         :param action_name: Action name
@@ -712,45 +741,45 @@ class P4Manager:
         """
         assert match_map, "Table entry without match operations is not accepted"
         assert action_name, "Table entry without action is not accepted"
-    
+
         table_entry = TableEntry(self.local_client, table_name)(action=action_name)
-    
+
         for match_k, match_v in match_map.items():
             table_entry.match[match_k] = match_v
-    
+
         for action_k, action_v in action_params.items():
             table_entry.action[action_k] = action_v
-    
+
         if metadata:
             table_entry.metadata = metadata
-    
+
         if cnt_pkt > 0:
             table_entry.counter_data.packet_count = cnt_pkt
-    
+
         if cnt_byte > 0:
             table_entry.counter_data.byte_count = cnt_byte
-    
+
         ex_msg = ""
         try:
             table_entry.insert()
             LOGGER.info("Inserted exact table entry: %s", table_entry)
         except (P4RuntimeException, P4RuntimeWriteException) as ex:
-            raise P4RuntimeException from ex
-    
+            ex_msg = str(ex)
+            LOGGER.warning(ex)
+
         # Table entry exists, needs to be modified
         if "ALREADY_EXISTS" in ex_msg:
             table_entry.modify()
             LOGGER.info("Updated exact table entry: %s", table_entry)
-    
+
         return table_entry
-    
-    
+
     def insert_table_entry_ternary(self,
             table_name, match_map, action_name, action_params, metadata,
             priority, cnt_pkt=-1, cnt_byte=-1):
         """
         Insert an entry into a ternary match table.
-    
+
         :param table_name: P4 table name
         :param match_map: Map of match operations
         :param action_name: Action name
@@ -763,47 +792,47 @@ class P4Manager:
         """
         assert match_map, "Table entry without match operations is not accepted"
         assert action_name, "Table entry without action is not accepted"
-    
+
         table_entry = TableEntry(self.local_client, table_name)(action=action_name)
-    
+
         for match_k, match_v in match_map.items():
             table_entry.match[match_k] = match_v
-    
+
         for action_k, action_v in action_params.items():
             table_entry.action[action_k] = action_v
-    
+
         table_entry.priority = priority
-    
+
         if metadata:
             table_entry.metadata = metadata
-    
+
         if cnt_pkt > 0:
             table_entry.counter_data.packet_count = cnt_pkt
-    
+
         if cnt_byte > 0:
             table_entry.counter_data.byte_count = cnt_byte
-    
+
         ex_msg = ""
         try:
             table_entry.insert()
             LOGGER.info("Inserted ternary table entry: %s", table_entry)
         except (P4RuntimeException, P4RuntimeWriteException) as ex:
-            raise P4RuntimeException from ex
-    
+            ex_msg = str(ex)
+            LOGGER.error(ex)
+
         # Table entry exists, needs to be modified
         if "ALREADY_EXISTS" in ex_msg:
             table_entry.modify()
             LOGGER.info("Updated ternary table entry: %s", table_entry)
-    
+
         return table_entry
-    
-    
+
     def insert_table_entry_range(self,
             table_name, match_map, action_name, action_params, metadata,
             priority, cnt_pkt=-1, cnt_byte=-1):  # pylint: disable=unused-argument
         """
         Insert an entry into a range match table.
-    
+
         :param table_name: P4 table name
         :param match_map: Map of match operations
         :param action_name: Action name
@@ -816,17 +845,16 @@ class P4Manager:
         """
         assert match_map, "Table entry without match operations is not accepted"
         assert action_name, "Table entry without action is not accepted"
-    
+
         raise NotImplementedError(
             "Range-based table insertion not implemented yet")
-    
-    
+
     def insert_table_entry_optional(self,
             table_name, match_map, action_name, action_params, metadata,
             priority, cnt_pkt=-1, cnt_byte=-1):  # pylint: disable=unused-argument
         """
         Insert an entry into an optional match table.
-    
+
         :param table_name: P4 table name
         :param match_map: Map of match operations
         :param action_name: Action name
@@ -839,7 +867,7 @@ class P4Manager:
         """
         assert match_map, "Table entry without match operations is not accepted"
         assert action_name, "Table entry without action is not accepted"
-    
+
         raise NotImplementedError(
             "Optional-based table insertion not implemented yet")
 
@@ -869,32 +897,36 @@ class P4Manager:
         assert table, \
             "P4 pipeline does not implement table " + table_name
 
-        if not get_table_type(table):
+        table_type = get_table_type(table)
+
+        if not table_type:
             msg = f"Table {table_name} is undefined, cannot insert entry"
             LOGGER.error(msg)
             raise UserError(msg)
 
+        LOGGER.debug("Table {}: {}".format(table_name, match_type_to_str(table_type)))
+
         # Exact match is supported
-        if get_table_type(table) == p4info_pb2.MatchField.EXACT:
+        if table_type == p4info_pb2.MatchField.EXACT:
             return self.insert_table_entry_exact(
                 table_name, match_map, action_name, action_params, metadata,
                 cnt_pkt, cnt_byte)
 
         # Ternary and LPM matches are supported
-        if get_table_type(table) in \
+        if table_type in \
                 [p4info_pb2.MatchField.TERNARY, p4info_pb2.MatchField.LPM]:
             return self.insert_table_entry_ternary(
                 table_name, match_map, action_name, action_params, metadata,
                 priority, cnt_pkt, cnt_byte)
 
         # TODO: Cover RANGE match  # pylint: disable=W0511
-        if get_table_type(table) == p4info_pb2.MatchField.RANGE:
+        if table_type == p4info_pb2.MatchField.RANGE:
             return self.insert_table_entry_range(
                 table_name, match_map, action_name, action_params, metadata,
                 priority, cnt_pkt, cnt_byte)
 
         # TODO: Cover OPTIONAL match  # pylint: disable=W0511
-        if get_table_type(table) == p4info_pb2.MatchField.OPTIONAL:
+        if table_type == p4info_pb2.MatchField.OPTIONAL:
             return self.insert_table_entry_optional(
                 table_name, match_map, action_name, action_params, metadata,
                 priority, cnt_pkt, cnt_byte)
@@ -917,7 +949,9 @@ class P4Manager:
         assert table, \
             "P4 pipeline does not implement table " + table_name
 
-        if not get_table_type(table):
+        table_type = get_table_type(table)
+
+        if not table_type:
             msg = f"Table {table_name} is undefined, cannot delete entry"
             LOGGER.error(msg)
             raise UserError(msg)
@@ -930,7 +964,7 @@ class P4Manager:
         for action_k, action_v in action_params.items():
             table_entry.action[action_k] = action_v
 
-        if get_table_type(table) in \
+        if table_type in \
                 [p4info_pb2.MatchField.TERNARY, p4info_pb2.MatchField.LPM]:
             if priority == 0:
                 msg = f"Table {table_name} is ternary, priority must be != 0"
@@ -938,15 +972,25 @@ class P4Manager:
                 raise UserError(msg)
 
         # TODO: Ensure correctness of RANGE & OPTIONAL  # pylint: disable=W0511
-        if get_table_type(table) in \
+        if table_type in \
                 [p4info_pb2.MatchField.RANGE, p4info_pb2.MatchField.OPTIONAL]:
             raise NotImplementedError(
                 "Range and optional-based table deletion not implemented yet")
 
         table_entry.priority = priority
 
-        table_entry.delete()
-        LOGGER.info("Deleted entry %s from table: %s", table_entry, table_name)
+        ex_msg = ""
+        try:
+            table_entry.delete()
+            LOGGER.info("Deleted entry %s from table: %s", table_entry, table_name)
+        except (P4RuntimeException, P4RuntimeWriteException) as ex:
+            ex_msg = str(ex)
+            LOGGER.warning(ex)
+
+        # Table entry exists, needs to be modified
+        if "NOT_FOUND" in ex_msg:
+            # TODO: No way to discriminate between a modified entry and an actual table miss
+            LOGGER.warning("Table entry was initially modified, thus cannot be removed: %s", table_entry)
 
         return table_entry
 
@@ -1172,7 +1216,8 @@ class P4Manager:
                 self.counter_entries[cnt_name].append(cnt_entry)
             return self.counter_entries[cnt_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
+            LOGGER.error("Failed to get counter %s entries: %s",
+                         cnt_name, str(ex))
             return []
 
     def counter_entries_to_json(self, cnt_name):
@@ -1620,7 +1665,8 @@ class P4Manager:
                 self.meter_entries[meter_name].append(meter_entry)
             return self.meter_entries[meter_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
+            LOGGER.error("Failed to get meter %s entries: %s",
+                         meter_name, str(ex))
             return []
 
     def meter_entries_to_json(self, meter_name):
@@ -1852,7 +1898,8 @@ class P4Manager:
                 self.direct_meter_entries[d_meter_name].append(d_meter_entry)
             return self.direct_meter_entries[d_meter_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
+            LOGGER.error("Failed to get direct meter %s entries: %s",
+                         d_meter_name, str(ex))
             return []
 
     def direct_meter_entries_to_json(self, d_meter_name):
@@ -2094,7 +2141,8 @@ class P4Manager:
                 self.action_profile_members[ap_name].append(ap_entry)
             return self.action_profile_members[ap_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
+            LOGGER.error("Failed to get action profile member %s entries: %s",
+                         ap_name, str(ex))
             return []
 
     def action_prof_member_entries_to_json(self, ap_name):
@@ -2357,7 +2405,8 @@ class P4Manager:
                 self.action_profile_groups[ap_name].append(ap_entry)
             return self.action_profile_groups[ap_name]
         except P4RuntimeException as ex:
-            LOGGER.error(ex)
+            LOGGER.error("Failed to get action profile group %s entries: %s",
+                         ap_name, str(ex))
             return []
 
     def count_action_prof_group_entries(self, ap_name):
@@ -2880,14 +2929,13 @@ class P4Manager:
             json_resource, "session-id")
 
         if operation in [WriteOperation.insert, WriteOperation.update]:
-            ports = parse_integer_list_from_json(
-                json_resource, "ports", "port")
+            replicas = parse_replicas_from_json(json_resource)
 
             LOGGER.debug(
                 "Clone session entry to insert/update: %s", json_resource)
             return self.insert_clone_session_entry(
                 session_id=session_id,
-                ports=ports
+                replicas=replicas
             )
         if operation == WriteOperation.delete:
             LOGGER.debug(
@@ -2897,22 +2945,24 @@ class P4Manager:
             )
         return None
 
-    def insert_clone_session_entry(self, session_id, ports):
+    def insert_clone_session_entry(self, session_id, replicas):
         """
         Insert a new clone session.
 
         :param session_id: id of a clone session
-        :param ports: list of egress ports to clone session
+        :param replicas: list of egress ports to clone session
         :return: inserted clone session
         """
         assert session_id > 0, \
             "Clone session " + session_id + " must be > 0"
-        assert ports, \
-            "No clone session ports are provided"
+        assert replicas, \
+            "No clone session replicas are provided"
+        assert isinstance(replicas, dict), \
+            "Clone session replicas must be a dictionary"
 
         session = CloneSessionEntry(self.local_client, session_id)
-        for p in ports:
-            session.add(p, 1)
+        for eg_port,instance in replicas.items():
+            session.add(eg_port, instance)
 
         ex_msg = ""
         try:
@@ -2943,12 +2993,15 @@ class P4Manager:
             "Clone session " + session_id + " must be > 0"
 
         session = CloneSessionEntry(self.local_client, session_id)
-        session.delete()
+
+        try:
+            session.delete()
+            LOGGER.info("Deleted clone session %d", session_id)
+        except (P4RuntimeException, P4RuntimeWriteException) as ex:
+            LOGGER.error(ex)
 
         if session_id in self.clone_session_entries:
             del self.clone_session_entries[session_id]
-        LOGGER.info(
-            "Deleted clone session %d", session_id)
 
         return session
 
@@ -3786,6 +3839,7 @@ class _P4EntityBase(_EntityBase):
     def __init__(self, p4_client, p4_type, entity_type, p4runtime_cls, name=None,
                  modify_only=False):
         super().__init__(p4_client, entity_type, p4runtime_cls, modify_only)
+        assert self.local_client, "No local P4 client instance"
         self._p4_type = p4_type
         if name is None:
             raise UserError(
@@ -3815,7 +3869,7 @@ class ActionProfileMember(_P4EntityBase):
     """
 
     def __init__(self, p4_client, action_profile_name=None):
-        super().__init__( p4_client,
+        super().__init__(p4_client,
             P4Type.action_profile, P4RuntimeEntity.action_profile_member,
             p4runtime_pb2.ActionProfileMember, action_profile_name)
         self.member_id = 0
@@ -3981,7 +4035,7 @@ class ActionProfileGroup(_P4EntityBase):
     """
 
     def __init__(self, p4_client, action_profile_name=None):
-        super().__init__( p4_client,
+        super().__init__(p4_client,
             P4Type.action_profile, P4RuntimeEntity.action_profile_group,
             p4runtime_pb2.ActionProfileGroup, action_profile_name)
         self.group_id = 0
@@ -5055,7 +5109,7 @@ class CounterEntry(_CounterEntryBase):
     """
 
     def __init__(self, p4_client, counter_name=None):
-        super().__init__( p4_client,
+        super().__init__(p4_client,
             P4Type.counter, P4RuntimeEntity.counter_entry,
             p4runtime_pb2.CounterEntry, counter_name,
             modify_only=True)
@@ -5115,11 +5169,11 @@ To write to the counter, use <self>.modify
 class DirectCounterEntry(_CounterEntryBase):
     """
     Direct P4 counter entry.
-    """ 
+    """
     local_client = None
 
     def __init__(self, p4_client, direct_counter_name=None):
-        super().__init__( p4_client, 
+        super().__init__(p4_client,
             P4Type.direct_counter, P4RuntimeEntity.direct_counter_entry,
             p4runtime_pb2.DirectCounterEntry, direct_counter_name,
             modify_only=True)
@@ -5213,7 +5267,7 @@ class _MeterEntryBase(_P4EntityBase):
     """
 
     def __init__(self, p4_client, *args, **kwargs):
-        super().__init__(*args, **kwargs)
+        super().__init__(p4_client, *args, **kwargs)
         self._meter_type = self._info.spec.unit
         self.index = -1
         self.cir = -1
@@ -5910,7 +5964,7 @@ class IdleTimeoutNotification():
     """
     P4 idle timeout notification.
     """
-    
+
     local_client = None
 
     def __init__(self, p4_client):
diff --git a/src/e2e_orchestrator/service/E2EOrchestratorService.py b/src/e2e_orchestrator/service/E2EOrchestratorService.py
index 9fa7bf4bd82564c4158b5af77c0d69b0b9014289..3abef2777ba22cc63df3db1eb86ee411a4ea74c7 100644
--- a/src/e2e_orchestrator/service/E2EOrchestratorService.py
+++ b/src/e2e_orchestrator/service/E2EOrchestratorService.py
@@ -12,19 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import logging
-
 from common.Constants import ServiceNameEnum
-from common.proto.e2eorchestrator_pb2_grpc import add_E2EOrchestratorServiceServicer_to_server
 from common.Settings import get_service_port_grpc
+from common.proto.e2eorchestrator_pb2 import DESCRIPTOR as E2EORCHESTRATOR_DESCRIPTOR
+from common.proto.e2eorchestrator_pb2_grpc import add_E2EOrchestratorServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from .E2EOrchestratorServiceServicerImpl import E2EOrchestratorServiceServicerImpl
 
-LOGGER = logging.getLogger(__name__)
-
-
 class E2EOrchestratorService(GenericGrpcService):
-    def __init__(self, cls_name: str = __name__):
+    def __init__(self, cls_name: str = __name__) -> None:
         port = get_service_port_grpc(ServiceNameEnum.E2EORCHESTRATOR)
         super().__init__(port, cls_name=cls_name)
         self.e2eorchestrator_servicer = E2EOrchestratorServiceServicerImpl()
@@ -33,3 +29,5 @@ class E2EOrchestratorService(GenericGrpcService):
         add_E2EOrchestratorServiceServicer_to_server(
             self.e2eorchestrator_servicer, self.server
         )
+
+        self.add_reflection_service_name(E2EORCHESTRATOR_DESCRIPTOR, 'E2EOrchestratorService')
diff --git a/src/forecaster/service/ForecasterService.py b/src/forecaster/service/ForecasterService.py
index 5f540cdc5bc628ae1a35e5f5ebf47ead276a413c..fedb5242d616eb8eef0a9b4e3fd5308925437acd 100644
--- a/src/forecaster/service/ForecasterService.py
+++ b/src/forecaster/service/ForecasterService.py
@@ -14,6 +14,7 @@
 
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
+from common.proto.forecaster_pb2 import DESCRIPTOR as FORECASTER_DESCRIPTOR
 from common.proto.forecaster_pb2_grpc import add_ForecasterServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from .ForecasterServiceServicerImpl import ForecasterServiceServicerImpl
@@ -26,3 +27,5 @@ class ForecasterService(GenericGrpcService):
 
     def install_servicers(self):
         add_ForecasterServiceServicer_to_server(self.forecaster_servicer, self.server)
+
+        self.add_reflection_service_name(FORECASTER_DESCRIPTOR, 'ForecasterService')
diff --git a/src/nbi/README.md b/src/nbi/README.md
index 32902a0b33dba2f9ce3df4a60833608bac6e129d..f997ce21c9b809a1749f046672e895d3ad466824 100644
--- a/src/nbi/README.md
+++ b/src/nbi/README.md
@@ -31,5 +31,5 @@ sudo ldconfig
 
 ### Install Python bindings
 ```bash
-pip install libyang==2.8.0
+pip install libyang==2.8.4
 ```
diff --git a/src/nbi/requirements.in b/src/nbi/requirements.in
index 0d780483626979cc993a984d3da709762c749d56..d56ee821b19894e435368cd6250b25d3bdc33c10 100644
--- a/src/nbi/requirements.in
+++ b/src/nbi/requirements.in
@@ -18,7 +18,7 @@ Flask==2.1.3
 Flask-HTTPAuth==4.5.0
 Flask-RESTful==0.3.9
 jsonschema==4.4.0
-libyang==2.8.0
+libyang==2.8.4
 netaddr==0.9.0
 pyang==2.6.0
 git+https://github.com/robshakir/pyangbind.git
diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
index eaa21352527a95591829e6bad87de8ecef1df521..ab608f2d746a2faffc819f25cc026ce9b949aff7 100644
--- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
+++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
@@ -177,6 +177,11 @@ class Topology(_Resource):
     def delete(self, context_uuid : str, topology_uuid : str):
         return format_grpc_to_json(self.context_client.RemoveTopology(grpc_topology_id(context_uuid, topology_uuid)))
 
+class TopologyDetails(_Resource):
+    def get(self, context_uuid : str, topology_uuid : str):
+        topology_id = grpc_topology_id(context_uuid, topology_uuid)
+        return format_grpc_to_json(self.context_client.GetTopologyDetails(topology_id))
+
 class ServiceIds(_Resource):
     def get(self, context_uuid : str):
         return format_grpc_to_json(self.context_client.ListServiceIds(grpc_context_id(context_uuid)))
@@ -301,16 +306,20 @@ class Link(_Resource):
     def put(self, link_uuid : str):
         link_json = request.get_json()
         link = grpc_link(link_json)
-        virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL}
         if link_uuid != link.link_id.link_uuid.uuid:
             raise BadRequest('Mismatching link_uuid')
-        elif link.link_type in virtual_types:
-            link = grpc_link(link_json)
-            return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))    
-        return format_grpc_to_json(self.context_client.SetLink(grpc_link(link)))
+        if link.link_type == LinkTypeEnum.LINKTYPE_VIRTUAL:
+            return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))
+        else:
+            return format_grpc_to_json(self.context_client.SetLink(link))
 
     def delete(self, link_uuid : str):
-        return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid)))
+        link_id = grpc_link_id(link_uuid)
+        link = self.context_client.GetLink(link_id)
+        if link.link_type == LinkTypeEnum.LINKTYPE_VIRTUAL:
+            return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(link_id))
+        else:
+            return format_grpc_to_json(self.context_client.RemoveLink(link_id))
 
 class ConnectionIds(_Resource):
     def get(self, context_uuid : str, service_uuid : str):
diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py
index 304a326481f4713f4b2e4f860fd2d42c25ae656b..6605557ca1b1aa7d6eb8db55287beb19e3db62a5 100644
--- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py
+++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/__init__.py
@@ -22,7 +22,7 @@ from .Resources import (
     PolicyRule, PolicyRuleIds, PolicyRules,
     Service, ServiceIds, Services,
     Slice, SliceIds, Slices,
-    Topologies, Topology, TopologyIds
+    Topologies, Topology, TopologyDetails, TopologyIds
 )
 
 URL_PREFIX = '/tfs-api'
@@ -30,38 +30,39 @@ URL_PREFIX = '/tfs-api'
 # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type.
 RESOURCES = [
     # (endpoint_name, resource_class, resource_url)
-    ('api.context_ids',    ContextIds,    '/context_ids'),
-    ('api.contexts',       Contexts,      '/contexts'),
-    ('api.dummy_contexts', DummyContexts, '/dummy_contexts'),
-    ('api.context',        Context,       '/context/<path:context_uuid>'),
+    ('api.context_ids',      ContextIds,      '/context_ids'),
+    ('api.contexts',         Contexts,        '/contexts'),
+    ('api.dummy_contexts',   DummyContexts,   '/dummy_contexts'),
+    ('api.context',          Context,         '/context/<path:context_uuid>'),
 
-    ('api.topology_ids',   TopologyIds,   '/context/<path:context_uuid>/topology_ids'),
-    ('api.topologies',     Topologies,    '/context/<path:context_uuid>/topologies'),
-    ('api.topology',       Topology,      '/context/<path:context_uuid>/topology/<path:topology_uuid>'),
+    ('api.topology_ids',     TopologyIds,     '/context/<path:context_uuid>/topology_ids'),
+    ('api.topologies',       Topologies,      '/context/<path:context_uuid>/topologies'),
+    ('api.topology',         Topology,        '/context/<path:context_uuid>/topology/<path:topology_uuid>'),
+    ('api.topology_details', TopologyDetails, '/context/<path:context_uuid>/topology_details/<path:topology_uuid>'),
 
-    ('api.service_ids',    ServiceIds,    '/context/<path:context_uuid>/service_ids'),
-    ('api.services',       Services,      '/context/<path:context_uuid>/services'),
-    ('api.service',        Service,       '/context/<path:context_uuid>/service/<path:service_uuid>'),
+    ('api.service_ids',      ServiceIds,      '/context/<path:context_uuid>/service_ids'),
+    ('api.services',         Services,        '/context/<path:context_uuid>/services'),
+    ('api.service',          Service,         '/context/<path:context_uuid>/service/<path:service_uuid>'),
 
-    ('api.slice_ids',      SliceIds,      '/context/<path:context_uuid>/slice_ids'),
-    ('api.slices',         Slices,        '/context/<path:context_uuid>/slices'),
-    ('api.slice',          Slice,         '/context/<path:context_uuid>/slice/<path:slice_uuid>'),
+    ('api.slice_ids',        SliceIds,        '/context/<path:context_uuid>/slice_ids'),
+    ('api.slices',           Slices,          '/context/<path:context_uuid>/slices'),
+    ('api.slice',            Slice,           '/context/<path:context_uuid>/slice/<path:slice_uuid>'),
 
-    ('api.device_ids',     DeviceIds,     '/device_ids'),
-    ('api.devices',        Devices,       '/devices'),
-    ('api.device',         Device,        '/device/<path:device_uuid>'),
+    ('api.device_ids',       DeviceIds,       '/device_ids'),
+    ('api.devices',          Devices,         '/devices'),
+    ('api.device',           Device,          '/device/<path:device_uuid>'),
 
-    ('api.link_ids',       LinkIds,       '/link_ids'),
-    ('api.links',          Links,         '/links'),
-    ('api.link',           Link,          '/link/<path:link_uuid>'),
+    ('api.link_ids',         LinkIds,         '/link_ids'),
+    ('api.links',            Links,           '/links'),
+    ('api.link',             Link,            '/link/<path:link_uuid>'),
 
-    ('api.connection_ids', ConnectionIds, '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'),
-    ('api.connections',    Connections,   '/context/<path:context_uuid>/service/<path:service_uuid>/connections'),
-    ('api.connection',     Connection,    '/connection/<path:connection_uuid>'),
+    ('api.connection_ids',   ConnectionIds,   '/context/<path:context_uuid>/service/<path:service_uuid>/connection_ids'),
+    ('api.connections',      Connections,     '/context/<path:context_uuid>/service/<path:service_uuid>/connections'),
+    ('api.connection',       Connection,      '/connection/<path:connection_uuid>'),
 
-    ('api.policyrule_ids', PolicyRuleIds, '/policyrule_ids'),
-    ('api.policyrules',    PolicyRules,   '/policyrules'),
-    ('api.policyrule',     PolicyRule,    '/policyrule/<path:policyrule_uuid>'),
+    ('api.policyrule_ids',   PolicyRuleIds,   '/policyrule_ids'),
+    ('api.policyrules',      PolicyRules,     '/policyrules'),
+    ('api.policyrule',       PolicyRule,      '/policyrule/<path:policyrule_uuid>'),
 ]
 
 def register_tfs_api(rest_server : RestServer):
diff --git a/src/pathcomp/frontend/service/PathCompService.py b/src/pathcomp/frontend/service/PathCompService.py
index c19e59e77b9b5f75f66eec07990691a76cdc36b7..6e413c14eb293f3073bfb1d80963dab58ba04308 100644
--- a/src/pathcomp/frontend/service/PathCompService.py
+++ b/src/pathcomp/frontend/service/PathCompService.py
@@ -14,8 +14,9 @@
 
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
-from common.tools.service.GenericGrpcService import GenericGrpcService
+from common.proto.pathcomp_pb2 import DESCRIPTOR as PATHCOMP_DESCRIPTOR
 from common.proto.pathcomp_pb2_grpc import add_PathCompServiceServicer_to_server
+from common.tools.service.GenericGrpcService import GenericGrpcService
 from .PathCompServiceServicerImpl import PathCompServiceServicerImpl
 
 class PathCompService(GenericGrpcService):
@@ -26,3 +27,5 @@ class PathCompService(GenericGrpcService):
 
     def install_servicers(self):
         add_PathCompServiceServicer_to_server(self.pathcomp_servicer, self.server)
+
+        self.add_reflection_service_name(PATHCOMP_DESCRIPTOR, 'PathCompService')
diff --git a/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py b/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
index 42635bf4ad5cfd1a1a4cb174b73d26c51576af9a..b08830332f7fc6f526a19516b120e94a1a98b232 100644
--- a/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
+++ b/src/pathcomp/frontend/service/algorithms/tools/ResourceGroups.py
@@ -22,6 +22,8 @@ from common.tools.grpc.Tools import grpc_message_to_json_string
 DEVICE_TYPE_TO_DEEPNESS = {
     DeviceTypeEnum.EMULATED_DATACENTER.value             : 90,
     DeviceTypeEnum.DATACENTER.value                      : 90,
+    DeviceTypeEnum.EMULATED_CLIENT.value                 : 90,
+    DeviceTypeEnum.CLIENT.value                          : 90,
 
     DeviceTypeEnum.TERAFLOWSDN_CONTROLLER.value          : 80,
     DeviceTypeEnum.EMULATED_IP_SDN_CONTROLLER.value      : 80,
@@ -50,6 +52,8 @@ DEVICE_TYPE_TO_DEEPNESS = {
     DeviceTypeEnum.OPTICAL_TRANSPONDER.value             : 10,
     DeviceTypeEnum.EMULATED_OPTICAL_ROADM.value          : 10,
     DeviceTypeEnum.OPTICAL_ROADM.value                   : 10,
+    DeviceTypeEnum.QKD_NODE.value                        : 10,
+    DeviceTypeEnum.OPEN_ROADM.value                      : 10,
 
     DeviceTypeEnum.EMULATED_OPTICAL_SPLITTER.value       :  0,
     DeviceTypeEnum.NETWORK.value                         :  0, # network out of our control; always delegate
diff --git a/src/service/service/ServiceService.py b/src/service/service/ServiceService.py
index b99826e5b0f6ab8b228c32f4c7811181c83c7198..e088a99ebcc2e1b8258500df33ed8e319202d41c 100644
--- a/src/service/service/ServiceService.py
+++ b/src/service/service/ServiceService.py
@@ -14,6 +14,7 @@
 
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
+from common.proto.service_pb2 import DESCRIPTOR as SERVICE_DESCRIPTOR
 from common.proto.service_pb2_grpc import add_ServiceServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from .ServiceServiceServicerImpl import ServiceServiceServicerImpl
@@ -27,3 +28,5 @@ class ServiceService(GenericGrpcService):
 
     def install_servicers(self):
         add_ServiceServiceServicer_to_server(self.service_servicer, self.server)
+
+        self.add_reflection_service_name(SERVICE_DESCRIPTOR, 'ServiceService')
diff --git a/src/service/service/service_handlers/l3nm_gnmi_openconfig/StaticRouteGenerator.py b/src/service/service/service_handlers/l3nm_gnmi_openconfig/StaticRouteGenerator.py
index b315c7f4d44c7f806a68b8466c393c1668d1d3bb..cdc58049d8c22dbd0ed4b338aa5c0f0e61e9842e 100644
--- a/src/service/service/service_handlers/l3nm_gnmi_openconfig/StaticRouteGenerator.py
+++ b/src/service/service/service_handlers/l3nm_gnmi_openconfig/StaticRouteGenerator.py
@@ -72,6 +72,15 @@ class StaticRouteGenerator:
             added_connection_hops.add(connection_hop)
         connection_hop_list = filtered_connection_hop_list
 
+        # In some cases connection_hop_list first and last items might be internal endpoints of
+        # devices instead of link endpoints. Filter those endpoints not reaching a new device.
+        if len(connection_hop_list) > 2 and connection_hop_list[0][0] == connection_hop_list[1][0]:
+            # same device on first 2 endpoints
+            connection_hop_list = connection_hop_list[1:]
+        if len(connection_hop_list) > 2 and connection_hop_list[-1][0] == connection_hop_list[-2][0]:
+            # same device on last 2 endpoints
+            connection_hop_list = connection_hop_list[:-1]
+
         num_connection_hops = len(connection_hop_list)
         if num_connection_hops % 2 != 0: raise Exception('Number of connection hops must be even')
         if num_connection_hops < 4: raise Exception('Number of connection hops must be >= 4')
diff --git a/src/slice/service/SliceService.py b/src/slice/service/SliceService.py
index dc2584f82d0704080f16e83aa958ba0db6f08fe2..ac4e809762c1ffb6097506f34d519056f2bd3426 100644
--- a/src/slice/service/SliceService.py
+++ b/src/slice/service/SliceService.py
@@ -14,9 +14,10 @@
 
 from common.Constants import ServiceNameEnum
 from common.Settings import get_service_port_grpc
+from common.proto.slice_pb2 import DESCRIPTOR as SLICE_DESCRIPTOR
 from common.proto.slice_pb2_grpc import add_SliceServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
-from slice.service.SliceServiceServicerImpl import SliceServiceServicerImpl
+from .SliceServiceServicerImpl import SliceServiceServicerImpl
 
 class SliceService(GenericGrpcService):
     def __init__(self, cls_name: str = __name__) -> None:
@@ -26,3 +27,5 @@ class SliceService(GenericGrpcService):
 
     def install_servicers(self):
         add_SliceServiceServicer_to_server(self.slice_servicer, self.server)
+
+        self.add_reflection_service_name(SLICE_DESCRIPTOR, 'SliceService')
diff --git a/src/tests/eucnc24/.gitlab-ci.yml b/src/tests/eucnc24/.gitlab-ci.yml
index 8c5e9f20ba2e891cd39c89beee200b22088b6438..02c4cced3981f4c12042e636652dca95c384a169 100644
--- a/src/tests/eucnc24/.gitlab-ci.yml
+++ b/src/tests/eucnc24/.gitlab-ci.yml
@@ -70,6 +70,11 @@ end2end_test eucnc24:
     - sleep 3
     - docker ps -a
 
+    # Dump configuration of the routers (before any configuration)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Configure TeraFlowSDN deployment
     # Uncomment if DEBUG log level is needed for the components
     #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/contextservice.yaml
@@ -126,12 +131,30 @@ end2end_test eucnc24:
       --volume "$PWD/src/tests/${TEST_NAME}:/opt/results"
       $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-tfs-create.sh
 
+    # Dump configuration of the routers (after configure TFS service)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Run end-to-end test: test connectivity with ping
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10'
+    - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json)
+    - echo $TEST1_10
+    - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json)
+    - echo $TEST1_1
+    - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json)
+    - echo $TEST2_1
+    - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json)
+    - echo $TEST2_10
+    - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json)
+    - echo $TEST3_1
+    - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss'
+    - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json)
+    - echo $TEST3_10
+    - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss'
 
     # Run end-to-end test: deconfigure service TFS
     - >
@@ -140,6 +163,11 @@ end2end_test eucnc24:
       --volume "$PWD/src/tests/${TEST_NAME}:/opt/results"
       $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-tfs-remove.sh
 
+    # Dump configuration of the routers (after deconfigure TFS service)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Run end-to-end test: configure service IETF
     - >
       docker run -t --rm --name ${TEST_NAME} --network=host 
@@ -147,12 +175,30 @@ end2end_test eucnc24:
       --volume "$PWD/src/tests/${TEST_NAME}:/opt/results"
       $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-ietf-create.sh
 
+    # Dump configuration of the routers (after configure IETF service)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Run end-to-end test: test connectivity with ping
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.10'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.1.1'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.1'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.2.10'
-    - sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 192.168.3.10'
+    - export TEST1_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.10' --format json)
+    - echo $TEST1_10
+    - echo $TEST1_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST1_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.1.1' --format json)
+    - echo $TEST1_1
+    - echo $TEST1_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST2_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.1' --format json)
+    - echo $TEST2_1
+    - echo $TEST2_1 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST2_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.2.10' --format json)
+    - echo $TEST2_10
+    - echo $TEST2_10 | grep -E '3 packets transmitted, 3 received, 0\% packet loss'
+    - export TEST3_1=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.1' --format json)
+    - echo $TEST3_1
+    - echo $TEST3_1 | grep -E '3 packets transmitted, 0 received, 100\% packet loss'
+    - export TEST3_10=$(sudo containerlab exec --name eucnc24 --label clab-node-name=dc1 --cmd 'ping -n -c3 172.16.3.10' --format json)
+    - echo $TEST3_10
+    - echo $TEST3_10 | grep -E '3 packets transmitted, 0 received, 100\% packet loss'
 
     # Run end-to-end test: deconfigure service IETF
     - >
@@ -161,6 +207,11 @@ end2end_test eucnc24:
       --volume "$PWD/src/tests/${TEST_NAME}:/opt/results"
       $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-service-ietf-remove.sh
 
+    # Dump configuration of the routers (after deconfigure IETF service)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Run end-to-end test: cleanup scenario
     - >
       docker run -t --rm --name ${TEST_NAME} --network=host 
@@ -169,6 +220,11 @@ end2end_test eucnc24:
       $CI_REGISTRY_IMAGE/${TEST_NAME}:latest /var/teraflow/run-cleanup.sh
 
   after_script:
+    # Dump configuration of the routers (on after_script)
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r1 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r2 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+    - sudo containerlab exec --name eucnc24 --label clab-node-name=r3 --cmd "Cli --command \"enable"$'\n'$"show running-config\""
+
     # Dump TeraFlowSDN component logs
     - source src/tests/${TEST_NAME}/deploy_specs.sh
     - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server
diff --git a/src/tests/eucnc24/README.md b/src/tests/eucnc24/README.md
index f8c2f9d49793b8e0751ea4ea09bf893e7ceae0b6..3cc7974568028faa2bfbad70942ff2cc82bbafa0 100644
--- a/src/tests/eucnc24/README.md
+++ b/src/tests/eucnc24/README.md
@@ -8,7 +8,7 @@
 ## TeraFlowSDN Deployment
 ```bash
 cd ~/tfs-ctrl
-source dataplane-in-a-box/deploy_specs.sh
+source ~/tfs-ctrl/src/tests/eucnc24/deploy_specs.sh
 ./deploy/all.sh
 ```
 
@@ -16,67 +16,55 @@ source dataplane-in-a-box/deploy_specs.sh
 
 ## Download and install ContainerLab
 ```bash
-sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.48.6
+sudo bash -c "$(curl -sL https://get.containerlab.dev)" -- -v 0.59.0
 ```
 
 ## Download Arista cEOS image and create Docker image
 ```bash
-cd ~/tfs-ctrl/dataplane-in-a-box
-docker import arista/cEOS64-lab-4.31.2F.tar ceos:4.31.2F
+cd ~/tfs-ctrl/src/tests/eucnc24/
+docker import arista/cEOS64-lab-4.32.2F.tar ceos:4.32.2F
 ```
 
 ## Deploy scenario
 ```bash
-cd ~/tfs-ctrl/dataplane-in-a-box
-sudo containerlab deploy --topo arista.clab.yml
+cd ~/tfs-ctrl/src/tests/eucnc24/
+sudo containerlab deploy --topo eucnc24.clab.yml
 ```
 
 ## Inspect scenario
 ```bash
-cd ~/tfs-ctrl/dataplane-in-a-box
-sudo containerlab inspect --topo arista.clab.yml
+cd ~/tfs-ctrl/src/tests/eucnc24/
+sudo containerlab inspect --topo eucnc24.clab.yml
 ```
 
 ## Destroy scenario
 ```bash
-cd ~/tfs-ctrl/dataplane-in-a-box
-sudo containerlab destroy --topo arista.clab.yml
-sudo rm -rf clab-arista/ .arista.clab.yml.bak
+cd ~/tfs-ctrl/src/tests/eucnc24/
+sudo containerlab destroy --topo eucnc24.clab.yml
+sudo rm -rf clab-eucnc24/ .eucnc24.clab.yml.bak
 ```
 
-## Access cEOS Bash
+## Access cEOS Bash/CLI
 ```bash
-docker exec -it clab-arista-r1 bash
-```
-
-## Access cEOS CLI
-```bash
-docker exec -it clab-arista-r1 Cli
-docker exec -it clab-arista-r2 Cli
+docker exec -it clab-eucnc24-r1 bash
+docker exec -it clab-eucnc24-r2 bash
+docker exec -it clab-eucnc24-r3 bash
+docker exec -it clab-eucnc24-r1 Cli
+docker exec -it clab-eucnc24-r2 Cli
+docker exec -it clab-eucnc24-r3 Cli
 ```
 
 ## Configure ContainerLab clients
 ```bash
-docker exec -it clab-arista-client1 bash
-    ip address add 192.168.1.10/24 dev eth1
-    ip route add 192.168.2.0/24 via 192.168.1.1
-    ip route add 192.168.3.0/24 via 192.168.1.1
-    ping 192.168.2.10
-    ping 192.168.3.10
-
-docker exec -it clab-arista-client2 bash
-    ip address add 192.168.2.10/24 dev eth1
-    ip route add 192.168.1.0/24 via 192.168.2.1
-    ip route add 192.168.3.0/24 via 192.168.2.1
-    ping 192.168.1.10
-    ping 192.168.3.10
-
-docker exec -it clab-arista-client3 bash
-    ip address add 192.168.3.10/24 dev eth1
-    ip route add 192.168.2.0/24 via 192.168.3.1
-    ip route add 192.168.3.0/24 via 192.168.3.1
-    ping 192.168.2.10
-    ping 192.168.3.10
+docker exec -it clab-eucnc24-dc1 bash
+    ip address add 172.16.1.10/24 dev eth1
+    ip route add 172.16.2.0/24 via 172.16.1.1
+    ping 172.16.2.10
+
+docker exec -it clab-eucnc24-dc2 bash
+    ip address add 172.16.2.10/24 dev eth1
+    ip route add 172.16.1.0/24 via 172.16.2.1
+    ping 172.16.1.10
 ```
 
 ## Install gNMIc
@@ -86,38 +74,38 @@ sudo bash -c "$(curl -sL https://get-gnmic.kmrd.dev)"
 
 ## gNMI Capabilities request
 ```bash
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure capabilities
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure capabilities
 ```
 
 ## gNMI Get request
 ```bash
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > wan1.json
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > wan1-ifaces.json
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path / > r1.json
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /interfaces/interface > r1-ifaces.json
 ```
 
 ## gNMI Set request
 ```bash
-#gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11
-#gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --update-path /system/config/hostname --update-value srl11
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path /system/config/hostname
 ```
 
 ## Subscribe request
 ```bash
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf subscribe --path /interfaces/interface[name=Management0]/state/
 
 # In another terminal, you can generate traffic opening SSH connection
-ssh admin@clab-arista-wan1
+ssh admin@clab-eucnc24-r1
 ```
 
 # Check configurations done:
 ```bash
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > wan1-nis.json
-gnmic --address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > wan1-ifs.json
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/network-instances' > r1-nis.json
+gnmic --address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf get --path '/interfaces' > r1-ifs.json
 ```
 
 # Delete elements:
 ```bash
---address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]'
---address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]'
---address clab-arista-wan1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]'
+--address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/network-instances/network-instance[name=b19229e8]'
+--address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/1]/subinterfaces/subinterface[index=0]'
+--address clab-eucnc24-r1 --port 6030 --username admin --password admin --insecure --encoding json_ietf set --delete '/interfaces/interface[name=ethernet-1/2]/subinterfaces/subinterface[index=0]'
 ```
diff --git a/src/tests/eucnc24/clab/eucnc24.clab.yml b/src/tests/eucnc24/clab/eucnc24.clab.yml
index 807a1847c2c2f7580a699aada2d21c0d2577942d..aaf971e360b4770913b9aade3c21b348d700fa86 100644
--- a/src/tests/eucnc24/clab/eucnc24.clab.yml
+++ b/src/tests/eucnc24/clab/eucnc24.clab.yml
@@ -26,10 +26,11 @@ topology:
       kind: arista_ceos
       #image: ceos:4.30.4M
       #image: ceos:4.31.2F
-      #image: ceos:4.31.5M
+      #image: ceos:4.31.5M # tested, works
       #image: ceos:4.32.0F
-      image: ceos:4.32.2F
+      image: ceos:4.32.2F # tested, works
       #image: ceos:4.32.2.1F
+      #image: ceos:4.33.1F # does not work, libyang.util.LibyangError: failed to parse data tree: No module named "openconfig-platform-healthz" in the context.
     linux:
       kind: linux
       image: ghcr.io/hellt/network-multitool:latest
@@ -38,30 +39,33 @@ topology:
     r1:
       kind: arista_ceos
       mgmt-ipv4: 172.20.20.101
+      startup-config: r1-startup.cfg
 
     r2:
       kind: arista_ceos
       mgmt-ipv4: 172.20.20.102
+      startup-config: r2-startup.cfg
 
     r3:
       kind: arista_ceos
       mgmt-ipv4: 172.20.20.103
+      startup-config: r3-startup.cfg
 
     dc1:
       kind: linux
-      mgmt-ipv4: 172.20.20.211
+      mgmt-ipv4: 172.20.20.201
       exec:
         - ip link set address 00:c1:ab:00:01:01 dev eth1
-        - ip address add 192.168.1.10/24 dev eth1
-        - ip route add 192.168.2.0/24 via 192.168.1.1
+        - ip address add 172.16.1.10/24 dev eth1
+        - ip route add 172.16.2.0/24 via 172.16.1.1
 
     dc2:
       kind: linux
-      mgmt-ipv4: 172.20.20.221
+      mgmt-ipv4: 172.20.20.202
       exec:
         - ip link set address 00:c1:ab:00:02:01 dev eth1
-        - ip address add 192.168.2.10/24 dev eth1
-        - ip route add 192.168.1.0/24 via 192.168.2.1
+        - ip address add 172.16.2.10/24 dev eth1
+        - ip route add 172.16.1.0/24 via 172.16.2.1
 
   links:
     - endpoints: ["r1:eth2", "r2:eth1"]
diff --git a/src/tests/eucnc24/clab/r1-startup.cfg b/src/tests/eucnc24/clab/r1-startup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b7feebe067b9c77572d63b719a588a4a2aa44cb9
--- /dev/null
+++ b/src/tests/eucnc24/clab/r1-startup.cfg
@@ -0,0 +1,48 @@
+! device: r1 (cEOSLab, EOS-4.32.2F-38195967.4322F (engineering build))
+!
+no aaa root
+!
+username admin privilege 15 role network-admin secret sha512 $6$OmfaAwJRg/r44r5U$9Fca1O1G6Bgsd4NKwSyvdRJcHHk71jHAR3apDWAgSTN/t/j1iroEhz5J36HjWjOF/jEVC/R8Wa60VmbX6.cr70
+!
+management api http-commands
+   no shutdown
+!
+no service interface inactive port-id allocation disabled
+!
+transceiver qsfp default-mode 4x10G
+!
+service routing protocols model multi-agent
+!
+hostname r1
+!
+spanning-tree mode mstp
+!
+system l1
+   unsupported speed action error
+   unsupported error-correction action error
+!
+management api gnmi
+   transport grpc default
+!
+management api netconf
+   transport ssh default
+!
+interface Ethernet2
+!
+interface Ethernet10
+!
+interface Management0
+   ip address 172.20.20.101/24
+!
+ip routing
+!
+ip route 0.0.0.0/0 172.20.20.1
+!
+router multicast
+   ipv4
+      software-forwarding kernel
+   !
+   ipv6
+      software-forwarding kernel
+!
+end
diff --git a/src/tests/eucnc24/clab/r2-startup.cfg b/src/tests/eucnc24/clab/r2-startup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e1ab661a0ab455ab22f025ec6b2f96cf42a9f2dd
--- /dev/null
+++ b/src/tests/eucnc24/clab/r2-startup.cfg
@@ -0,0 +1,48 @@
+! device: r2 (cEOSLab, EOS-4.32.2F-38195967.4322F (engineering build))
+!
+no aaa root
+!
+username admin privilege 15 role network-admin secret sha512 $6$OmfaAwJRg/r44r5U$9Fca1O1G6Bgsd4NKwSyvdRJcHHk71jHAR3apDWAgSTN/t/j1iroEhz5J36HjWjOF/jEVC/R8Wa60VmbX6.cr70
+!
+management api http-commands
+   no shutdown
+!
+no service interface inactive port-id allocation disabled
+!
+transceiver qsfp default-mode 4x10G
+!
+service routing protocols model multi-agent
+!
+hostname r2
+!
+spanning-tree mode mstp
+!
+system l1
+   unsupported speed action error
+   unsupported error-correction action error
+!
+management api gnmi
+   transport grpc default
+!
+management api netconf
+   transport ssh default
+!
+interface Ethernet1
+!
+interface Ethernet3
+!
+interface Management0
+   ip address 172.20.20.102/24
+!
+ip routing
+!
+ip route 0.0.0.0/0 172.20.20.1
+!
+router multicast
+   ipv4
+      software-forwarding kernel
+   !
+   ipv6
+      software-forwarding kernel
+!
+end
diff --git a/src/tests/eucnc24/clab/r3-startup.cfg b/src/tests/eucnc24/clab/r3-startup.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..63c0625931e5a4645c8ae8741a2b5bd5fe8a28d6
--- /dev/null
+++ b/src/tests/eucnc24/clab/r3-startup.cfg
@@ -0,0 +1,48 @@
+! device: r3 (cEOSLab, EOS-4.32.2F-38195967.4322F (engineering build))
+!
+no aaa root
+!
+username admin privilege 15 role network-admin secret sha512 $6$OmfaAwJRg/r44r5U$9Fca1O1G6Bgsd4NKwSyvdRJcHHk71jHAR3apDWAgSTN/t/j1iroEhz5J36HjWjOF/jEVC/R8Wa60VmbX6.cr70
+!
+management api http-commands
+   no shutdown
+!
+no service interface inactive port-id allocation disabled
+!
+transceiver qsfp default-mode 4x10G
+!
+service routing protocols model multi-agent
+!
+hostname r3
+!
+spanning-tree mode mstp
+!
+system l1
+   unsupported speed action error
+   unsupported error-correction action error
+!
+management api gnmi
+   transport grpc default
+!
+management api netconf
+   transport ssh default
+!
+interface Ethernet2
+!
+interface Ethernet10
+!
+interface Management0
+   ip address 172.20.20.103/24
+!
+ip routing
+!
+ip route 0.0.0.0/0 172.20.20.1
+!
+router multicast
+   ipv4
+      software-forwarding kernel
+   !
+   ipv6
+      software-forwarding kernel
+!
+end
diff --git a/src/tests/eucnc24/data/ietf-l3vpn-service.json b/src/tests/eucnc24/data/ietf-l3vpn-service.json
index a6297b28f0fea94dcc8a457ad2b45d38e77aa4ea..a0f28ee063c97aaabdd3fdda679e8ebbcd8089dc 100644
--- a/src/tests/eucnc24/data/ietf-l3vpn-service.json
+++ b/src/tests/eucnc24/data/ietf-l3vpn-service.json
@@ -11,7 +11,7 @@
                     "site-network-accesses": {
                         "site-network-access": [
                             {
-                                "site-network-access-id": "int",
+                                "site-network-access-id": "eth1",
                                 "site-network-access-type": "ietf-l3vpn-svc:multipoint",
                                 "device-reference": "dc1",
                                 "vpn-attachment": {"vpn-id": "ietf-l3vpn-svc", "site-role": "ietf-l3vpn-svc:spoke-role"},
@@ -19,8 +19,8 @@
                                     "ipv4": {
                                         "address-allocation-type": "ietf-l3vpn-svc:static-address",
                                         "addresses": {
-                                            "provider-address": "192.168.1.1",
-                                            "customer-address": "192.168.1.10",
+                                            "provider-address": "172.16.1.1",
+                                            "customer-address": "172.16.1.10",
                                             "prefix-length": 24
                                         }
                                     }
@@ -48,7 +48,7 @@
                     "site-network-accesses": {
                         "site-network-access": [
                             {
-                                "site-network-access-id": "int",
+                                "site-network-access-id": "eth1",
                                 "site-network-access-type": "ietf-l3vpn-svc:multipoint",
                                 "device-reference": "dc2",
                                 "vpn-attachment": {"vpn-id": "ietf-l3vpn-svc", "site-role": "ietf-l3vpn-svc:hub-role"},
@@ -56,8 +56,8 @@
                                     "ipv4": {
                                         "address-allocation-type": "ietf-l3vpn-svc:static-address",
                                         "addresses": {
-                                            "provider-address": "192.168.2.1",
-                                            "customer-address": "192.168.2.10",
+                                            "provider-address": "172.16.2.1",
+                                            "customer-address": "172.16.2.10",
                                             "prefix-length": 24
                                         }
                                     }
diff --git a/src/tests/eucnc24/data/tfs-service.json b/src/tests/eucnc24/data/tfs-service.json
index 397fc84789111932da047acd22c7bc787888657f..e4bb7c2d255d2f119cd5c9646d01450ac4bffd9c 100644
--- a/src/tests/eucnc24/data/tfs-service.json
+++ b/src/tests/eucnc24/data/tfs-service.json
@@ -14,11 +14,11 @@
             "service_config": {"config_rules": [
                 {"action": "CONFIGACTION_SET", "custom": {
                     "resource_key": "/device[dc1]/endpoint[eth1]/settings",
-                    "resource_value": {"address_ip": "192.168.1.10", "address_prefix": 24, "index": 0}
+                    "resource_value": {"address_ip": "172.16.1.10", "address_prefix": 24, "index": 0}
                 }},
                 {"action": "CONFIGACTION_SET", "custom": {
                     "resource_key": "/device[dc2]/endpoint[eth1]/settings",
-                    "resource_value": {"address_ip": "192.168.2.10", "address_prefix": 24, "index": 0}
+                    "resource_value": {"address_ip": "172.16.2.10", "address_prefix": 24, "index": 0}
                 }}
             ]}
         }
diff --git a/src/tests/p4-fwd-l1/tests/Objects.py b/src/tests/p4-fwd-l1/tests/Objects.py
index ba260e936805e57fb8f07761b1e5fc79cffbaf8f..83d1e23b438693f3dbe6b657d0332a4f0a9d1680 100644
--- a/src/tests/p4-fwd-l1/tests/Objects.py
+++ b/src/tests/p4-fwd-l1/tests/Objects.py
@@ -13,18 +13,12 @@
 # limitations under the License.
 
 import os
-from typing import Dict, List, Tuple
 from common.Constants import DEFAULT_CONTEXT_NAME, DEFAULT_TOPOLOGY_NAME
 from common.tools.object_factory.Context import json_context, json_context_id
 from common.tools.object_factory.Device import (
-    json_device_connect_rules, json_device_emulated_connect_rules, json_device_emulated_packet_router_disabled,
-    json_device_connect_rules, json_device_id, json_device_p4_disabled,
-    json_device_emulated_tapi_disabled, json_device_id, json_device_packetrouter_disabled, json_device_tapi_disabled)
-from common.tools.object_factory.Service import (
-    get_service_uuid, json_service_l3nm_planned,json_service_p4_planned)
-from common.tools.object_factory.ConfigRule import (
-    json_config_rule_set, json_config_rule_delete)
-from common.tools.object_factory.EndPoint import json_endpoint, json_endpoint_ids, json_endpoints, json_endpoint_id
+    json_device_connect_rules, json_device_id, json_device_p4_disabled)
+from common.tools.object_factory.Service import get_service_uuid, json_service_p4_planned
+from common.tools.object_factory.EndPoint import json_endpoint_ids, json_endpoints
 from common.tools.object_factory.EndPoint import json_endpoint_descriptor
 from common.tools.object_factory.Link import get_link_uuid, json_link, json_link_id
 from common.tools.object_factory.Topology import json_topology, json_topology_id
diff --git a/src/tests/p4-fwd-l1/tests/test_functional_bootstrap.py b/src/tests/p4-fwd-l1/tests/test_functional_bootstrap.py
index fe622c908b44ed28a5c91ca8b35b8524511de388..341799c0224794bd32e0a81a02c593bd1173eca1 100644
--- a/src/tests/p4-fwd-l1/tests/test_functional_bootstrap.py
+++ b/src/tests/p4-fwd-l1/tests/test_functional_bootstrap.py
@@ -14,14 +14,9 @@
 
 import copy, logging, pytest
 from common.Settings import get_setting
-from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events
 from common.tools.object_factory.Context import json_context_id
-from common.tools.object_factory.Device import json_device_id
-from common.tools.object_factory.Link import json_link_id
-from common.tools.object_factory.Topology import json_topology_id
 from context.client.ContextClient import ContextClient
-from context.client.EventsCollector import EventsCollector
-from common.proto.context_pb2 import ConfigActionEnum, Context, ContextId, Device, Empty, Link, Topology, DeviceOperationalStatusEnum
+from common.proto.context_pb2 import Context, ContextId, Device, Empty, Link, Topology, DeviceOperationalStatusEnum
 from device.client.DeviceClient import DeviceClient
 from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES
 
diff --git a/src/tests/p4-fwd-l1/tests/test_functional_cleanup.py b/src/tests/p4-fwd-l1/tests/test_functional_cleanup.py
index 67934ff8a78f79252ef4b6994c3b628a8275c503..0b44f794d7201f49034c536c8988798ac9b44bc7 100644
--- a/src/tests/p4-fwd-l1/tests/test_functional_cleanup.py
+++ b/src/tests/p4-fwd-l1/tests/test_functional_cleanup.py
@@ -12,18 +12,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import copy, logging, pytest
+import logging, pytest
 from common.Settings import get_setting
-from common.tests.EventTools import EVENT_REMOVE, check_events
 from common.tools.object_factory.Context import json_context_id
-from common.tools.object_factory.Device import json_device_id
-from common.tools.object_factory.Link import json_link_id
-from common.tools.object_factory.Topology import json_topology_id
 from context.client.ContextClient import ContextClient
-from context.client.EventsCollector import EventsCollector
-from common.proto.context_pb2 import ConfigActionEnum, ContextId, Device, DeviceId, Empty, Link, LinkId, TopologyId, DeviceOperationalStatusEnum
+from common.proto.context_pb2 import ContextId, DeviceId, Empty, LinkId, TopologyId
 from device.client.DeviceClient import DeviceClient
-from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES
+from .Objects import CONTEXTS, DEVICES, LINKS, TOPOLOGIES
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.DEBUG)
diff --git a/src/tests/p4-fwd-l1/tests/test_functional_create_service.py b/src/tests/p4-fwd-l1/tests/test_functional_create_service.py
index 9f82da129e159f02d40ee57b890409b0a5685b75..ee714c4774e417a9afb84554d4dc99fe57d96863 100644
--- a/src/tests/p4-fwd-l1/tests/test_functional_create_service.py
+++ b/src/tests/p4-fwd-l1/tests/test_functional_create_service.py
@@ -14,24 +14,16 @@
 
 import copy, logging, pytest
 from common.Settings import get_setting
-from common.tests.EventTools import EVENT_CREATE, EVENT_UPDATE, check_events
-from common.tools.object_factory.Context import json_context_id
-from common.tools.object_factory.Device import json_device_id
-from common.tools.object_factory.Service import json_service_id
-from common.tools.object_factory.Link import json_link_id
-from common.tools.object_factory.Topology import json_topology_id
 from context.client.ContextClient import ContextClient
-from context.client.EventsCollector import EventsCollector
-from common.proto.context_pb2 import Context, ContextId, Device, Empty, Link, Topology, Service, ServiceId
+from common.proto.context_pb2 import Service
 from device.client.DeviceClient import DeviceClient
 from service.client.ServiceClient import ServiceClient
-from tests.p4.tests.Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES, SERVICES
-from common.proto.context_pb2 import ConfigActionEnum, Device, DeviceId,\
-    DeviceOperationalStatusEnum
+from tests.p4.tests.Objects import SERVICES
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.DEBUG)
 
+
 @pytest.fixture(scope='session')
 def context_client():
     _client = ContextClient(get_setting('CONTEXTSERVICE_SERVICE_HOST'), get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC'))
diff --git a/src/tests/p4-fwd-l1/tests/test_functional_delete_service.py b/src/tests/p4-fwd-l1/tests/test_functional_delete_service.py
index 98b6a01c1be2a00003b3be267839a4513967d4f7..439a88efd3f72dbd1389d9d47494fa891ff2b2d2 100644
--- a/src/tests/p4-fwd-l1/tests/test_functional_delete_service.py
+++ b/src/tests/p4-fwd-l1/tests/test_functional_delete_service.py
@@ -14,18 +14,12 @@
 
 import copy, logging, pytest
 from common.Settings import get_setting
-from common.tests.EventTools import EVENT_REMOVE, check_events
-from common.tools.object_factory.Context import json_context_id
-from common.tools.object_factory.Device import json_device_id
 from common.tools.object_factory.Service import json_service_id
-from common.tools.object_factory.Link import json_link_id
-from common.tools.object_factory.Topology import json_topology_id
 from context.client.ContextClient import ContextClient
-from context.client.EventsCollector import EventsCollector
-from common.proto.context_pb2 import ConfigActionEnum, ContextId, Device, DeviceId, Empty, LinkId, TopologyId, Service, ServiceId, DeviceOperationalStatusEnum
+from common.proto.context_pb2 import ServiceId
 from device.client.DeviceClient import DeviceClient
 from service.client.ServiceClient import ServiceClient
-from .Objects import CONTEXT_ID, CONTEXTS, DEVICES, LINKS, TOPOLOGIES, SERVICES
+from .Objects import CONTEXT_ID, SERVICES
 
 LOGGER = logging.getLogger(__name__)
 LOGGER.setLevel(logging.DEBUG)
diff --git a/src/tests/p4-int-routing-acl/README.md b/src/tests/p4-int-routing-acl/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..fa935e1b2eae2decb0e852ebd72b752c3d67ca28
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/README.md
@@ -0,0 +1,129 @@
+# Tests for P4 routing, ACL, and In-Band Network Telemetry functions
+
+This directory contains the necessary scripts and configurations to run tests atop a Stratum-based P4 whitebox that performs a set of network functions, including routing, access control list (ACL), and In-Band Network Telemetry (INT).
+
+## Prerequisites
+
+You need Python3, which should already be installed while preparing for a TFS build.
+Additionally, `pytest` is also mandatory as it is used by our tests below.
+Aliasing python with python3 will also help bridging issues between older and newer python versions.
+
+```shell
+alias python='python3'
+pip3 install pytest
+pip3 install grpclib protobuf
+pip3 install grpcio-tools
+```
+
+The versions used for this test are:
+- `protobuf` 3.20.3
+- `grpclib` 0.4.4
+- `grpcio` 1.47.5
+- `grpcio-tools` 1.47.5
+
+After the installation of `grpclib`, protoc-gen-grpclib_python binary is in /home/$USER/.local/bin/
+First we copy it to /usr/local/bin/:
+
+```shell
+  sudo cp /home/$USER/.local/bin/protoc-gen-grpclib_python /usr/local/bin/
+```
+
+Then, we include this path to the PYTHONPATH:
+```shell
+export PYTHONPATH="${PYTHONPATH}:/usr/local/bin/protoc-gen-grpclib_python"
+```
+
+
+You need to build and deploy a software-based Stratum switch, before being able to use TFS to control it.
+To do so, follow the instructions in the `./topology` folder.
+
+## Steps to setup and run a TFS program atop Stratum
+
+To conduct this test, follow the steps below.
+
+### TFS re-deploy
+
+```shell
+cd ~/tfs-ctrl/
+source my_deploy.sh && source tfs_runtime_env_vars.sh
+./deploy/all.sh
+```
+
+### Path setup
+
+Ensure that `PATH` variable contains the parent project directory, e.g., "home/$USER/tfs-ctrl".
+
+Ensure that `PYTHONPATH` variable contains the source code directory of TFS, e.g., "home/$USER/tfs-ctrl/src"
+
+## Topology setup
+
+In the `./topology/` directory there are scripts that allow to build Stratum on a target machine (e.g., a VM) and then deploy a P4 switch atop this machine.
+This test assumes a Stratum P4 switch with 2 network interfaces used as a data plane (routing traffic from one to another) as well as another network interface used to send telemetry information to an external telemetry collector.
+
+## P4 artifacts
+
+In the `./p4src/` directory there are compiled P4 artifacts of the pipeline that will be pushed to the P4 switch, along with the P4-runtime definitions.
+The `./setup.sh` script copies from this directory. If you need to change the P4 program, make sure to put the compiled artifacts there.
+
+## Tests
+
+The following tests are implemented.
+For each of these tests, an auxiliary bash script allows to run it with less typing.
+
+|                 Test                 |              Bash Runner           |                Purpose             |
+| ------------------------------------ | ---------------------------------- | ---------------------------------- |
+| -                                    | setup.sh                           | Copy P4 artifacts into the SBI pod |
+| test_functional_bootstrap.py         | run_test_01_bootstrap.sh           | Connect TFS to the P4 switch       |
+| test_functional_rules_provision.py   | run_test_02_rules_provision.sh     | Install rules on the P4 switch     |
+| test_functional_rules_deprovision.py | run_test_03_rules_deprovision.sh   | Uninstall rules from the P4 switch |
+| test_functional_cleanup.py           | run_test_04_cleanup.sh             | Disconnect TFS from the P4 switch  |
+
+Each of the tests above is described in detail below.
+
+### Step 1: Copy the necessary P4 artifacts into the TFS SBI service pod
+
+The setup script copies the necessary artifacts to the SBI service pod.
+It should be run just once, after a fresh install of TFS.
+If you `deploy/all.sh` again, you need to repeat this step.
+
+```shell
+cd ~/tfs-ctrl/
+source my_deploy.sh && source tfs_runtime_env_vars.sh
+bash src/tests/p4-int-routing-acl/setup.sh
+```
+
+### Step 2: Bootstrap topology
+
+The bootstrap script registers the context, topology, links, and devices to TFS.
+
+```shell
+cd ~/tfs-ctrl/
+bash src/tests/p4-int-routing-acl/run_test_01_bootstrap.sh
+```
+
+### Step 3: Provision rules via the SBI API
+
+Implement routing, ACL, and INT functions by installing P4 rules to the Stratum switch via the TFS SBI API.
+
+```shell
+cd ~/tfs-ctrl/
+bash src/tests/p4-int-routing-acl/run_test_02_rules_provision.sh
+```
+
+### Step 4: Deprovision rules via the SBI API
+
+Deprovision the routing, ACL, and INT network functions by removing the previously installed P4 rules (via the TFS SBI API) from the Stratum switch.
+
+```shell
+cd ~/tfs-ctrl/
+bash src/tests/p4-int-routing-acl/run_test_03_rules_deprovision.sh
+```
+
+### Step 4: Deprovision topology
+
+Delete all the objects (context, topology, links, devices) from TFS:
+
+```shell
+cd ~/tfs-ctrl/
+bash src/tests/p4-int-routing-acl/run_test_04_cleanup.sh
+```
diff --git a/src/tests/p4-int-routing-acl/__init__.py b/src/tests/p4-int-routing-acl/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..023830645e0fcb60e3f8583674a954810af222f2
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/__init__.py
@@ -0,0 +1,13 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-acl.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-acl.json
new file mode 100644
index 0000000000000000000000000000000000000000..97a548983f29c7af8c1da21fda5ab09b45a940aa
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-acl.json
@@ -0,0 +1,39 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.acl.acl[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.acl.acl",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "l4_dport",
+										"match-value": "8080"
+									}
+								],
+								"action-name": "FabricIngress.acl.drop",
+								"action-params": [],
+								"priority": 1
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b1.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b1.json
new file mode 100644
index 0000000000000000000000000000000000000000..3fc9a71732aef424b85c9b91b255083b3e1badbb
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b1.json
@@ -0,0 +1,136 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.int_watchlist.watchlist[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.int_watchlist.watchlist",
+								"match-fields": [
+									{
+										"match-field": "ipv4_valid",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.int_watchlist.mark_to_report",
+								"action-params": [],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "510"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "3"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[1]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "510"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "510"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "2"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.int_watchlist.watchlist[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.int_watchlist.watchlist",
+								"match-fields": [
+									{
+										"match-field": "ipv4_valid",
+										"match-value": "1"
+									},
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.10.10.41&&&0xFFFFFFFF"
+									}
+								],
+								"action-name": "FabricIngress.int_watchlist.no_report_collector",
+								"action-params": [],
+								"priority": 10
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b2.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b2.json
new file mode 100644
index 0000000000000000000000000000000000000000..e6b5a8ea8590586b2aeee46eb9b736b1e27ba35e
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b2.json
@@ -0,0 +1,269 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[1]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "4"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "0"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[2]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[3]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[4]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "5"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "0"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[5]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[6]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b3.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b3.json
new file mode 100644
index 0000000000000000000000000000000000000000..f8d2c71830d3ef55ea8ffd97e3557fc9d8cc6315
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-int-b3.json
@@ -0,0 +1,212 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "3"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "3"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[2]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:fb:cf:96"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "3"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "3"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.10.10.41/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "3"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "3"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:93:8c:c0"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:fb:cf:96"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/clone_sessions/clone_session[1]",
+							"resource_value": {
+								"session-id": 506,
+								"replicas": [
+									{
+										"egress-port": 510,
+										"instance": 0
+									}
+								]
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-corp.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-corp.json
new file mode 100644
index 0000000000000000000000000000000000000000..0fe8b5036f8446f65e8fca85ddeea97cd6ed8cd0
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-corp.json
@@ -0,0 +1,197 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "2"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "2"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[4]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:e2:af:28"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "2"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[5]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "2"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "172.16.10.9/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "2"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[6]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "2"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:9b:cb:a1"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:e2:af:28"
+									}
+								]
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-edge.json b/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-edge.json
new file mode 100644
index 0000000000000000000000000000000000000000..c48d9d31e2b36dd1710ab53d51280759e82cca1c
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-insert-routing-edge.json
@@ -0,0 +1,197 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[3]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:58:92:ba"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "1"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.158.72.25/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_SET",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "1"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:e2:af:28"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:58:92:ba"
+									}
+								]
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
diff --git a/src/tests/p4-int-routing-acl/descriptors/rules-remove.json b/src/tests/p4-int-routing-acl/descriptors/rules-remove.json
new file mode 100644
index 0000000000000000000000000000000000000000..68132e9e6ec09435cfcbaae16a9c2287e9c649b5
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/rules-remove.json
@@ -0,0 +1,965 @@
+{
+	"devices": [
+		{
+			"device_id": {
+				"device_uuid": {
+					"uuid": "p4-sw1"
+				}
+			},
+			"name": "p4-sw1",
+			"device_operational_status": "DEVICEOPERATIONALSTATUS_ENABLED",
+			"device_config": {
+				"config_rules": [
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.int_watchlist.watchlist[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.int_watchlist.watchlist",
+								"match-fields": [
+									{
+										"match-field": "ipv4_valid",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.int_watchlist.mark_to_report",
+								"action-params": [],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "510"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "3"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[1]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "510"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "510"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "2"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[1]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "4"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "0"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[2]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[3]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[4]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "5"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "0"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "4"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_drop_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[5]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.int_egress.report[6]",
+							"resource_value": {
+								"table-name": "FabricEgress.int_egress.report",
+								"match-fields": [
+									{
+										"match-field": "bmd_type",
+										"match-value": "2"
+									},
+									{
+										"match-field": "mirror_type",
+										"match-value": "1"
+									},
+									{
+										"match-field": "int_report_type",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricEgress.int_egress.do_local_report_encap",
+								"action-params": [
+									{
+										"action-param": "src_ip",
+										"action-value": "10.10.10.120"
+									},
+									{
+										"action-param": "mon_ip",
+										"action-value": "10.10.10.41"
+									},
+									{
+										"action-param": "mon_port",
+										"action-value": "32766"
+									},
+									{
+										"action-param": "switch_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.int_watchlist.watchlist[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.int_watchlist.watchlist",
+								"match-fields": [
+									{
+										"match-field": "ipv4_valid",
+										"match-value": "1"
+									},
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.10.10.41&&&0xFFFFFFFF"
+									}
+								],
+								"action-name": "FabricIngress.int_watchlist.no_report_collector",
+								"action-params": [],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "3"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "3"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[2]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:fb:cf:96"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "3"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "3"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.10.10.41/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "3"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "3"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "3"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:93:8c:c0"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:fb:cf:96"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/clone_sessions/clone_session[1]",
+							"resource_value": {
+								"session-id": 506,
+								"replicas": [
+									{
+										"egress-port": 510,
+										"instance": 0
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[3]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:58:92:ba"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "1"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[2]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "10.158.72.25/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "1"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "1"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "1"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:e2:af:28"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:58:92:ba"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.ingress_port_vlan[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.ingress_port_vlan",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "2"
+									},
+									{
+										"match-field": "vlan_is_valid",
+										"match-value": "0"
+									}
+								],
+								"action-name": "FabricIngress.filtering.permit_with_internal_vlan",
+								"action-params": [
+									{
+										"action-param": "vlan_id",
+										"action-value": "4094"
+									},
+									{
+										"action-param": "port_type",
+										"action-value": "1"
+									}
+								],
+								"priority": 10
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.filtering.fwd_classifier[4]",
+							"resource_value": {
+								"table-name": "FabricIngress.filtering.fwd_classifier",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "2"
+									},
+									{
+										"match-field": "ip_eth_type",
+										"match-value": "0x0800"
+									}
+								],
+								"action-name": "FabricIngress.filtering.set_forwarding_type",
+								"action-params": [
+									{
+										"action-param": "fwd_type",
+										"action-value": "0"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricEgress.egress_next.egress_vlan[4]",
+							"resource_value": {
+								"table-name": "FabricEgress.egress_next.egress_vlan",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eg_port",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricEgress.egress_next.pop_vlan",
+								"action-params": []
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.bridging[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.bridging",
+								"match-fields": [
+									{
+										"match-field": "vlan_id",
+										"match-value": "4094"
+									},
+									{
+										"match-field": "eth_dst",
+										"match-value": "fa:16:3e:e2:af:28"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_bridging",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "2"
+									}
+								],
+								"priority": 1
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[5]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricIngress.next.output_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "2"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.forwarding.routing_v4[3]",
+							"resource_value": {
+								"table-name": "FabricIngress.forwarding.routing_v4",
+								"match-fields": [
+									{
+										"match-field": "ipv4_dst",
+										"match-value": "172.16.10.9/32"
+									}
+								],
+								"action-name": "FabricIngress.forwarding.set_next_id_routing_v4",
+								"action-params": [
+									{
+										"action-param": "next_id",
+										"action-value": "2"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.next.simple[6]",
+							"resource_value": {
+								"table-name": "FabricIngress.next.simple",
+								"match-fields": [
+									{
+										"match-field": "next_id",
+										"match-value": "2"
+									}
+								],
+								"action-name": "FabricIngress.next.routing_simple",
+								"action-params": [
+									{
+										"action-param": "port_num",
+										"action-value": "2"
+									},
+									{
+										"action-param": "smac",
+										"action-value": "fa:16:3e:9b:cb:a1"
+									},
+									{
+										"action-param": "dmac",
+										"action-value": "fa:16:3e:e2:af:28"
+									}
+								]
+							}
+						}
+					},
+					{
+						"action": "CONFIGACTION_DELETE",
+						"custom": {
+							"resource_key": "/tables/table/FabricIngress.acl.acl[1]",
+							"resource_value": {
+								"table-name": "FabricIngress.acl.acl",
+								"match-fields": [
+									{
+										"match-field": "ig_port",
+										"match-value": "1"
+									},
+									{
+										"match-field": "l4_dport",
+										"match-value": "8080"
+									}
+								],
+								"action-name": "FabricIngress.acl.drop",
+								"action-params": [],
+								"priority": 1
+							}
+						}
+					}
+				]
+			}
+		}
+	]
+}
\ No newline at end of file
diff --git a/src/tests/p4-int-routing-acl/descriptors/topology.json b/src/tests/p4-int-routing-acl/descriptors/topology.json
new file mode 100644
index 0000000000000000000000000000000000000000..3b1f6e410cc5a2adc1c99b6208523fd9a9971fe7
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/descriptors/topology.json
@@ -0,0 +1,288 @@
+{
+    "contexts": [
+        {
+            "context_id": {
+                "context_uuid": {
+                    "uuid": "admin"
+                }
+            }
+        }
+    ],
+    "topologies": [
+        {
+            "topology_id": {
+                "context_id": {
+                    "context_uuid": {
+                        "uuid": "admin"
+                    }
+                },
+                "topology_uuid": {
+                    "uuid": "admin"
+                }
+            }
+        }
+    ],
+    "devices": [
+        {
+            "device_id": {
+                "device_uuid": {
+                    "uuid": "edge-net"
+                }
+            },
+            "device_type": "network",
+            "device_drivers": [
+                "DEVICEDRIVER_UNDEFINED"
+            ],
+            "device_config": {
+                "config_rules": [
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/address",
+                            "resource_value": "127.0.0.1"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/port",
+                            "resource_value": "0"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/settings",
+                            "resource_value": {
+                                "endpoints": [
+                                    {
+                                        "uuid": "eth1",
+                                        "type": "copper"
+                                    }
+                                ]
+                            }
+                        }
+                    }
+                ]
+            }
+        },
+        {
+            "device_id": {
+                "device_uuid": {
+                    "uuid": "corporate-net"
+                }
+            },
+            "device_type": "network",
+            "device_drivers": [
+                "DEVICEDRIVER_UNDEFINED"
+            ],
+            "device_config": {
+                "config_rules": [
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/address",
+                            "resource_value": "127.0.0.1"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/port",
+                            "resource_value": "0"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/settings",
+                            "resource_value": {
+                                "endpoints": [
+                                    {
+                                        "uuid": "eth1",
+                                        "type": "copper"
+                                    }
+                                ]
+                            }
+                        }
+                    }
+                ]
+            }
+        },
+        {
+            "device_id": {
+                "device_uuid": {
+                    "uuid": "p4-sw1"
+                }
+            },
+            "device_type": "p4-switch",
+            "device_drivers": [
+                "DEVICEDRIVER_P4"
+            ],
+            "device_operational_status": "DEVICEOPERATIONALSTATUS_DISABLED",
+            "name": "p4-sw1",
+            "device_config": {
+                "config_rules": [
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/address",
+                            "resource_value": "10.10.10.120"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/port",
+                            "resource_value": "50001"
+                        }
+                    },
+                    {
+                        "action": "CONFIGACTION_SET",
+                        "custom": {
+                            "resource_key": "_connect/settings",
+                            "resource_value": {
+                                "id": 1,
+                                "name": "p4-sw1",
+                                "vendor": "Open Networking Foundation",
+                                "hw_ver": "BMv2 simple_switch",
+                                "sw_ver": "Stratum",
+                                "p4bin": "/root/p4/bmv2.json",
+                                "p4info": "/root/p4/p4info.txt",
+                                "timeout": 60,
+                                "endpoints": [
+                                    {
+                                        "uuid": "1",
+                                        "type": "port"
+                                    },
+                                    {
+                                        "uuid": "2",
+                                        "type": "port"
+                                    }
+                                ]
+                            }
+                        }
+                    }
+                ]
+            }
+        }
+    ],
+    "links": [
+        {
+            "link_id": {
+                "link_uuid": {
+                    "uuid": "p4-sw1/1==edge-net/eth1"
+                }
+            },
+            "link_endpoint_ids": [
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "p4-sw1"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "1"
+                    }
+                },
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "edge-net"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "eth1"
+                    }
+                }
+            ]
+        },
+        {
+            "link_id": {
+                "link_uuid": {
+                    "uuid": "edge-net/eth1==p4-sw1/1"
+                }
+            },
+            "link_endpoint_ids": [
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "edge-net"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "eth1"
+                    }
+                },
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "p4-sw1"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "1"
+                    }
+                }
+            ]
+        },
+        {
+            "link_id": {
+                "link_uuid": {
+                    "uuid": "p4-sw1/2==corporate-net/eth1"
+                }
+            },
+            "link_endpoint_ids": [
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "p4-sw1"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "2"
+                    }
+                },
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "corporate-net"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "eth1"
+                    }
+                }
+            ]
+        },
+        {
+            "link_id": {
+                "link_uuid": {
+                    "uuid": "corporate-net/eth1==p4-sw1/2"
+                }
+            },
+            "link_endpoint_ids": [
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "corporate-net"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "eth1"
+                    }
+                },
+                {
+                    "device_id": {
+                        "device_uuid": {
+                            "uuid": "p4-sw1"
+                        }
+                    },
+                    "endpoint_uuid": {
+                        "uuid": "2"
+                    }
+                }
+            ]
+        }
+    ]
+}
diff --git a/src/tests/p4-int-routing-acl/p4src/README.md b/src/tests/p4-int-routing-acl/p4src/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..07e34066fbc19fb3f1778a64c65723513b8081df
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/p4src/README.md
@@ -0,0 +1,24 @@
+# P4 Sources
+
+We employ the P4 sources from the [fabric-tna](https://github.com/stratum/fabric-tna/tree/main) project.
+
+To compile a relevant P4 target binary and P4 info file, do:
+
+```shell
+git clone https://github.com/stratum/fabric-tna.git
+
+cd ./fabric-tna
+
+make fabric-int-v1model
+```
+
+At this point, a relevant `build.sh` script is being run and a P4 program is being compiled.
+
+After a successful compilation, some artifacts (p4info.txt, bmv2.json) will be generated and placed into `build` sub-folder.
+
+```shell
+ls build/fabric-int/bmv2 
+_pp.p4     bmv2.json  p4info.txt
+```
+
+These artefacts are now moved into this repository.
diff --git a/src/tests/p4-int-routing-acl/p4src/_pp.p4 b/src/tests/p4-int-routing-acl/p4src/_pp.p4
new file mode 100644
index 0000000000000000000000000000000000000000..1b2b718a1e96f807e1da6139ababf9e71a881cd0
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/p4src/_pp.p4
@@ -0,0 +1,2037 @@
+error {
+    PacketRejectedByParser
+}
+#include <core.p4>
+#define V1MODEL_VERSION 20180101
+#include <v1model.p4>
+
+typedef bit<9> PortId_t;
+typedef bit<16> MulticastGroupId_t;
+typedef bit<5> QueueId_t;
+typedef bit<10> MirrorId_t;
+typedef bit<16> ReplicationId_t;
+enum bit<2> MeterColor_t {
+    GREEN = 0,
+    YELLOW = 1,
+    RED = 2
+}
+
+typedef bit<1> BOOL;
+typedef bit<8> FieldListIndex_t;
+const PortId_t BMV2_DROP_PORT = 511;
+const PortId_t FAKE_V1MODEL_RECIRC_PORT = 510;
+const FieldListIndex_t PRESERVE_INT_MD = 241;
+const FieldListIndex_t PRESERVE_INGRESS_PORT = 231;
+const FieldListIndex_t NO_PRESERVATION = 0;
+typedef bit<3> fwd_type_t;
+typedef bit<32> next_id_t;
+typedef bit<20> mpls_label_t;
+typedef bit<48> mac_addr_t;
+typedef bit<12> vlan_id_t;
+typedef bit<32> ipv4_addr_t;
+typedef bit<16> l4_port_t;
+typedef bit<32> flow_hash_t;
+typedef bit<4> slice_id_t;
+typedef bit<2> tc_t;
+typedef bit<(4 + 2)> slice_tc_t;
+type bit<9> FabricPortId_t;
+const bit<8> DEFAULT_APP_ID = 0;
+const slice_id_t DEFAULT_SLICE_ID = 0;
+const tc_t DEFAULT_TC = 0;
+const QueueId_t QUEUE_ID_BEST_EFFORT = 0;
+typedef bit<32> teid_t;
+typedef bit<12> upf_ctr_idx_t;
+typedef bit<8> tun_peer_id_t;
+typedef bit<32> ue_session_id_t;
+typedef bit<15> session_meter_idx_t;
+typedef bit<15> app_meter_idx_t;
+const session_meter_idx_t DEFAULT_SESSION_METER_IDX = 0;
+const app_meter_idx_t DEFAULT_APP_METER_IDX = 0;
+enum bit<2> EncapPresence {
+    NONE = 0x0,
+    GTPU_ONLY = 0x1,
+    GTPU_WITH_PSC = 0x2,
+    VXLAN = 0x3
+}
+
+const bit<16> GTPU_UDP_PORT = 2152;
+const bit<3> GTP_V1 = 3w1;
+const bit<8> GTPU_GPDU = 0xff;
+const bit<1> GTP_PROTOCOL_TYPE_GTP = 1w1;
+const bit<8> GTPU_NEXT_EXT_NONE = 0x0;
+const bit<8> GTPU_NEXT_EXT_PSC = 0x85;
+const bit<4> GTPU_EXT_PSC_TYPE_DL = 4w0;
+const bit<4> GTPU_EXT_PSC_TYPE_UL = 4w1;
+const bit<8> GTPU_EXT_PSC_LEN = 8w1;
+enum bit<2> PortType_t {
+    UNKNOWN = 0x0,
+    EDGE = 0x1,
+    INFRA = 0x2,
+    INTERNAL = 0x3
+}
+
+const bit<16> ETHERTYPE_QINQ = 0x88a8;
+const bit<16> ETHERTYPE_QINQ_NON_STD = 0x9100;
+const bit<16> ETHERTYPE_VLAN = 0x8100;
+const bit<16> ETHERTYPE_MPLS = 0x8847;
+const bit<16> ETHERTYPE_MPLS_MULTICAST = 0x8848;
+const bit<16> ETHERTYPE_IPV4 = 0x800;
+const bit<16> ETHERTYPE_IPV6 = 0x86dd;
+const bit<16> ETHERTYPE_ARP = 0x806;
+const bit<16> ETHERTYPE_PPPOED = 0x8863;
+const bit<16> ETHERTYPE_PPPOES = 0x8864;
+const bit<16> ETHERTYPE_PACKET_OUT = 0xbf01;
+const bit<16> ETHERTYPE_CPU_LOOPBACK_INGRESS = 0xbf02;
+const bit<16> ETHERTYPE_CPU_LOOPBACK_EGRESS = 0xbf03;
+const bit<16> ETHERTYPE_INT_WIP_IPV4 = 0xbf04;
+const bit<16> ETHERTYPE_INT_WIP_MPLS = 0xbf05;
+const bit<16> PPPOE_PROTOCOL_IP4 = 0x21;
+const bit<16> PPPOE_PROTOCOL_IP6 = 0x57;
+const bit<16> PPPOE_PROTOCOL_MPLS = 0x281;
+const bit<8> PROTO_ICMP = 1;
+const bit<8> PROTO_TCP = 6;
+const bit<8> PROTO_UDP = 17;
+const bit<8> PROTO_ICMPV6 = 58;
+const bit<4> IPV4_MIN_IHL = 5;
+const fwd_type_t FWD_BRIDGING = 0;
+const fwd_type_t FWD_MPLS = 1;
+const fwd_type_t FWD_IPV4_UNICAST = 2;
+const fwd_type_t FWD_IPV4_MULTICAST = 3;
+const fwd_type_t FWD_IPV6_UNICAST = 4;
+const fwd_type_t FWD_IPV6_MULTICAST = 5;
+const fwd_type_t FWD_UNKNOWN = 7;
+const vlan_id_t DEFAULT_VLAN_ID = 12w4094;
+const bit<8> DEFAULT_MPLS_TTL = 64;
+const bit<8> DEFAULT_IPV4_TTL = 64;
+const bit<16> VXLAN_UDP_PORT = 4789;
+const bit<7> RECIRC_PORT_NUMBER = 7w68;
+action nop() {
+    NoAction();
+}
+enum bit<8> BridgedMdType_t {
+    INVALID = 0,
+    INGRESS_TO_EGRESS = 1,
+    EGRESS_MIRROR = 2,
+    INGRESS_MIRROR = 3,
+    INT_INGRESS_DROP = 4,
+    DEFLECTED = 5
+}
+
+enum bit<3> FabricMirrorType_t {
+    INVALID = 0,
+    INT_REPORT = 1,
+    PACKET_IN = 2
+}
+
+const MirrorId_t PACKET_IN_MIRROR_SESSION_ID = 0x1ff;
+enum bit<2> CpuLoopbackMode_t {
+    DISABLED = 0,
+    DIRECT = 1,
+    INGRESS = 2
+}
+
+const bit<4> NPROTO_ETHERNET = 0;
+const bit<4> NPROTO_TELEMETRY_DROP_HEADER = 1;
+const bit<4> NPROTO_TELEMETRY_SWITCH_LOCAL_HEADER = 2;
+const bit<16> REPORT_FIXED_HEADER_BYTES = 12;
+const bit<16> DROP_REPORT_HEADER_BYTES = 12;
+const bit<16> LOCAL_REPORT_HEADER_BYTES = 16;
+const bit<8> INT_MIRROR_SESSION_BASE = 0x80;
+const bit<10> V1MODEL_INT_MIRROR_SESSION = 0x1fa;
+typedef bit<16> flow_report_filter_index_t;
+typedef bit<16> drop_report_filter_index_t;
+typedef bit<12> queue_report_filter_index_t;
+typedef bit<16> queue_report_quota_t;
+typedef bit<3> IntReportType_t;
+const IntReportType_t INT_REPORT_TYPE_NO_REPORT = 0;
+const IntReportType_t INT_REPORT_TYPE_DROP = 4;
+const IntReportType_t INT_REPORT_TYPE_QUEUE = 2;
+const IntReportType_t INT_REPORT_TYPE_FLOW = 1;
+typedef bit<8> IntWipType_t;
+const IntWipType_t INT_IS_NOT_WIP = 0;
+const IntWipType_t INT_IS_WIP = 1;
+const IntWipType_t INT_IS_WIP_WITH_MPLS = 2;
+const bit<16> INT_WIP_ADJUST_IP_BYTES = 14 - 1 ^ 0xffff;
+const bit<16> INT_WIP_ADJUST_UDP_BYTES = INT_WIP_ADJUST_IP_BYTES - 20;
+const bit<16> INT_WIP_ADJUST_IP_MPLS_BYTES = INT_WIP_ADJUST_IP_BYTES - 4;
+const bit<16> INT_WIP_ADJUST_UDP_MPLS_BYTES = INT_WIP_ADJUST_UDP_BYTES - 4;
+enum bit<8> IntDropReason_t {
+    DROP_REASON_UNKNOWN = 0,
+    DROP_REASON_IP_TTL_ZERO = 26,
+    DROP_REASON_ROUTING_V4_MISS = 29,
+    DROP_REASON_ROUTING_V6_MISS = 29,
+    DROP_REASON_PORT_VLAN_MAPPING_MISS = 55,
+    DROP_REASON_TRAFFIC_MANAGER = 71,
+    DROP_REASON_ACL_DENY = 80,
+    DROP_REASON_BRIDGING_MISS = 89,
+    DROP_REASON_NEXT_ID_MISS = 128,
+    DROP_REASON_MPLS_MISS = 129,
+    DROP_REASON_EGRESS_NEXT_MISS = 130,
+    DROP_REASON_MPLS_TTL_ZERO = 131,
+    DROP_REASON_UPF_DL_SESSION_MISS = 132,
+    DROP_REASON_UPF_DL_SESSION_DROP = 133,
+    DROP_REASON_UPF_UL_SESSION_MISS = 134,
+    DROP_REASON_UPF_UL_SESSION_DROP = 135,
+    DROP_REASON_UPF_DL_SESSION_DROP_BUFF = 136,
+    DROP_REASON_UPF_DL_TERMINATION_MISS = 137,
+    DROP_REASON_UPF_DL_TERMINATION_DROP = 138,
+    DROP_REASON_UPF_UL_TERMINATION_MISS = 139,
+    DROP_REASON_UPF_UL_TERMINATION_DROP = 140,
+    DROP_REASON_UPF_UPLINK_RECIRC_DENY = 150,
+    DROP_REASON_INGRESS_QOS_METER = 160,
+    DROP_REASON_ROUTING_V4_DROP = 170,
+    DROP_REASON_ROUTING_V6_DROP = 171
+}
+
+@controller_header("packet_in") header packet_in_header_t {
+    FabricPortId_t ingress_port;
+    bit<7>         _pad0;
+}
+
+@controller_header("packet_out") header packet_out_header_t {
+    @padding 
+    bit<7>            pad0;
+    FabricPortId_t    egress_port;
+    @padding 
+    bit<3>            pad1;
+    QueueId_t         queue_id;
+    @padding 
+    bit<5>            pad2;
+    CpuLoopbackMode_t cpu_loopback_mode;
+    bit<1>            do_forwarding;
+    @padding 
+    bit<16>           pad3;
+    @padding 
+    bit<48>           pad4;
+    bit<16>           ether_type;
+}
+
+header ethernet_t {
+    mac_addr_t dst_addr;
+    mac_addr_t src_addr;
+}
+
+header eth_type_t {
+    bit<16> value;
+}
+
+header vlan_tag_t {
+    bit<16>   eth_type;
+    bit<3>    pri;
+    bit<1>    cfi;
+    vlan_id_t vlan_id;
+}
+
+header mpls_t {
+    mpls_label_t label;
+    bit<3>       tc;
+    bit<1>       bos;
+    bit<8>       ttl;
+}
+
+header pppoe_t {
+    bit<4>  version;
+    bit<4>  type_id;
+    bit<8>  code;
+    bit<16> session_id;
+    bit<16> length;
+    bit<16> protocol;
+}
+
+header ipv4_t {
+    bit<4>  version;
+    bit<4>  ihl;
+    bit<6>  dscp;
+    bit<2>  ecn;
+    bit<16> total_len;
+    bit<16> identification;
+    bit<3>  flags;
+    bit<13> frag_offset;
+    bit<8>  ttl;
+    bit<8>  protocol;
+    bit<16> hdr_checksum;
+    bit<32> src_addr;
+    bit<32> dst_addr;
+}
+
+header ipv6_t {
+    bit<4>   version;
+    bit<8>   traffic_class;
+    bit<20>  flow_label;
+    bit<16>  payload_len;
+    bit<8>   next_hdr;
+    bit<8>   hop_limit;
+    bit<128> src_addr;
+    bit<128> dst_addr;
+}
+
+header tcp_t {
+    bit<16> sport;
+    bit<16> dport;
+}
+
+header udp_t {
+    bit<16> sport;
+    bit<16> dport;
+    bit<16> len;
+    bit<16> checksum;
+}
+
+header icmp_t {
+    bit<8> icmp_type;
+    bit<8> icmp_code;
+}
+
+header vxlan_t {
+    bit<8>  flags;
+    bit<24> reserved;
+    bit<24> vni;
+    bit<8>  reserved_2;
+}
+
+header gtpu_t {
+    bit<3>  version;
+    bit<1>  pt;
+    bit<1>  spare;
+    bit<1>  ex_flag;
+    bit<1>  seq_flag;
+    bit<1>  npdu_flag;
+    bit<8>  msgtype;
+    bit<16> msglen;
+    teid_t  teid;
+}
+
+header gtpu_options_t {
+    bit<16> seq_num;
+    bit<8>  n_pdu_num;
+    bit<8>  next_ext;
+}
+
+header gtpu_ext_psc_t {
+    bit<8> len;
+    bit<4> type;
+    bit<4> spare0;
+    bit<1> ppp;
+    bit<1> rqi;
+    bit<6> qfi;
+    bit<8> next_ext;
+}
+
+@flexible struct upf_bridged_metadata_t {
+    tun_peer_id_t tun_peer_id;
+    upf_ctr_idx_t upf_ctr_id;
+    bit<6>        qfi;
+    bool          needs_gtpu_encap;
+    bool          skip_upf;
+    bool          skip_egress_upf_ctr;
+    teid_t        teid;
+    bit<4>        _pad;
+}
+
+@pa_no_overlay("egress" , "hdr.report_fixed_header.rsvd") header report_fixed_header_t {
+    bit<4>  ver;
+    bit<4>  nproto;
+    bit<3>  dqf;
+    bit<15> rsvd;
+    bit<6>  hw_id;
+    bit<32> seq_no;
+    bit<32> ig_tstamp;
+}
+
+@pa_container_size("egress" , "hdr.common_report_header.queue_id" , 8) @pa_container_size("egress" , "hdr.common_report_header.ig_port" , 16) @pa_container_size("egress" , "hdr.common_report_header.eg_port" , 16) @pa_no_overlay("egress" , "hdr.common_report_header.queue_id") @pa_no_overlay("egress" , "hdr.common_report_header.eg_port") header common_report_header_t {
+    bit<32> switch_id;
+    bit<7>  pad1;
+    bit<9>  ig_port;
+    bit<7>  pad2;
+    bit<9>  eg_port;
+    bit<3>  pad3;
+    bit<5>  queue_id;
+}
+
+header drop_report_header_t {
+    bit<8>  drop_reason;
+    @padding 
+    bit<16> pad;
+}
+
+header local_report_header_t {
+    bit<5>  pad1;
+    bit<19> queue_occupancy;
+    bit<32> eg_tstamp;
+}
+
+@pa_no_overlay("egress" , "fabric_md.int_report_md.bmd_type") @pa_no_overlay("egress" , "fabric_md.int_report_md.mirror_type") @pa_no_overlay("egress" , "fabric_md.int_report_md.ig_port") @pa_no_overlay("egress" , "fabric_md.int_report_md.eg_port") @pa_no_overlay("egress" , "fabric_md.int_report_md.queue_id") @pa_no_overlay("egress" , "fabric_md.int_report_md.queue_occupancy") @pa_no_overlay("egress" , "fabric_md.int_report_md.ig_tstamp") @pa_no_overlay("egress" , "fabric_md.int_report_md.eg_tstamp") @pa_no_overlay("egress" , "fabric_md.int_report_md.drop_reason") @pa_no_overlay("egress" , "fabric_md.int_report_md.ip_eth_type") @pa_no_overlay("egress" , "fabric_md.int_report_md.report_type") @pa_no_overlay("egress" , "fabric_md.int_report_md.flow_hash") @pa_no_overlay("egress" , "fabric_md.int_report_md.encap_presence") header int_report_metadata_t {
+    BridgedMdType_t    bmd_type;
+    @padding 
+    bit<5>             _pad0;
+    FabricMirrorType_t mirror_type;
+    @padding 
+    bit<7>             _pad1;
+    bit<9>             ig_port;
+    @padding 
+    bit<7>             _pad2;
+    bit<9>             eg_port;
+    @padding 
+    bit<3>             _pad3;
+    bit<5>             queue_id;
+    @padding 
+    bit<5>             _pad4;
+    bit<19>            queue_occupancy;
+    bit<32>            ig_tstamp;
+    bit<32>            eg_tstamp;
+    bit<8>             drop_reason;
+    bit<16>            ip_eth_type;
+    @padding 
+    bit<6>             _pad5;
+    EncapPresence      encap_presence;
+    bit<3>             report_type;
+    @padding 
+    bit<5>             _pad6;
+    flow_hash_t        flow_hash;
+}
+
+@flexible struct int_bridged_metadata_t {
+    bit<3>          report_type;
+    MirrorId_t      mirror_session_id;
+    IntDropReason_t drop_reason;
+    QueueId_t       queue_id;
+    PortId_t        egress_port;
+    IntWipType_t    wip_type;
+}
+
+struct int_metadata_t {
+    bit<32> hop_latency;
+    bit<48> timestamp;
+    bool    vlan_stripped;
+    bool    queue_report;
+}
+
+@flexible struct bridged_metadata_base_t {
+    flow_hash_t   inner_hash;
+    mpls_label_t  mpls_label;
+    PortId_t      ig_port;
+    bool          is_multicast;
+    fwd_type_t    fwd_type;
+    vlan_id_t     vlan_id;
+    EncapPresence encap_presence;
+    bit<8>        mpls_ttl;
+    bit<48>       ig_tstamp;
+    bit<16>       ip_eth_type;
+    bit<10>       stats_flow_id;
+    slice_tc_t    slice_tc;
+}
+
+header bridged_metadata_t {
+    BridgedMdType_t         bmd_type;
+    bridged_metadata_base_t base;
+    int_bridged_metadata_t  int_bmd;
+    bit<1>                  _pad0;
+    bit<5>                  _pad2;
+}
+
+struct lookup_metadata_t {
+    mac_addr_t eth_dst;
+    mac_addr_t eth_src;
+    bit<16>    eth_type;
+    vlan_id_t  vlan_id;
+    bool       is_ipv4;
+    bit<32>    ipv4_src;
+    bit<32>    ipv4_dst;
+    bit<8>     ip_proto;
+    l4_port_t  l4_sport;
+    l4_port_t  l4_dport;
+    bit<8>     icmp_type;
+    bit<8>     icmp_code;
+}
+
+struct common_mirror_metadata_t {
+    MirrorId_t      mirror_session_id;
+    BridgedMdType_t bmd_type;
+}
+
+@pa_auto_init_metadata struct fabric_ingress_metadata_t {
+    bridged_metadata_t       bridged;
+    flow_hash_t              ecmp_hash;
+    lookup_metadata_t        lkp;
+    bit<32>                  routing_ipv4_dst;
+    bool                     skip_forwarding;
+    bool                     skip_next;
+    next_id_t                next_id;
+    bool                     egress_port_set;
+    bool                     punt_to_cpu;
+    bool                     ipv4_checksum_err;
+    bool                     inner_ipv4_checksum_err;
+    slice_id_t               slice_id;
+    tc_t                     tc;
+    bool                     tc_unknown;
+    bool                     is_upf_hit;
+    slice_id_t               upf_slice_id;
+    tc_t                     upf_tc;
+    MeterColor_t             upf_meter_color;
+    PortType_t               ig_port_type;
+    common_mirror_metadata_t mirror;
+}
+
+header common_egress_metadata_t {
+    BridgedMdType_t    bmd_type;
+    @padding 
+    bit<5>             _pad;
+    FabricMirrorType_t mirror_type;
+}
+
+header packet_in_mirror_metadata_t {
+    BridgedMdType_t    bmd_type;
+    @padding 
+    bit<5>             _pad0;
+    FabricMirrorType_t mirror_type;
+    @padding 
+    bit<7>             _pad1;
+    PortId_t           ingress_port;
+}
+
+@pa_auto_init_metadata struct fabric_egress_metadata_t {
+    bridged_metadata_t    bridged;
+    PortId_t              cpu_port;
+    int_report_metadata_t int_report_md;
+    int_metadata_t        int_md;
+    bit<16>               int_ipv4_len;
+    bool                  is_int_recirc;
+    bit<16>               pkt_length;
+}
+
+header fake_ethernet_t {
+    @padding 
+    bit<48> _pad0;
+    @padding 
+    bit<48> _pad1;
+    bit<16> ether_type;
+}
+
+struct ingress_headers_t {
+    packet_out_header_t packet_out;
+    packet_in_header_t  packet_in;
+    fake_ethernet_t     fake_ethernet;
+    ethernet_t          ethernet;
+    vlan_tag_t          vlan_tag;
+    eth_type_t          eth_type;
+    mpls_t              mpls;
+    ipv4_t              ipv4;
+    ipv6_t              ipv6;
+    tcp_t               tcp;
+    udp_t               udp;
+    icmp_t              icmp;
+    gtpu_t              gtpu;
+    gtpu_options_t      gtpu_options;
+    gtpu_ext_psc_t      gtpu_ext_psc;
+    vxlan_t             vxlan;
+    ethernet_t          inner_ethernet;
+    eth_type_t          inner_eth_type;
+    ipv4_t              inner_ipv4;
+    tcp_t               inner_tcp;
+    udp_t               inner_udp;
+    icmp_t              inner_icmp;
+}
+
+struct egress_headers_t {
+    packet_in_header_t     packet_in;
+    fake_ethernet_t        fake_ethernet;
+    ethernet_t             report_ethernet;
+    eth_type_t             report_eth_type;
+    mpls_t                 report_mpls;
+    ipv4_t                 report_ipv4;
+    udp_t                  report_udp;
+    report_fixed_header_t  report_fixed_header;
+    common_report_header_t common_report_header;
+    local_report_header_t  local_report_header;
+    drop_report_header_t   drop_report_header;
+    ethernet_t             ethernet;
+    vlan_tag_t             vlan_tag;
+    eth_type_t             eth_type;
+    mpls_t                 mpls;
+    ipv4_t                 ipv4;
+    ipv6_t                 ipv6;
+    udp_t                  udp;
+}
+
+struct fabric_v1model_metadata_t {
+    bool                      skip_egress;
+    bool                      do_upf_uplink_recirc;
+    bit<1>                    drop_ctl;
+    IntReportType_t           int_mirror_type;
+    fabric_ingress_metadata_t ingress;
+    fabric_egress_metadata_t  egress;
+    @field_list(PRESERVE_INT_MD) 
+    IntReportType_t           recirc_preserved_report_type;
+    @field_list(PRESERVE_INT_MD) 
+    FabricPortId_t            recirc_preserved_egress_port;
+    @field_list(PRESERVE_INT_MD) 
+    IntDropReason_t           recirc_preserved_drop_reason;
+    @field_list(PRESERVE_INGRESS_PORT) 
+    FabricPortId_t            recirc_preserved_ingress_port;
+}
+
+struct v1model_header_t {
+    ingress_headers_t ingress;
+    egress_headers_t  egress;
+}
+
+parser FabricParser(packet_in packet, out v1model_header_t hdr, inout fabric_v1model_metadata_t fabric_md, inout standard_metadata_t standard_md) {
+    state start {
+        fabric_md.egress.pkt_length = (bit<16>)standard_md.packet_length;
+        fabric_md.ingress.bridged.setValid();
+        fabric_md.ingress.bridged.bmd_type = BridgedMdType_t.INGRESS_TO_EGRESS;
+        fabric_md.ingress.bridged.base.ig_port = standard_md.ingress_port;
+        fabric_md.recirc_preserved_ingress_port = (FabricPortId_t)standard_md.ingress_port;
+        fabric_md.ingress.bridged.base.ig_tstamp = standard_md.ingress_global_timestamp;
+        fabric_md.ingress.egress_port_set = false;
+        fabric_md.ingress.punt_to_cpu = false;
+        fabric_md.ingress.bridged.base.ip_eth_type = 0;
+        fabric_md.ingress.bridged.int_bmd.drop_reason = IntDropReason_t.DROP_REASON_UNKNOWN;
+        fabric_md.ingress.bridged.int_bmd.wip_type = INT_IS_NOT_WIP;
+        fabric_md.ingress.bridged.base.encap_presence = EncapPresence.NONE;
+        fabric_md.ingress.upf_meter_color = MeterColor_t.GREEN;
+        transition check_ethernet;
+    }
+    state check_ethernet {
+        fake_ethernet_t tmp = packet.lookahead<fake_ethernet_t>();
+        transition select(tmp.ether_type) {
+            ETHERTYPE_CPU_LOOPBACK_INGRESS: parse_fake_ethernet;
+            ETHERTYPE_CPU_LOOPBACK_EGRESS: parse_fake_ethernet_and_accept;
+            ETHERTYPE_PACKET_OUT: check_packet_out;
+            ETHERTYPE_INT_WIP_IPV4: parse_int_wip_ipv4;
+            ETHERTYPE_INT_WIP_MPLS: parse_int_wip_mpls;
+            default: parse_ethernet;
+        }
+    }
+    state check_packet_out {
+        packet_out_header_t tmp = packet.lookahead<packet_out_header_t>();
+        transition select(tmp.do_forwarding) {
+            0: parse_packet_out_and_accept;
+            default: strip_packet_out;
+        }
+    }
+    state parse_int_wip_ipv4 {
+        hdr.ingress.ethernet.setValid();
+        hdr.ingress.eth_type.setValid();
+        hdr.ingress.eth_type.value = ETHERTYPE_IPV4;
+        fabric_md.ingress.bridged.int_bmd.wip_type = INT_IS_WIP;
+        fabric_md.ingress.bridged.base.mpls_label = 0;
+        fabric_md.ingress.bridged.base.mpls_ttl = DEFAULT_MPLS_TTL + 1;
+        packet.advance(14 * 8);
+        transition parse_ipv4;
+    }
+    state parse_int_wip_mpls {
+        hdr.ingress.ethernet.setValid();
+        hdr.ingress.eth_type.setValid();
+        hdr.ingress.eth_type.value = ETHERTYPE_MPLS;
+        fabric_md.ingress.bridged.int_bmd.wip_type = INT_IS_WIP_WITH_MPLS;
+        packet.advance(14 * 8);
+        transition parse_mpls;
+    }
+    state parse_packet_out_and_accept {
+        packet.extract(hdr.ingress.packet_out);
+        transition accept;
+    }
+    state strip_packet_out {
+        packet.advance(14 * 8);
+        transition parse_ethernet;
+    }
+    state parse_fake_ethernet {
+        packet.extract(hdr.ingress.fake_ethernet);
+        fake_ethernet_t tmp = packet.lookahead<fake_ethernet_t>();
+        transition select(tmp.ether_type) {
+            ETHERTYPE_INT_WIP_IPV4: parse_int_wip_ipv4;
+            ETHERTYPE_INT_WIP_MPLS: parse_int_wip_mpls;
+            default: parse_ethernet;
+        }
+    }
+    state parse_fake_ethernet_and_accept {
+        packet.extract(hdr.ingress.fake_ethernet);
+        transition accept;
+    }
+    state parse_ethernet {
+        packet.extract(hdr.ingress.ethernet);
+        transition select(packet.lookahead<bit<16>>()) {
+            ETHERTYPE_QINQ: parse_vlan_tag;
+            ETHERTYPE_VLAN &&& 0xefff: parse_vlan_tag;
+            default: parse_untagged;
+        }
+    }
+    state parse_vlan_tag {
+        packet.extract(hdr.ingress.vlan_tag);
+        fabric_md.ingress.bridged.base.vlan_id = hdr.ingress.vlan_tag.vlan_id;
+        transition select(packet.lookahead<bit<16>>()) {
+            default: parse_eth_type;
+        }
+    }
+    state parse_untagged {
+        fabric_md.ingress.bridged.base.vlan_id = DEFAULT_VLAN_ID;
+        transition parse_eth_type;
+    }
+    state parse_eth_type {
+        packet.extract(hdr.ingress.eth_type);
+        transition select(hdr.ingress.eth_type.value) {
+            ETHERTYPE_MPLS: parse_mpls;
+            ETHERTYPE_IPV4: parse_non_mpls;
+            ETHERTYPE_IPV6: parse_non_mpls;
+            default: accept;
+        }
+    }
+    state parse_mpls {
+        packet.extract(hdr.ingress.mpls);
+        fabric_md.ingress.bridged.base.mpls_label = hdr.ingress.mpls.label;
+        fabric_md.ingress.bridged.base.mpls_ttl = hdr.ingress.mpls.ttl;
+        transition select(packet.lookahead<bit<4>>()) {
+            4: parse_ipv4;
+            6: parse_ipv6;
+            default: reject_packet;
+        }
+    }
+    state reject_packet {
+        verify(false, error.PacketRejectedByParser);
+        transition accept;
+    }
+    state parse_non_mpls {
+        fabric_md.ingress.bridged.base.mpls_label = 0;
+        fabric_md.ingress.bridged.base.mpls_ttl = DEFAULT_MPLS_TTL + 1;
+        transition select(hdr.ingress.eth_type.value) {
+            ETHERTYPE_IPV4: parse_ipv4;
+            ETHERTYPE_IPV6: parse_ipv6;
+            default: accept;
+        }
+    }
+    state parse_ipv4 {
+        packet.extract(hdr.ingress.ipv4);
+        fabric_md.ingress.routing_ipv4_dst = hdr.ingress.ipv4.dst_addr;
+        fabric_md.ingress.bridged.base.ip_eth_type = ETHERTYPE_IPV4;
+        transition select(hdr.ingress.ipv4.protocol) {
+            PROTO_TCP: parse_tcp;
+            PROTO_UDP: parse_udp;
+            PROTO_ICMP: parse_icmp;
+            default: accept;
+        }
+    }
+    state parse_ipv6 {
+        packet.extract(hdr.ingress.ipv6);
+        fabric_md.ingress.bridged.base.ip_eth_type = ETHERTYPE_IPV6;
+        transition select(hdr.ingress.ipv6.next_hdr) {
+            PROTO_TCP: parse_tcp;
+            PROTO_UDP: parse_udp;
+            PROTO_ICMPV6: parse_icmp;
+            default: accept;
+        }
+    }
+    state parse_icmp {
+        packet.extract(hdr.ingress.icmp);
+        transition accept;
+    }
+    state parse_tcp {
+        packet.extract(hdr.ingress.tcp);
+        transition accept;
+    }
+    state parse_udp {
+        packet.extract(hdr.ingress.udp);
+        gtpu_t gtpu = packet.lookahead<gtpu_t>();
+        transition select(hdr.ingress.udp.dport, gtpu.version, gtpu.msgtype) {
+            (GTPU_UDP_PORT, GTP_V1, GTPU_GPDU): parse_gtpu;
+            (VXLAN_UDP_PORT, default, default): parse_vxlan;
+            default: accept;
+        }
+    }
+    state parse_gtpu {
+        packet.extract(hdr.ingress.gtpu);
+        transition select(hdr.ingress.gtpu.ex_flag, hdr.ingress.gtpu.seq_flag, hdr.ingress.gtpu.npdu_flag) {
+            (0, 0, 0): set_gtpu_only;
+            default: parse_gtpu_options;
+        }
+    }
+    state set_gtpu_only {
+        fabric_md.ingress.bridged.base.encap_presence = EncapPresence.GTPU_ONLY;
+        transition parse_inner_ipv4;
+    }
+    state parse_gtpu_options {
+        packet.extract(hdr.ingress.gtpu_options);
+        bit<8> gtpu_ext_len = packet.lookahead<bit<8>>();
+        transition select(hdr.ingress.gtpu_options.next_ext, gtpu_ext_len) {
+            (GTPU_NEXT_EXT_PSC, GTPU_EXT_PSC_LEN): parse_gtpu_ext_psc;
+            default: accept;
+        }
+    }
+    state parse_gtpu_ext_psc {
+        packet.extract(hdr.ingress.gtpu_ext_psc);
+        fabric_md.ingress.bridged.base.encap_presence = EncapPresence.GTPU_WITH_PSC;
+        transition select(hdr.ingress.gtpu_ext_psc.next_ext) {
+            GTPU_NEXT_EXT_NONE: parse_inner_ipv4;
+            default: accept;
+        }
+    }
+    state parse_vxlan {
+        packet.extract(hdr.ingress.vxlan);
+        fabric_md.ingress.bridged.base.encap_presence = EncapPresence.VXLAN;
+        transition parse_inner_ethernet;
+    }
+    state parse_inner_ethernet {
+        packet.extract(hdr.ingress.inner_ethernet);
+        packet.extract(hdr.ingress.inner_eth_type);
+        transition select(hdr.ingress.inner_eth_type.value) {
+            ETHERTYPE_IPV4: parse_inner_ipv4;
+            default: accept;
+        }
+    }
+    state parse_inner_ipv4 {
+        packet.extract(hdr.ingress.inner_ipv4);
+        transition select(hdr.ingress.inner_ipv4.protocol) {
+            PROTO_TCP: parse_inner_tcp;
+            PROTO_UDP: parse_inner_udp;
+            PROTO_ICMP: parse_inner_icmp;
+            default: accept;
+        }
+    }
+    state parse_inner_tcp {
+        packet.extract(hdr.ingress.inner_tcp);
+        transition accept;
+    }
+    state parse_inner_udp {
+        packet.extract(hdr.ingress.inner_udp);
+        transition accept;
+    }
+    state parse_inner_icmp {
+        packet.extract(hdr.ingress.inner_icmp);
+        transition accept;
+    }
+}
+
+control FabricDeparser(packet_out packet, in v1model_header_t hdr) {
+    apply {
+        packet.emit(hdr.ingress.fake_ethernet);
+        packet.emit(hdr.ingress.packet_in);
+        packet.emit(hdr.egress.report_ethernet);
+        packet.emit(hdr.egress.report_eth_type);
+        packet.emit(hdr.egress.report_mpls);
+        packet.emit(hdr.egress.report_ipv4);
+        packet.emit(hdr.egress.report_udp);
+        packet.emit(hdr.egress.report_fixed_header);
+        packet.emit(hdr.egress.common_report_header);
+        packet.emit(hdr.egress.local_report_header);
+        packet.emit(hdr.egress.drop_report_header);
+        packet.emit(hdr.ingress.ethernet);
+        packet.emit(hdr.ingress.vlan_tag);
+        packet.emit(hdr.ingress.eth_type);
+        packet.emit(hdr.ingress.mpls);
+        packet.emit(hdr.ingress.ipv4);
+        packet.emit(hdr.ingress.ipv6);
+        packet.emit(hdr.ingress.tcp);
+        packet.emit(hdr.ingress.udp);
+        packet.emit(hdr.ingress.icmp);
+        packet.emit(hdr.ingress.gtpu);
+        packet.emit(hdr.ingress.gtpu_options);
+        packet.emit(hdr.ingress.gtpu_ext_psc);
+        packet.emit(hdr.ingress.vxlan);
+        packet.emit(hdr.ingress.inner_ethernet);
+        packet.emit(hdr.ingress.inner_eth_type);
+        packet.emit(hdr.ingress.inner_ipv4);
+        packet.emit(hdr.ingress.inner_tcp);
+        packet.emit(hdr.ingress.inner_udp);
+        packet.emit(hdr.ingress.inner_icmp);
+    }
+}
+
+control Acl(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout FabricPortId_t recirc_preserved_egress_port, inout bit<1> drop_ctl) {
+    direct_counter(CounterType.packets_and_bytes) acl_counter;
+    action set_next_id_acl(next_id_t next_id) {
+        fabric_md.next_id = next_id;
+        acl_counter.count();
+        fabric_md.skip_next = false;
+        drop_ctl = 0;
+    }
+    action copy_to_cpu() {
+        clone_preserving_field_list(CloneType.I2E, (bit<32>)PACKET_IN_MIRROR_SESSION_ID, PRESERVE_INGRESS_PORT);
+        acl_counter.count();
+    }
+    action punt_to_cpu() {
+        copy_to_cpu();
+        fabric_md.skip_next = true;
+        fabric_md.punt_to_cpu = true;
+        drop_ctl = 1;
+    }
+    action drop() {
+        drop_ctl = 1;
+        fabric_md.skip_next = true;
+        fabric_md.bridged.int_bmd.drop_reason = IntDropReason_t.DROP_REASON_ACL_DENY;
+        acl_counter.count();
+    }
+    action set_output_port(FabricPortId_t port_num) {
+        standard_md.egress_spec = (PortId_t)port_num;
+        recirc_preserved_egress_port = port_num;
+        fabric_md.egress_port_set = true;
+        fabric_md.skip_next = true;
+        drop_ctl = 0;
+        acl_counter.count();
+    }
+    action nop_acl() {
+        acl_counter.count();
+    }
+    table acl {
+        key = {
+            fabric_md.bridged.base.ig_port: ternary @name("ig_port") ;
+            fabric_md.lkp.eth_dst         : ternary @name("eth_dst") ;
+            fabric_md.lkp.eth_src         : ternary @name("eth_src") ;
+            fabric_md.lkp.vlan_id         : ternary @name("vlan_id") ;
+            fabric_md.lkp.eth_type        : ternary @name("eth_type") ;
+            fabric_md.lkp.ipv4_src        : ternary @name("ipv4_src") ;
+            fabric_md.lkp.ipv4_dst        : ternary @name("ipv4_dst") ;
+            fabric_md.lkp.ip_proto        : ternary @name("ip_proto") ;
+            fabric_md.lkp.icmp_type       : ternary @name("icmp_type") ;
+            fabric_md.lkp.icmp_code       : ternary @name("icmp_code") ;
+            fabric_md.lkp.l4_sport        : ternary @name("l4_sport") ;
+            fabric_md.lkp.l4_dport        : ternary @name("l4_dport") ;
+            fabric_md.ig_port_type        : ternary @name("ig_port_type") ;
+        }
+        actions = {
+            set_next_id_acl;
+            punt_to_cpu;
+            copy_to_cpu;
+            drop;
+            set_output_port;
+            nop_acl;
+        }
+        const default_action = nop_acl();
+        size = 1024;
+        counters = acl_counter;
+    }
+    apply {
+        acl.apply();
+    }
+}
+
+control Next(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout FabricPortId_t recirc_preserved_egress_port) {
+    @hidden action output(FabricPortId_t port_num) {
+        standard_md.egress_spec = (PortId_t)port_num;
+        recirc_preserved_egress_port = port_num;
+        fabric_md.egress_port_set = true;
+    }
+    @hidden action rewrite_smac(mac_addr_t smac) {
+        hdr.ethernet.src_addr = smac;
+    }
+    @hidden action rewrite_dmac(mac_addr_t dmac) {
+        hdr.ethernet.dst_addr = dmac;
+    }
+    @hidden action routing(FabricPortId_t port_num, mac_addr_t smac, mac_addr_t dmac) {
+        rewrite_smac(smac);
+        rewrite_dmac(dmac);
+        output(port_num);
+    }
+    direct_counter(CounterType.packets_and_bytes) simple_counter;
+    action output_simple(FabricPortId_t port_num) {
+        output(port_num);
+        simple_counter.count();
+    }
+    action routing_simple(FabricPortId_t port_num, mac_addr_t smac, mac_addr_t dmac) {
+        routing(port_num, smac, dmac);
+        simple_counter.count();
+    }
+    table simple {
+        key = {
+            fabric_md.next_id: exact @name("next_id") ;
+        }
+        actions = {
+            output_simple;
+            routing_simple;
+            @defaultonly nop;
+        }
+        const default_action = nop();
+        counters = simple_counter;
+        size = 1024;
+    }
+    @max_group_size(32w16) action_selector(HashAlgorithm.crc16, 32w16, 32w16) hashed_profile;
+    direct_counter(CounterType.packets_and_bytes) hashed_counter;
+    action output_hashed(FabricPortId_t port_num) {
+        output(port_num);
+        hashed_counter.count();
+    }
+    action routing_hashed(FabricPortId_t port_num, mac_addr_t smac, mac_addr_t dmac) {
+        routing(port_num, smac, dmac);
+        hashed_counter.count();
+    }
+    table hashed {
+        key = {
+            fabric_md.next_id  : exact @name("next_id") ;
+            fabric_md.ecmp_hash: selector;
+        }
+        actions = {
+            output_hashed;
+            routing_hashed;
+            @defaultonly nop;
+        }
+        implementation = hashed_profile;
+        counters = hashed_counter;
+        const default_action = nop();
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) multicast_counter;
+    action set_mcast_group_id(MulticastGroupId_t group_id) {
+        standard_md.mcast_grp = group_id;
+        fabric_md.bridged.base.is_multicast = true;
+        multicast_counter.count();
+    }
+    action reset_mcast_group_id() {
+        standard_md.mcast_grp = 0;
+        fabric_md.bridged.base.is_multicast = false;
+    }
+    table multicast {
+        key = {
+            fabric_md.next_id: exact @name("next_id") ;
+        }
+        actions = {
+            set_mcast_group_id;
+            @defaultonly reset_mcast_group_id;
+        }
+        counters = multicast_counter;
+        const default_action = reset_mcast_group_id();
+        size = 1024;
+    }
+    apply {
+        simple.apply();
+        hashed.apply();
+        multicast.apply();
+    }
+}
+
+control EgressNextControl(inout ingress_headers_t hdr, inout fabric_egress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout IntDropReason_t recirc_preserved_drop_reason, inout bit<1> drop_ctl) {
+    @hidden action pop_mpls_if_present() {
+        hdr.mpls.setInvalid();
+        hdr.eth_type.value = fabric_md.bridged.base.ip_eth_type;
+    }
+    @hidden action set_mpls() {
+        hdr.mpls.setValid();
+        hdr.mpls.label = fabric_md.bridged.base.mpls_label;
+        hdr.mpls.tc = 3w0;
+        hdr.mpls.bos = 1w1;
+        hdr.mpls.ttl = fabric_md.bridged.base.mpls_ttl;
+        hdr.eth_type.value = ETHERTYPE_MPLS;
+    }
+    @hidden action push_outer_vlan() {
+        hdr.vlan_tag.setValid();
+        hdr.vlan_tag.eth_type = ETHERTYPE_VLAN;
+        hdr.vlan_tag.vlan_id = fabric_md.bridged.base.vlan_id;
+    }
+    direct_counter(CounterType.packets_and_bytes) egress_vlan_counter;
+    action push_vlan() {
+        push_outer_vlan();
+        egress_vlan_counter.count();
+    }
+    action pop_vlan() {
+        hdr.vlan_tag.setInvalid();
+        egress_vlan_counter.count();
+    }
+    action drop() {
+        drop_ctl = 1;
+        egress_vlan_counter.count();
+        recirc_preserved_drop_reason = IntDropReason_t.DROP_REASON_EGRESS_NEXT_MISS;
+    }
+    table egress_vlan {
+        key = {
+            fabric_md.bridged.base.vlan_id: exact @name("vlan_id") ;
+            standard_md.egress_port       : exact @name("eg_port") ;
+        }
+        actions = {
+            push_vlan;
+            pop_vlan;
+            @defaultonly drop;
+        }
+        const default_action = drop();
+        counters = egress_vlan_counter;
+        size = 1024;
+    }
+    apply {
+        if (fabric_md.bridged.base.is_multicast && fabric_md.bridged.base.ig_port == standard_md.egress_port) {
+            fabric_md.bridged.int_bmd.report_type = INT_REPORT_TYPE_NO_REPORT;
+            drop_ctl = 1;
+        }
+        if (fabric_md.bridged.base.mpls_label == 0) {
+            if (hdr.mpls.isValid()) {
+                pop_mpls_if_present();
+            }
+        } else {
+            set_mpls();
+        }
+        if (!fabric_md.is_int_recirc) {
+            egress_vlan.apply();
+        }
+        bool regular_packet = true;
+        regular_packet = !(fabric_md.bridged.bmd_type == BridgedMdType_t.INT_INGRESS_DROP || fabric_md.bridged.bmd_type == BridgedMdType_t.EGRESS_MIRROR);
+        if (hdr.mpls.isValid()) {
+            hdr.mpls.ttl = hdr.mpls.ttl - 1;
+            if (hdr.mpls.ttl == 0) {
+                drop_ctl = 1;
+                recirc_preserved_drop_reason = IntDropReason_t.DROP_REASON_MPLS_TTL_ZERO;
+            }
+        } else {
+            if (hdr.ipv4.isValid() && fabric_md.bridged.base.fwd_type != FWD_BRIDGING) {
+                if (regular_packet) {
+                    hdr.ipv4.ttl = hdr.ipv4.ttl - 1;
+                }
+                if (hdr.ipv4.ttl == 0) {
+                    drop_ctl = 1;
+                    recirc_preserved_drop_reason = IntDropReason_t.DROP_REASON_IP_TTL_ZERO;
+                }
+            } else if (hdr.ipv6.isValid() && fabric_md.bridged.base.fwd_type != FWD_BRIDGING) {
+                if (regular_packet) {
+                    hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1;
+                }
+                if (hdr.ipv6.hop_limit == 0) {
+                    drop_ctl = 1;
+                    recirc_preserved_drop_reason = IntDropReason_t.DROP_REASON_IP_TTL_ZERO;
+                }
+            }
+        }
+    }
+}
+
+const bit<10> UNSET_FLOW_ID = 0;
+control StatsIngress(in lookup_metadata_t lkp, in PortId_t ig_port, out bit<10> stats_flow_id) {
+    direct_counter(CounterType.packets_and_bytes) flow_counter;
+    action count(bit<10> flow_id) {
+        stats_flow_id = flow_id;
+        flow_counter.count();
+    }
+    table flows {
+        key = {
+            lkp.ipv4_src: ternary @name("ipv4_src") ;
+            lkp.ipv4_dst: ternary @name("ipv4_dst") ;
+            lkp.ip_proto: ternary @name("ip_proto") ;
+            lkp.l4_sport: ternary @name("l4_sport") ;
+            lkp.l4_dport: ternary @name("l4_dport") ;
+            ig_port     : exact @name("ig_port") ;
+        }
+        actions = {
+            count;
+        }
+        const default_action = count(UNSET_FLOW_ID);
+        const size = 1 << 10;
+        counters = flow_counter;
+    }
+    apply {
+        flows.apply();
+    }
+}
+
+control StatsEgress(in bit<10> stats_flow_id, in PortId_t eg_port, in BridgedMdType_t bmd_type) {
+    direct_counter(CounterType.packets_and_bytes) flow_counter;
+    action count() {
+        flow_counter.count();
+    }
+    table flows {
+        key = {
+            stats_flow_id: exact @name("stats_flow_id") ;
+            eg_port      : exact @name("eg_port") ;
+        }
+        actions = {
+            count;
+        }
+        const default_action = count;
+        const size = 1 << 10;
+        counters = flow_counter;
+    }
+    apply {
+        if (bmd_type == BridgedMdType_t.INGRESS_TO_EGRESS) {
+            flows.apply();
+        }
+    }
+}
+
+control Hasher(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md) {
+    flow_hash_t max = 0xffffffff;
+    flow_hash_t base = 0;
+    apply {
+        hash(fabric_md.bridged.base.inner_hash, HashAlgorithm.crc32, base, { fabric_md.lkp.ipv4_src, fabric_md.lkp.ipv4_dst, fabric_md.lkp.ip_proto, fabric_md.lkp.l4_sport, fabric_md.lkp.l4_dport }, max);
+        if (hdr.gtpu.isValid()) {
+            hash(fabric_md.ecmp_hash, HashAlgorithm.crc32, base, { hdr.ipv4.src_addr, hdr.ipv4.dst_addr, hdr.gtpu.teid }, max);
+        } else if (fabric_md.lkp.is_ipv4) {
+            fabric_md.ecmp_hash = fabric_md.bridged.base.inner_hash;
+        } else {
+            fabric_md.bridged.base.inner_hash = 0;
+            hash(fabric_md.ecmp_hash, HashAlgorithm.crc32, base, { hdr.ethernet.dst_addr, hdr.ethernet.src_addr, hdr.eth_type.value }, max);
+        }
+    }
+}
+
+control IngressSliceTcClassifier(inout ingress_headers_t hdr, inout standard_metadata_t standard_md, inout fabric_ingress_metadata_t fabric_md) {
+    direct_counter(CounterType.packets) classifier_stats;
+    action set_slice_id_tc(slice_id_t slice_id, tc_t tc) {
+        fabric_md.slice_id = slice_id;
+        fabric_md.tc = tc;
+        fabric_md.tc_unknown = false;
+        classifier_stats.count();
+    }
+    action no_classification() {
+        set_slice_id_tc(DEFAULT_SLICE_ID, DEFAULT_TC);
+        fabric_md.tc_unknown = true;
+    }
+    action trust_dscp() {
+        fabric_md.slice_id = hdr.ipv4.dscp[4 + 2 - 1:2];
+        fabric_md.tc = hdr.ipv4.dscp[2 - 1:0];
+        fabric_md.tc_unknown = false;
+        classifier_stats.count();
+    }
+    table classifier {
+        key = {
+            fabric_md.bridged.base.ig_port: ternary @name("ig_port") ;
+            fabric_md.lkp.ipv4_src        : ternary @name("ipv4_src") ;
+            fabric_md.lkp.ipv4_dst        : ternary @name("ipv4_dst") ;
+            fabric_md.lkp.ip_proto        : ternary @name("ip_proto") ;
+            fabric_md.lkp.l4_sport        : ternary @name("l4_sport") ;
+            fabric_md.lkp.l4_dport        : ternary @name("l4_dport") ;
+        }
+        actions = {
+            set_slice_id_tc;
+            trust_dscp;
+            @defaultonly no_classification;
+        }
+        const default_action = no_classification();
+        counters = classifier_stats;
+        size = 512;
+    }
+    apply {
+        classifier.apply();
+    }
+}
+
+control IngressQos(inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout bit<1> drop_ctl) {
+    bit<2> packet_color = 2w0;
+    @hidden action use_upf() {
+        fabric_md.bridged.base.slice_tc = fabric_md.upf_slice_id ++ fabric_md.upf_tc;
+    }
+    @hidden action use_default() {
+        fabric_md.bridged.base.slice_tc = fabric_md.slice_id ++ fabric_md.tc;
+    }
+    @hidden table set_slice_tc {
+        key = {
+            fabric_md.is_upf_hit: exact;
+        }
+        actions = {
+            use_upf;
+            use_default;
+        }
+        const size = 2;
+        const entries = {
+                        true : use_upf;
+                        false : use_default;
+        }
+    }
+    meter(1 << 4 + 2, MeterType.bytes) slice_tc_meter;
+    direct_counter(CounterType.packets) queues_stats;
+    action set_queue(QueueId_t qid) {
+        queues_stats.count();
+    }
+    action meter_drop() {
+        drop_ctl = 1;
+        fabric_md.bridged.int_bmd.drop_reason = IntDropReason_t.DROP_REASON_INGRESS_QOS_METER;
+        queues_stats.count();
+    }
+    table queues {
+        key = {
+            fabric_md.bridged.base.slice_tc: exact @name("slice_tc") ;
+            packet_color                   : ternary @name("color") ;
+        }
+        actions = {
+            set_queue;
+            meter_drop;
+        }
+        const default_action = set_queue(QUEUE_ID_BEST_EFFORT);
+        counters = queues_stats;
+        size = 1 << 4 + 2 + 1;
+    }
+    action set_default_tc(tc_t tc) {
+        fabric_md.bridged.base.slice_tc = fabric_md.bridged.base.slice_tc[4 + 2 - 1:2] ++ tc;
+    }
+    table default_tc {
+        key = {
+            fabric_md.bridged.base.slice_tc: ternary @name("slice_tc") ;
+            fabric_md.tc_unknown           : exact @name("tc_unknown") ;
+        }
+        actions = {
+            set_default_tc;
+            @defaultonly nop;
+        }
+        const default_action = nop;
+        size = 1 << 4;
+    }
+    apply {
+        set_slice_tc.apply();
+        default_tc.apply();
+        if (fabric_md.upf_meter_color != MeterColor_t.RED) {
+            slice_tc_meter.execute_meter((bit<32>)fabric_md.bridged.base.slice_tc, packet_color);
+        } else {
+            packet_color = MeterColor_t.RED;
+        }
+        queues.apply();
+    }
+}
+
+control EgressDscpRewriter(inout fabric_egress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout ingress_headers_t hdr) {
+    bit<6> tmp_dscp = fabric_md.bridged.base.slice_tc;
+    action rewrite() {
+    }
+    action clear() {
+        tmp_dscp = 0;
+    }
+    table rewriter {
+        key = {
+            standard_md.egress_port: exact @name("eg_port") ;
+        }
+        actions = {
+            rewrite;
+            clear;
+            @defaultonly nop;
+        }
+        const default_action = nop;
+        size = 512;
+    }
+    apply {
+        if (rewriter.apply().hit) {
+            if (hdr.ipv4.isValid()) {
+                hdr.ipv4.dscp = tmp_dscp;
+            }
+        }
+    }
+}
+
+control FabricVerifyChecksum(inout v1model_header_t hdr, inout fabric_v1model_metadata_t meta) {
+    apply {
+        verify_checksum(hdr.ingress.ipv4.isValid(), { hdr.ingress.ipv4.version, hdr.ingress.ipv4.ihl, hdr.ingress.ipv4.dscp, hdr.ingress.ipv4.ecn, hdr.ingress.ipv4.total_len, hdr.ingress.ipv4.identification, hdr.ingress.ipv4.flags, hdr.ingress.ipv4.frag_offset, hdr.ingress.ipv4.ttl, hdr.ingress.ipv4.protocol, hdr.ingress.ipv4.src_addr, hdr.ingress.ipv4.dst_addr }, hdr.ingress.ipv4.hdr_checksum, HashAlgorithm.csum16);
+        verify_checksum(hdr.ingress.inner_ipv4.isValid(), { hdr.ingress.inner_ipv4.version, hdr.ingress.inner_ipv4.ihl, hdr.ingress.inner_ipv4.dscp, hdr.ingress.inner_ipv4.ecn, hdr.ingress.inner_ipv4.total_len, hdr.ingress.inner_ipv4.identification, hdr.ingress.inner_ipv4.flags, hdr.ingress.inner_ipv4.frag_offset, hdr.ingress.inner_ipv4.ttl, hdr.ingress.inner_ipv4.protocol, hdr.ingress.inner_ipv4.src_addr, hdr.ingress.inner_ipv4.dst_addr }, hdr.ingress.inner_ipv4.hdr_checksum, HashAlgorithm.csum16);
+    }
+}
+
+control FabricComputeChecksum(inout v1model_header_t hdr, inout fabric_v1model_metadata_t fabric_md) {
+    apply {
+        update_checksum(hdr.ingress.ipv4.isValid(), { hdr.ingress.ipv4.version, hdr.ingress.ipv4.ihl, hdr.ingress.ipv4.dscp, hdr.ingress.ipv4.ecn, hdr.ingress.ipv4.total_len, hdr.ingress.ipv4.identification, hdr.ingress.ipv4.flags, hdr.ingress.ipv4.frag_offset, hdr.ingress.ipv4.ttl, hdr.ingress.ipv4.protocol, hdr.ingress.ipv4.src_addr, hdr.ingress.ipv4.dst_addr }, hdr.ingress.ipv4.hdr_checksum, HashAlgorithm.csum16);
+        update_checksum(hdr.ingress.inner_ipv4.isValid(), { hdr.ingress.inner_ipv4.version, hdr.ingress.inner_ipv4.ihl, hdr.ingress.inner_ipv4.dscp, hdr.ingress.inner_ipv4.ecn, hdr.ingress.inner_ipv4.total_len, hdr.ingress.inner_ipv4.identification, hdr.ingress.inner_ipv4.flags, hdr.ingress.inner_ipv4.frag_offset, hdr.ingress.inner_ipv4.ttl, hdr.ingress.inner_ipv4.protocol, hdr.ingress.inner_ipv4.src_addr, hdr.ingress.inner_ipv4.dst_addr }, hdr.ingress.inner_ipv4.hdr_checksum, HashAlgorithm.csum16);
+        update_checksum(hdr.egress.report_ipv4.isValid(), { hdr.egress.report_ipv4.version, hdr.egress.report_ipv4.ihl, hdr.egress.report_ipv4.dscp, hdr.egress.report_ipv4.ecn, hdr.egress.report_ipv4.total_len, hdr.egress.report_ipv4.identification, hdr.egress.report_ipv4.flags, hdr.egress.report_ipv4.frag_offset, hdr.egress.report_ipv4.ttl, hdr.egress.report_ipv4.protocol, hdr.egress.report_ipv4.src_addr, hdr.egress.report_ipv4.dst_addr }, hdr.egress.report_ipv4.hdr_checksum, HashAlgorithm.csum16);
+    }
+}
+
+control PacketIoIngress(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout bool skip_egress, inout standard_metadata_t standard_md, inout FabricPortId_t recirc_preserved_egress_port) {
+    @hidden action do_packet_out() {
+        standard_md.egress_spec = (PortId_t)hdr.packet_out.egress_port;
+        recirc_preserved_egress_port = hdr.packet_out.egress_port;
+        fabric_md.egress_port_set = true;
+        hdr.packet_out.setInvalid();
+        skip_egress = true;
+        fabric_md.bridged.setInvalid();
+        exit;
+    }
+    apply {
+        if (hdr.packet_out.isValid()) {
+            do_packet_out();
+        }
+    }
+}
+
+control PacketIoEgress(inout ingress_headers_t hdr, inout fabric_egress_metadata_t fabric_md, inout standard_metadata_t standard_md, in FabricPortId_t preserved_ig_port) {
+    action set_switch_info(FabricPortId_t cpu_port) {
+        fabric_md.cpu_port = (PortId_t)cpu_port;
+    }
+    table switch_info {
+        actions = {
+            set_switch_info;
+            @defaultonly nop;
+        }
+        default_action = nop;
+        const size = 1;
+    }
+    apply {
+        switch_info.apply();
+        if (standard_md.egress_port == fabric_md.cpu_port) {
+            hdr.packet_in.setValid();
+            hdr.packet_in.ingress_port = preserved_ig_port;
+            hdr.fake_ethernet.setInvalid();
+            exit;
+        }
+        if (hdr.fake_ethernet.isValid() && hdr.fake_ethernet.ether_type == ETHERTYPE_CPU_LOOPBACK_EGRESS) {
+            fabric_md.pkt_length = (bit<16>)standard_md.packet_length - 14;
+        }
+    }
+}
+
+control PreNext(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md) {
+    direct_counter(CounterType.packets_and_bytes) next_mpls_counter;
+    action set_mpls_label(mpls_label_t label) {
+        fabric_md.bridged.base.mpls_label = label;
+        next_mpls_counter.count();
+    }
+    table next_mpls {
+        key = {
+            fabric_md.next_id: exact @name("next_id") ;
+        }
+        actions = {
+            set_mpls_label;
+            @defaultonly nop;
+        }
+        const default_action = nop();
+        counters = next_mpls_counter;
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) next_vlan_counter;
+    action set_vlan(vlan_id_t vlan_id) {
+        fabric_md.bridged.base.vlan_id = vlan_id;
+        next_vlan_counter.count();
+    }
+    table next_vlan {
+        key = {
+            fabric_md.next_id: exact @name("next_id") ;
+        }
+        actions = {
+            set_vlan;
+            @defaultonly nop;
+        }
+        const default_action = nop();
+        counters = next_vlan_counter;
+        size = 1024;
+    }
+    apply {
+        next_mpls.apply();
+        next_vlan.apply();
+    }
+}
+
+control Filtering(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md) {
+    direct_counter(CounterType.packets_and_bytes) ingress_port_vlan_counter;
+    action deny() {
+        fabric_md.skip_forwarding = true;
+        fabric_md.skip_next = true;
+        fabric_md.ig_port_type = PortType_t.UNKNOWN;
+        fabric_md.bridged.int_bmd.drop_reason = IntDropReason_t.DROP_REASON_PORT_VLAN_MAPPING_MISS;
+        ingress_port_vlan_counter.count();
+    }
+    action permit(PortType_t port_type) {
+        fabric_md.ig_port_type = port_type;
+        ingress_port_vlan_counter.count();
+    }
+    action permit_with_internal_vlan(vlan_id_t vlan_id, PortType_t port_type) {
+        fabric_md.bridged.base.vlan_id = vlan_id;
+        permit(port_type);
+    }
+    table ingress_port_vlan {
+        key = {
+            fabric_md.bridged.base.ig_port: exact @name("ig_port") ;
+            hdr.vlan_tag.isValid()        : exact @name("vlan_is_valid") ;
+            hdr.vlan_tag.vlan_id          : ternary @name("vlan_id") ;
+        }
+        actions = {
+            deny();
+            permit();
+            permit_with_internal_vlan();
+        }
+        const default_action = deny();
+        counters = ingress_port_vlan_counter;
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) fwd_classifier_counter;
+    action set_forwarding_type(fwd_type_t fwd_type) {
+        fabric_md.bridged.base.fwd_type = fwd_type;
+        fwd_classifier_counter.count();
+    }
+    counter(8, CounterType.packets_and_bytes) fwd_type_counter;
+    table fwd_classifier {
+        key = {
+            fabric_md.bridged.base.ig_port    : exact @name("ig_port") ;
+            fabric_md.lkp.eth_dst             : ternary @name("eth_dst") ;
+            fabric_md.lkp.eth_type            : ternary @name("eth_type") ;
+            fabric_md.bridged.base.ip_eth_type: exact @name("ip_eth_type") ;
+        }
+        actions = {
+            set_forwarding_type;
+        }
+        const default_action = set_forwarding_type(FWD_BRIDGING);
+        counters = fwd_classifier_counter;
+        size = 1024;
+    }
+    apply {
+        ingress_port_vlan.apply();
+        fwd_classifier.apply();
+        fwd_type_counter.count((bit<32>)fabric_md.bridged.base.fwd_type);
+    }
+}
+
+control Forwarding(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout bit<1> drop_ctl) {
+    action set_int_drop_reason(bit<8> drop_reason) {
+        fabric_md.bridged.int_bmd.drop_reason = (IntDropReason_t)drop_reason;
+    }
+    @hidden action set_next_id(next_id_t next_id) {
+        fabric_md.next_id = next_id;
+    }
+    direct_counter(CounterType.packets_and_bytes) bridging_counter;
+    action set_next_id_bridging(next_id_t next_id) {
+        set_next_id(next_id);
+        bridging_counter.count();
+    }
+    table bridging {
+        key = {
+            fabric_md.bridged.base.vlan_id: exact @name("vlan_id") ;
+            hdr.ethernet.dst_addr         : ternary @name("eth_dst") ;
+        }
+        actions = {
+            set_next_id_bridging;
+            @defaultonly set_int_drop_reason;
+        }
+        const default_action = set_int_drop_reason(IntDropReason_t.DROP_REASON_BRIDGING_MISS);
+        counters = bridging_counter;
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) mpls_counter;
+    action pop_mpls_and_next(next_id_t next_id) {
+        hdr.mpls.setInvalid();
+        hdr.eth_type.value = fabric_md.bridged.base.ip_eth_type;
+        fabric_md.bridged.base.mpls_label = 0;
+        set_next_id(next_id);
+        mpls_counter.count();
+    }
+    table mpls {
+        key = {
+            fabric_md.bridged.base.mpls_label: exact @name("mpls_label") ;
+        }
+        actions = {
+            pop_mpls_and_next;
+            @defaultonly set_int_drop_reason;
+        }
+        const default_action = set_int_drop_reason(IntDropReason_t.DROP_REASON_MPLS_MISS);
+        counters = mpls_counter;
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) routing_v4_counter;
+    action set_next_id_routing_v4(next_id_t next_id) {
+        set_next_id(next_id);
+        routing_v4_counter.count();
+    }
+    action nop_routing_v4() {
+        routing_v4_counter.count();
+    }
+    action drop_routing_v4() {
+        fabric_md.skip_next = true;
+        routing_v4_counter.count();
+        drop_ctl = 1;
+    }
+    table routing_v4 {
+        key = {
+            fabric_md.routing_ipv4_dst: lpm @name("ipv4_dst") ;
+        }
+        actions = {
+            set_next_id_routing_v4;
+            nop_routing_v4;
+            drop_routing_v4;
+            @defaultonly set_int_drop_reason;
+        }
+        default_action = set_int_drop_reason(IntDropReason_t.DROP_REASON_ROUTING_V4_MISS);
+        counters = routing_v4_counter;
+        size = 1024;
+    }
+    direct_counter(CounterType.packets_and_bytes) routing_v6_counter;
+    action set_next_id_routing_v6(next_id_t next_id) {
+        set_next_id(next_id);
+        routing_v6_counter.count();
+    }
+    action drop_routing_v6() {
+        fabric_md.skip_next = true;
+        routing_v6_counter.count();
+        drop_ctl = 1;
+    }
+    table routing_v6 {
+        key = {
+            hdr.ipv6.dst_addr: lpm @name("ipv6_dst") ;
+        }
+        actions = {
+            set_next_id_routing_v6;
+            drop_routing_v6;
+            @defaultonly set_int_drop_reason;
+        }
+        default_action = set_int_drop_reason(IntDropReason_t.DROP_REASON_ROUTING_V6_MISS);
+        counters = routing_v6_counter;
+        size = 1024;
+    }
+    apply {
+        if (hdr.ethernet.isValid() && fabric_md.bridged.base.fwd_type == FWD_BRIDGING) {
+            bridging.apply();
+        } else if (hdr.mpls.isValid() && fabric_md.bridged.base.fwd_type == FWD_MPLS) {
+            mpls.apply();
+        } else if (fabric_md.lkp.is_ipv4 && (fabric_md.bridged.base.fwd_type == FWD_IPV4_UNICAST || fabric_md.bridged.base.fwd_type == FWD_IPV4_MULTICAST)) {
+            routing_v4.apply();
+        } else if (hdr.ipv6.isValid() && fabric_md.bridged.base.fwd_type == FWD_IPV6_UNICAST) {
+            routing_v6.apply();
+        }
+    }
+}
+
+control LookupMdInit(in ingress_headers_t hdr, out lookup_metadata_t lkp_md) {
+    apply {
+        lkp_md.eth_dst = hdr.ethernet.dst_addr;
+        lkp_md.eth_src = hdr.ethernet.src_addr;
+        lkp_md.eth_type = hdr.eth_type.value;
+        lkp_md.vlan_id = 0;
+        if (hdr.vlan_tag.isValid()) {
+            lkp_md.vlan_id = hdr.vlan_tag.vlan_id;
+        }
+        lkp_md.is_ipv4 = false;
+        lkp_md.ipv4_src = 0;
+        lkp_md.ipv4_dst = 0;
+        lkp_md.ip_proto = 0;
+        lkp_md.l4_sport = 0;
+        lkp_md.l4_dport = 0;
+        lkp_md.icmp_type = 0;
+        lkp_md.icmp_code = 0;
+        if (hdr.inner_ipv4.isValid()) {
+            lkp_md.is_ipv4 = true;
+            lkp_md.ipv4_src = hdr.inner_ipv4.src_addr;
+            lkp_md.ipv4_dst = hdr.inner_ipv4.dst_addr;
+            lkp_md.ip_proto = hdr.inner_ipv4.protocol;
+            if (hdr.inner_tcp.isValid()) {
+                lkp_md.l4_sport = hdr.inner_tcp.sport;
+                lkp_md.l4_dport = hdr.inner_tcp.dport;
+            } else if (hdr.inner_udp.isValid()) {
+                lkp_md.l4_sport = hdr.inner_udp.sport;
+                lkp_md.l4_dport = hdr.inner_udp.dport;
+            } else if (hdr.inner_icmp.isValid()) {
+                lkp_md.icmp_type = hdr.inner_icmp.icmp_type;
+                lkp_md.icmp_code = hdr.inner_icmp.icmp_code;
+            }
+        } else if (hdr.ipv4.isValid()) {
+            lkp_md.is_ipv4 = true;
+            lkp_md.ipv4_src = hdr.ipv4.src_addr;
+            lkp_md.ipv4_dst = hdr.ipv4.dst_addr;
+            lkp_md.ip_proto = hdr.ipv4.protocol;
+            if (hdr.tcp.isValid()) {
+                lkp_md.l4_sport = hdr.tcp.sport;
+                lkp_md.l4_dport = hdr.tcp.dport;
+            } else if (hdr.udp.isValid()) {
+                lkp_md.l4_sport = hdr.udp.sport;
+                lkp_md.l4_dport = hdr.udp.dport;
+            } else if (hdr.icmp.isValid()) {
+                lkp_md.icmp_type = hdr.icmp.icmp_type;
+                lkp_md.icmp_code = hdr.icmp.icmp_code;
+            }
+        }
+    }
+}
+
+control IntWatchlist(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout IntReportType_t recirc_preserved_report_type) {
+    direct_counter(CounterType.packets_and_bytes) watchlist_counter;
+    action mark_to_report() {
+        fabric_md.bridged.int_bmd.report_type = INT_REPORT_TYPE_FLOW;
+        recirc_preserved_report_type = INT_REPORT_TYPE_FLOW;
+        watchlist_counter.count();
+    }
+    action no_report() {
+        fabric_md.bridged.int_bmd.report_type = INT_REPORT_TYPE_NO_REPORT;
+        recirc_preserved_report_type = INT_REPORT_TYPE_NO_REPORT;
+    }
+    action no_report_collector() {
+        fabric_md.bridged.int_bmd.report_type = INT_REPORT_TYPE_NO_REPORT;
+    }
+    table watchlist {
+        key = {
+            fabric_md.lkp.is_ipv4 : exact @name("ipv4_valid") ;
+            fabric_md.lkp.ipv4_src: ternary @name("ipv4_src") ;
+            fabric_md.lkp.ipv4_dst: ternary @name("ipv4_dst") ;
+            fabric_md.lkp.ip_proto: ternary @name("ip_proto") ;
+            fabric_md.lkp.l4_sport: range @name("l4_sport") ;
+            fabric_md.lkp.l4_dport: range @name("l4_dport") ;
+        }
+        actions = {
+            mark_to_report;
+            no_report_collector;
+            @defaultonly no_report();
+        }
+        const default_action = no_report();
+        const size = 64;
+        counters = watchlist_counter;
+    }
+    apply {
+        watchlist.apply();
+    }
+}
+
+control IntIngress(inout ingress_headers_t hdr, inout fabric_ingress_metadata_t fabric_md, inout standard_metadata_t standard_md, inout bit<1> drop_ctl) {
+    direct_counter(CounterType.packets_and_bytes) drop_report_counter;
+    @hidden action report_drop() {
+        fabric_md.bridged.bmd_type = BridgedMdType_t.INT_INGRESS_DROP;
+        fabric_md.bridged.int_bmd.report_type = INT_REPORT_TYPE_DROP;
+        fabric_md.bridged.base.vlan_id = DEFAULT_VLAN_ID;
+        fabric_md.bridged.base.mpls_label = 0;
+        drop_ctl = 0;
+        standard_md.egress_spec = FAKE_V1MODEL_RECIRC_PORT;
+        drop_report_counter.count();
+    }
+    @hidden table drop_report {
+        key = {
+            fabric_md.bridged.int_bmd.report_type: exact @name("int_report_type") ;
+            drop_ctl                             : exact @name("drop_ctl") ;
+            fabric_md.punt_to_cpu                : exact @name("punt_to_cpu") ;
+            fabric_md.egress_port_set            : exact @name("egress_port_set") ;
+            standard_md.mcast_grp                : ternary @name("mcast_group_id") ;
+        }
+        actions = {
+            report_drop;
+            @defaultonly nop;
+        }
+        const entries = {
+                        (INT_REPORT_TYPE_FLOW, 1, false, false, default) : report_drop();
+                        (INT_REPORT_TYPE_FLOW, 1, false, true, default) : report_drop();
+                        (INT_REPORT_TYPE_FLOW, 0, false, false, 0) : report_drop();
+        }
+        const default_action = nop();
+        counters = drop_report_counter;
+    }
+    apply {
+        fabric_md.bridged.int_bmd.egress_port = standard_md.egress_spec;
+        fabric_md.bridged.int_bmd.queue_id = 0;
+        drop_report.apply();
+    }
+}
+
+control IntEgress(inout v1model_header_t hdr_v1model, inout fabric_v1model_metadata_t fabric_v1model, inout standard_metadata_t standard_md) {
+    const bit<48> DEFAULT_TIMESTAMP_MASK = 0xffffc0000000;
+    const bit<32> DEFAULT_HOP_LATENCY_MASK = 0xffffff00;
+    egress_headers_t hdr = hdr_v1model.egress;
+    fabric_egress_metadata_t fabric_md = fabric_v1model.egress;
+    direct_counter(CounterType.packets_and_bytes) report_counter;
+    direct_counter(CounterType.packets_and_bytes) int_metadata_counter;
+    QueueId_t egress_qid = 0;
+    @hidden register<bit<32>>(1024) seq_number;
+    @hidden action get_seq_number(in bit<32> seq_number_idx, out bit<32> result) {
+        bit<32> reg = 0;
+        seq_number.read(reg, seq_number_idx);
+        reg = reg + 1;
+        result = reg;
+        seq_number.write(seq_number_idx, reg);
+    }
+    action check_quota() {
+    }
+    action reset_quota() {
+    }
+    table queue_latency_thresholds {
+        key = {
+            egress_qid                         : exact @name("egress_qid") ;
+            fabric_md.int_md.hop_latency[31:16]: range @name("hop_latency_upper") ;
+            fabric_md.int_md.hop_latency[15:0] : range @name("hop_latency_lower") ;
+        }
+        actions = {
+            check_quota;
+            reset_quota;
+            @defaultonly nop;
+        }
+        default_action = nop();
+        const size = 32 * 4;
+    }
+    action set_config(bit<32> hop_latency_mask, bit<48> timestamp_mask) {
+        fabric_md.int_md.hop_latency = fabric_md.int_md.hop_latency & hop_latency_mask;
+        fabric_md.int_md.timestamp = fabric_md.int_md.timestamp & timestamp_mask;
+    }
+    table config {
+        actions = {
+            @defaultonly set_config;
+        }
+        default_action = set_config(DEFAULT_HOP_LATENCY_MASK, DEFAULT_TIMESTAMP_MASK);
+        const size = 1;
+    }
+    @hidden action _report_encap_common(ipv4_addr_t src_ip, ipv4_addr_t mon_ip, l4_port_t mon_port, bit<32> switch_id) {
+        random(hdr.report_ipv4.identification, 0, 0xffff);
+        hdr.report_ipv4.src_addr = src_ip;
+        hdr.report_ipv4.dst_addr = mon_ip;
+        hdr.report_udp.dport = mon_port;
+        get_seq_number((bit<32>)hdr.report_fixed_header.hw_id, hdr.report_fixed_header.seq_no);
+        hdr.report_fixed_header.dqf = fabric_md.int_report_md.report_type;
+        hdr.common_report_header.switch_id = switch_id;
+        hdr.common_report_header.pad1 = 0;
+        hdr.common_report_header.pad2 = 0;
+        hdr.common_report_header.pad3 = 0;
+        hdr.eth_type.value = fabric_md.int_report_md.ip_eth_type;
+        fabric_v1model.int_mirror_type = (bit<3>)FabricMirrorType_t.INVALID;
+        report_counter.count();
+    }
+    action do_local_report_encap(ipv4_addr_t src_ip, ipv4_addr_t mon_ip, l4_port_t mon_port, bit<32> switch_id) {
+        _report_encap_common(src_ip, mon_ip, mon_port, switch_id);
+        hdr.report_eth_type.value = ETHERTYPE_INT_WIP_IPV4;
+        hdr.report_fixed_header.nproto = NPROTO_TELEMETRY_SWITCH_LOCAL_HEADER;
+        hdr.local_report_header.setValid();
+    }
+    action do_local_report_encap_mpls(ipv4_addr_t src_ip, ipv4_addr_t mon_ip, l4_port_t mon_port, mpls_label_t mon_label, bit<32> switch_id) {
+        do_local_report_encap(src_ip, mon_ip, mon_port, switch_id);
+        hdr.report_eth_type.value = ETHERTYPE_INT_WIP_MPLS;
+        hdr.report_mpls.setValid();
+        hdr.report_mpls.tc = 0;
+        hdr.report_mpls.bos = 0;
+        hdr.report_mpls.ttl = DEFAULT_MPLS_TTL;
+        hdr.report_mpls.label = mon_label;
+    }
+    action do_drop_report_encap(ipv4_addr_t src_ip, ipv4_addr_t mon_ip, l4_port_t mon_port, bit<32> switch_id) {
+        _report_encap_common(src_ip, mon_ip, mon_port, switch_id);
+        hdr.report_eth_type.value = ETHERTYPE_INT_WIP_IPV4;
+        hdr.report_fixed_header.nproto = NPROTO_TELEMETRY_DROP_HEADER;
+        hdr.drop_report_header.setValid();
+        hdr.local_report_header.setInvalid();
+        hdr.drop_report_header.drop_reason = fabric_md.bridged.int_bmd.drop_reason;
+    }
+    action do_drop_report_encap_mpls(ipv4_addr_t src_ip, ipv4_addr_t mon_ip, l4_port_t mon_port, mpls_label_t mon_label, bit<32> switch_id) {
+        do_drop_report_encap(src_ip, mon_ip, mon_port, switch_id);
+        hdr.report_eth_type.value = ETHERTYPE_INT_WIP_MPLS;
+        hdr.report_mpls.setValid();
+        hdr.report_mpls.tc = 0;
+        hdr.report_mpls.bos = 0;
+        hdr.report_mpls.ttl = DEFAULT_MPLS_TTL;
+        hdr.report_mpls.label = mon_label;
+        hdr.report_mpls.label = mon_label;
+    }
+    table report {
+        key = {
+            fabric_md.int_report_md.bmd_type   : exact @name("bmd_type") ;
+            fabric_md.int_report_md.mirror_type: exact @name("mirror_type") ;
+            fabric_md.int_report_md.report_type: exact @name("int_report_type") ;
+        }
+        actions = {
+            do_local_report_encap;
+            do_local_report_encap_mpls;
+            do_drop_report_encap;
+            do_drop_report_encap_mpls;
+            @defaultonly nop();
+        }
+        default_action = nop;
+        const size = 6;
+        counters = report_counter;
+    }
+    @hidden action init_int_metadata(bit<3> report_type) {
+        fabric_md.bridged.int_bmd.mirror_session_id = V1MODEL_INT_MIRROR_SESSION;
+        fabric_md.int_report_md.setValid();
+        fabric_v1model.int_mirror_type = (bit<3>)FabricMirrorType_t.INT_REPORT;
+        fabric_md.int_report_md.bmd_type = BridgedMdType_t.EGRESS_MIRROR;
+        fabric_md.int_report_md.mirror_type = FabricMirrorType_t.INT_REPORT;
+        fabric_md.int_report_md.report_type = fabric_md.bridged.int_bmd.report_type;
+        fabric_md.int_report_md.ig_port = fabric_md.bridged.base.ig_port;
+        fabric_md.int_report_md.eg_port = (PortId_t)standard_md.egress_port;
+        fabric_md.int_report_md.queue_id = egress_qid;
+        fabric_md.int_report_md.queue_occupancy = standard_md.deq_qdepth;
+        fabric_md.int_report_md.ig_tstamp = fabric_md.bridged.base.ig_tstamp[31:0];
+        fabric_md.int_report_md.eg_tstamp = standard_md.egress_global_timestamp[31:0];
+        fabric_md.int_report_md.ip_eth_type = fabric_md.bridged.base.ip_eth_type;
+        fabric_md.int_report_md.flow_hash = fabric_md.bridged.base.inner_hash;
+        fabric_md.int_report_md.report_type = report_type;
+        int_metadata_counter.count();
+    }
+    @hidden table int_metadata {
+        key = {
+            fabric_md.bridged.int_bmd.report_type: exact @name("int_report_type") ;
+            fabric_v1model.drop_ctl              : exact @name("drop_ctl") ;
+            fabric_md.int_md.queue_report        : exact @name("queue_report") ;
+        }
+        actions = {
+            init_int_metadata;
+            @defaultonly nop();
+        }
+        const default_action = nop();
+        const entries = {
+                        (INT_REPORT_TYPE_FLOW, 0, false) : init_int_metadata(INT_REPORT_TYPE_FLOW);
+                        (INT_REPORT_TYPE_FLOW, 1, false) : init_int_metadata(INT_REPORT_TYPE_DROP);
+        }
+        counters = int_metadata_counter;
+    }
+    @hidden action adjust_ip_udp_len(bit<16> adjust_ip, bit<16> adjust_udp) {
+        hdr_v1model.ingress.ipv4.total_len = fabric_md.pkt_length + adjust_ip;
+        hdr_v1model.ingress.udp.len = fabric_md.pkt_length + adjust_udp;
+    }
+    @hidden table adjust_int_report_hdr_length {
+        key = {
+            fabric_md.bridged.int_bmd.wip_type: exact @name("is_int_wip") ;
+        }
+        actions = {
+            @defaultonly nop();
+            adjust_ip_udp_len;
+        }
+        const default_action = nop();
+        const entries = {
+                        INT_IS_WIP : adjust_ip_udp_len(INT_WIP_ADJUST_IP_BYTES, INT_WIP_ADJUST_UDP_BYTES);
+                        INT_IS_WIP_WITH_MPLS : adjust_ip_udp_len(INT_WIP_ADJUST_IP_MPLS_BYTES, INT_WIP_ADJUST_UDP_MPLS_BYTES);
+        }
+    }
+    apply {
+        fabric_md.int_md.hop_latency = standard_md.egress_global_timestamp[31:0] - fabric_md.bridged.base.ig_tstamp[31:0];
+        fabric_md.int_md.timestamp = standard_md.egress_global_timestamp;
+        queue_latency_thresholds.apply();
+        config.apply();
+        hdr.report_fixed_header.hw_id = 4w0 ++ standard_md.egress_spec[8:7];
+        if (fabric_md.int_report_md.isValid()) {
+            report.apply();
+        } else {
+            if (int_metadata.apply().hit) {
+                clone_preserving_field_list(CloneType.E2E, (bit<32>)fabric_md.bridged.int_bmd.mirror_session_id, PRESERVE_INT_MD);
+            }
+        }
+        adjust_int_report_hdr_length.apply();
+        fabric_v1model.egress = fabric_md;
+        hdr_v1model.egress = hdr;
+    }
+}
+
+control IntTnaEgressParserEmulator(inout v1model_header_t hdr_v1model, inout fabric_egress_metadata_t fabric_md, inout standard_metadata_t standard_md) {
+    egress_headers_t hdr = hdr_v1model.egress;
+    @hidden action set_common_int_headers() {
+        hdr.report_ethernet.setValid();
+        hdr.report_eth_type.setValid();
+        hdr.report_ipv4.setValid();
+        hdr.report_ipv4.version = 4w4;
+        hdr.report_ipv4.ihl = 4w5;
+        hdr.report_ipv4.dscp = 0;
+        hdr.report_ipv4.ecn = 2w0;
+        hdr.report_ipv4.flags = 0;
+        hdr.report_ipv4.frag_offset = 0;
+        hdr.report_ipv4.ttl = DEFAULT_IPV4_TTL;
+        hdr.report_ipv4.protocol = PROTO_UDP;
+        hdr.report_udp.setValid();
+        hdr.report_udp.sport = 0;
+        hdr.report_fixed_header.setValid();
+        hdr.report_fixed_header.ver = 0;
+        hdr.report_fixed_header.nproto = NPROTO_TELEMETRY_SWITCH_LOCAL_HEADER;
+        hdr.report_fixed_header.rsvd = 0;
+        hdr.common_report_header.setValid();
+    }
+    @hidden action set_common_int_drop_headers() {
+        set_common_int_headers();
+        fabric_md.int_report_md.setValid();
+        fabric_md.int_report_md.ip_eth_type = ETHERTYPE_IPV4;
+        fabric_md.int_report_md.report_type = INT_REPORT_TYPE_DROP;
+        fabric_md.int_report_md.mirror_type = FabricMirrorType_t.INVALID;
+        hdr.drop_report_header.setValid();
+    }
+    @hidden action parse_int_ingress_drop() {
+        set_common_int_drop_headers();
+        fabric_md.int_report_md.bmd_type = BridgedMdType_t.INT_INGRESS_DROP;
+        fabric_md.int_report_md.encap_presence = fabric_md.bridged.base.encap_presence;
+        fabric_md.int_report_md.flow_hash = fabric_md.bridged.base.inner_hash;
+        hdr.drop_report_header.drop_reason = fabric_md.bridged.int_bmd.drop_reason;
+        hdr.report_fixed_header.ig_tstamp = fabric_md.bridged.base.ig_tstamp[31:0];
+        hdr.common_report_header.ig_port = fabric_md.bridged.base.ig_port;
+        hdr.common_report_header.eg_port = 0;
+        hdr.common_report_header.queue_id = 0;
+    }
+    @hidden action parse_int_report_mirror() {
+        set_common_int_headers();
+        fabric_md.bridged.bmd_type = fabric_md.int_report_md.bmd_type;
+        fabric_md.bridged.base.vlan_id = DEFAULT_VLAN_ID;
+        fabric_md.bridged.base.mpls_label = 0;
+        hdr.report_fixed_header.ig_tstamp = fabric_md.int_report_md.ig_tstamp;
+        hdr.common_report_header.ig_port = fabric_md.int_report_md.ig_port;
+        hdr.common_report_header.eg_port = fabric_md.int_report_md.eg_port;
+        hdr.common_report_header.queue_id = fabric_md.int_report_md.queue_id;
+        hdr.local_report_header.setValid();
+        hdr.local_report_header.queue_occupancy = fabric_md.int_report_md.queue_occupancy;
+        hdr.local_report_header.eg_tstamp = fabric_md.int_report_md.eg_tstamp;
+    }
+    apply {
+        fabric_md.is_int_recirc = true;
+        hdr_v1model.ingress.vlan_tag.setInvalid();
+        if (hdr_v1model.ingress.gtpu.isValid() || hdr_v1model.ingress.vxlan.isValid()) {
+            hdr_v1model.ingress.ipv4.setInvalid();
+            hdr_v1model.ingress.tcp.setInvalid();
+            hdr_v1model.ingress.udp.setInvalid();
+            hdr_v1model.ingress.icmp.setInvalid();
+            hdr_v1model.ingress.vxlan.setInvalid();
+            hdr_v1model.ingress.inner_ethernet.setInvalid();
+            hdr_v1model.ingress.inner_eth_type.setInvalid();
+            hdr_v1model.ingress.gtpu.setInvalid();
+            hdr_v1model.ingress.gtpu_options.setInvalid();
+            hdr_v1model.ingress.gtpu_ext_psc.setInvalid();
+        }
+        if ((bit<8>)fabric_md.bridged.int_bmd.report_type == BridgedMdType_t.INT_INGRESS_DROP) {
+            parse_int_ingress_drop();
+            recirculate_preserving_field_list(NO_PRESERVATION);
+        } else {
+            parse_int_report_mirror();
+            recirculate_preserving_field_list(PRESERVE_INT_MD);
+        }
+        hdr_v1model.egress = hdr;
+    }
+}
+
+control FabricIngress(inout v1model_header_t hdr, inout fabric_v1model_metadata_t fabric_md, inout standard_metadata_t standard_md) {
+    LookupMdInit() lkp_md_init;
+    StatsIngress() stats;
+    PacketIoIngress() pkt_io;
+    Filtering() filtering;
+    Forwarding() forwarding;
+    PreNext() pre_next;
+    Acl() acl;
+    Next() next;
+    Hasher() hasher;
+    IngressSliceTcClassifier() slice_tc_classifier;
+    IngressQos() qos;
+    IntWatchlist() int_watchlist;
+    IntIngress() int_ingress;
+    apply {
+        mark_to_drop(standard_md);
+        if (standard_md.parser_error == error.PacketRejectedByParser) {
+            exit;
+        }
+        if (standard_md.instance_type == 4) {
+            fabric_md.ingress.bridged.base.ig_port = FAKE_V1MODEL_RECIRC_PORT;
+        }
+        lkp_md_init.apply(hdr.ingress, fabric_md.ingress.lkp);
+        pkt_io.apply(hdr.ingress, fabric_md.ingress, fabric_md.skip_egress, standard_md, fabric_md.recirc_preserved_egress_port);
+        int_watchlist.apply(hdr.ingress, fabric_md.ingress, standard_md, fabric_md.recirc_preserved_report_type);
+        stats.apply(fabric_md.ingress.lkp, fabric_md.ingress.bridged.base.ig_port, fabric_md.ingress.bridged.base.stats_flow_id);
+        slice_tc_classifier.apply(hdr.ingress, standard_md, fabric_md.ingress);
+        filtering.apply(hdr.ingress, fabric_md.ingress, standard_md);
+        if (!fabric_md.ingress.skip_forwarding) {
+            forwarding.apply(hdr.ingress, fabric_md.ingress, standard_md, fabric_md.drop_ctl);
+        }
+        hasher.apply(hdr.ingress, fabric_md.ingress);
+        if (!fabric_md.ingress.skip_next) {
+            pre_next.apply(hdr.ingress, fabric_md.ingress);
+        }
+        acl.apply(hdr.ingress, fabric_md.ingress, standard_md, fabric_md.recirc_preserved_egress_port, fabric_md.drop_ctl);
+        if (!fabric_md.ingress.skip_next) {
+            next.apply(hdr.ingress, fabric_md.ingress, standard_md, fabric_md.recirc_preserved_egress_port);
+        }
+        qos.apply(fabric_md.ingress, standard_md, fabric_md.drop_ctl);
+        int_ingress.apply(hdr.ingress, fabric_md.ingress, standard_md, fabric_md.drop_ctl);
+        fabric_md.egress.bridged = fabric_md.ingress.bridged;
+        if (fabric_md.drop_ctl == 1) {
+            mark_to_drop(standard_md);
+        }
+    }
+}
+
+control FabricEgress(inout v1model_header_t hdr, inout fabric_v1model_metadata_t fabric_md, inout standard_metadata_t standard_md) {
+    StatsEgress() stats;
+    PacketIoEgress() pkt_io_egress;
+    EgressNextControl() egress_next;
+    EgressDscpRewriter() dscp_rewriter;
+    IntTnaEgressParserEmulator() parser_emulator;
+    IntEgress() int_egress;
+    apply {
+        fabric_md.egress.cpu_port = 0;
+        if (fabric_md.skip_egress) {
+            exit;
+        }
+        if (standard_md.instance_type == 2) {
+            fabric_md.egress.bridged.int_bmd.drop_reason = fabric_md.recirc_preserved_drop_reason;
+            fabric_md.egress.bridged.int_bmd.report_type = fabric_md.recirc_preserved_report_type;
+            parser_emulator.apply(hdr, fabric_md.egress, standard_md);
+        }
+        if ((bit<8>)fabric_md.egress.bridged.int_bmd.report_type == BridgedMdType_t.INT_INGRESS_DROP) {
+            parser_emulator.apply(hdr, fabric_md.egress, standard_md);
+        }
+        pkt_io_egress.apply(hdr.ingress, fabric_md.egress, standard_md, fabric_md.recirc_preserved_ingress_port);
+        stats.apply(fabric_md.egress.bridged.base.stats_flow_id, standard_md.egress_port, fabric_md.egress.bridged.bmd_type);
+        egress_next.apply(hdr.ingress, fabric_md.egress, standard_md, fabric_md.recirc_preserved_drop_reason, fabric_md.drop_ctl);
+        int_egress.apply(hdr, fabric_md, standard_md);
+        dscp_rewriter.apply(fabric_md.egress, standard_md, hdr.ingress);
+        if (fabric_md.do_upf_uplink_recirc) {
+            recirculate_preserving_field_list(NO_PRESERVATION);
+        }
+        if (fabric_md.drop_ctl == 1) {
+            mark_to_drop(standard_md);
+        }
+    }
+}
+
+V1Switch(FabricParser(), FabricVerifyChecksum(), FabricIngress(), FabricEgress(), FabricComputeChecksum(), FabricDeparser()) main;
+
diff --git a/src/tests/p4-int-routing-acl/p4src/bmv2.json b/src/tests/p4-int-routing-acl/p4src/bmv2.json
new file mode 100644
index 0000000000000000000000000000000000000000..80136b953ec822618243c8d325fbfbca201ab7cc
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/p4src/bmv2.json
@@ -0,0 +1,21728 @@
+{
+  "header_types" : [
+    {
+      "name" : "scalars_0",
+      "id" : 0,
+      "fields" : [
+        ["tmp_2", 16, false],
+        ["tmp_4", 1, false],
+        ["tmp_6", 16, false],
+        ["tmp_12", 3, false],
+        ["tmp_13", 8, false],
+        ["gtpu_ext_len_0", 8, false],
+        ["tmp_3", 16, false],
+        ["tmp_5", 16, false],
+        ["tmp_7", 4, false],
+        ["tmp_8", 112, false],
+        ["tmp_9", 112, false],
+        ["tmp_10", 112, false],
+        ["tmp_11", 64, false],
+        ["tmp_14", 32, false],
+        ["tmp_15", 32, false],
+        ["tmp_16", 32, false],
+        ["tmp_17", 32, false],
+        ["tmp_18", 48, false],
+        ["tmp_19", 48, false],
+        ["tmp_20", 16, false],
+        ["tmp_21", 32, false],
+        ["tmp_22", 32, false],
+        ["tmp_23", 8, false],
+        ["tmp_24", 16, false],
+        ["tmp_25", 16, false],
+        ["tmp_26", 32, false],
+        ["qos_packet_color", 2, false],
+        ["tmp_27", 32, false],
+        ["tmp_28", 32, false],
+        ["tmp_29", 32, false],
+        ["tmp_30", 32, false],
+        ["tmp_31", 32, false],
+        ["tmp_32", 32, false],
+        ["tmp_33", 32, false],
+        ["tmp_34", 32, false],
+        ["tmp_35", 32, false],
+        ["dscp_rewriter_tmp_dscp", 6, false],
+        ["int_egress_fabric_md_pkt_length", 16, false],
+        ["int_egress_egress_qid", 5, false],
+        ["int_egress_reg", 32, false],
+        ["key_0", 16, false],
+        ["key_1", 16, false],
+        ["userMetadata._skip_egress0", 1, false],
+        ["userMetadata._do_upf_uplink_recirc1", 1, false],
+        ["userMetadata._drop_ctl2", 1, false],
+        ["userMetadata._int_mirror_type3", 3, false],
+        ["userMetadata._ingress_ecmp_hash5", 32, false],
+        ["userMetadata._ingress_lkp_eth_dst6", 48, false],
+        ["userMetadata._ingress_lkp_eth_src7", 48, false],
+        ["userMetadata._ingress_lkp_eth_type8", 16, false],
+        ["userMetadata._ingress_lkp_vlan_id9", 12, false],
+        ["userMetadata._ingress_lkp_is_ipv410", 1, false],
+        ["userMetadata._ingress_lkp_ipv4_src11", 32, false],
+        ["userMetadata._ingress_lkp_ipv4_dst12", 32, false],
+        ["userMetadata._ingress_lkp_ip_proto13", 8, false],
+        ["userMetadata._ingress_lkp_l4_sport14", 16, false],
+        ["userMetadata._ingress_lkp_l4_dport15", 16, false],
+        ["userMetadata._ingress_lkp_icmp_type16", 8, false],
+        ["userMetadata._ingress_lkp_icmp_code17", 8, false],
+        ["userMetadata._ingress_routing_ipv4_dst18", 32, false],
+        ["userMetadata._ingress_skip_forwarding19", 1, false],
+        ["userMetadata._ingress_skip_next20", 1, false],
+        ["userMetadata._ingress_next_id21", 32, false],
+        ["userMetadata._ingress_egress_port_set22", 1, false],
+        ["userMetadata._ingress_punt_to_cpu23", 1, false],
+        ["userMetadata._ingress_ipv4_checksum_err24", 1, false],
+        ["userMetadata._ingress_inner_ipv4_checksum_err25", 1, false],
+        ["userMetadata._ingress_slice_id26", 4, false],
+        ["userMetadata._ingress_tc27", 2, false],
+        ["userMetadata._ingress_tc_unknown28", 1, false],
+        ["userMetadata._ingress_is_upf_hit29", 1, false],
+        ["userMetadata._ingress_upf_slice_id30", 4, false],
+        ["userMetadata._ingress_upf_tc31", 2, false],
+        ["userMetadata._ingress_upf_meter_color32", 2, false],
+        ["userMetadata._ingress_ig_port_type33", 2, false],
+        ["userMetadata._ingress_mirror_mirror_session_id34", 10, false],
+        ["userMetadata._ingress_mirror_bmd_type35", 8, false],
+        ["userMetadata._egress_cpu_port37", 9, false],
+        ["userMetadata._egress_int_md_hop_latency39", 32, false],
+        ["userMetadata._egress_int_md_timestamp40", 48, false],
+        ["userMetadata._egress_int_md_vlan_stripped41", 1, false],
+        ["userMetadata._egress_int_md_queue_report42", 1, false],
+        ["userMetadata._egress_int_ipv4_len43", 16, false],
+        ["userMetadata._egress_is_int_recirc44", 1, false],
+        ["userMetadata._egress_pkt_length45", 16, false],
+        ["userMetadata._recirc_preserved_report_type46", 3, false],
+        ["userMetadata._recirc_preserved_egress_port47", 9, false],
+        ["userMetadata._recirc_preserved_drop_reason48", 8, false],
+        ["userMetadata._recirc_preserved_ingress_port49", 9, false],
+        ["_padding_1", 5, false]
+      ]
+    },
+    {
+      "name" : "fake_ethernet_t",
+      "id" : 1,
+      "fields" : [
+        ["_pad0", 48, false],
+        ["_pad1", 48, false],
+        ["ether_type", 16, false]
+      ]
+    },
+    {
+      "name" : "packet_out_header_t",
+      "id" : 2,
+      "fields" : [
+        ["pad0", 7, false],
+        ["egress_port", 9, false],
+        ["pad1", 3, false],
+        ["queue_id", 5, false],
+        ["pad2", 5, false],
+        ["cpu_loopback_mode", 2, false],
+        ["do_forwarding", 1, false],
+        ["pad3", 16, false],
+        ["pad4", 48, false],
+        ["ether_type", 16, false]
+      ]
+    },
+    {
+      "name" : "gtpu_t",
+      "id" : 3,
+      "fields" : [
+        ["version", 3, false],
+        ["pt", 1, false],
+        ["spare", 1, false],
+        ["ex_flag", 1, false],
+        ["seq_flag", 1, false],
+        ["npdu_flag", 1, false],
+        ["msgtype", 8, false],
+        ["msglen", 16, false],
+        ["teid", 32, false]
+      ]
+    },
+    {
+      "name" : "ethernet_t",
+      "id" : 4,
+      "fields" : [
+        ["dst_addr", 48, false],
+        ["src_addr", 48, false]
+      ]
+    },
+    {
+      "name" : "eth_type_t",
+      "id" : 5,
+      "fields" : [
+        ["value", 16, false]
+      ]
+    },
+    {
+      "name" : "ipv4_t",
+      "id" : 6,
+      "fields" : [
+        ["version", 4, false],
+        ["ihl", 4, false],
+        ["dscp", 6, false],
+        ["ecn", 2, false],
+        ["total_len", 16, false],
+        ["identification", 16, false],
+        ["flags", 3, false],
+        ["frag_offset", 13, false],
+        ["ttl", 8, false],
+        ["protocol", 8, false],
+        ["hdr_checksum", 16, false],
+        ["src_addr", 32, false],
+        ["dst_addr", 32, false]
+      ]
+    },
+    {
+      "name" : "udp_t",
+      "id" : 7,
+      "fields" : [
+        ["sport", 16, false],
+        ["dport", 16, false],
+        ["len", 16, false],
+        ["checksum", 16, false]
+      ]
+    },
+    {
+      "name" : "report_fixed_header_t",
+      "id" : 8,
+      "fields" : [
+        ["ver", 4, false],
+        ["nproto", 4, false],
+        ["dqf", 3, false],
+        ["rsvd", 15, false],
+        ["hw_id", 6, false],
+        ["seq_no", 32, false],
+        ["ig_tstamp", 32, false]
+      ]
+    },
+    {
+      "name" : "common_report_header_t",
+      "id" : 9,
+      "fields" : [
+        ["switch_id", 32, false],
+        ["pad1", 7, false],
+        ["ig_port", 9, false],
+        ["pad2", 7, false],
+        ["eg_port", 9, false],
+        ["pad3", 3, false],
+        ["queue_id", 5, false]
+      ]
+    },
+    {
+      "name" : "local_report_header_t",
+      "id" : 10,
+      "fields" : [
+        ["pad1", 5, false],
+        ["queue_occupancy", 19, false],
+        ["eg_tstamp", 32, false]
+      ]
+    },
+    {
+      "name" : "drop_report_header_t",
+      "id" : 11,
+      "fields" : [
+        ["drop_reason", 8, false],
+        ["pad", 16, false]
+      ]
+    },
+    {
+      "name" : "mpls_t",
+      "id" : 12,
+      "fields" : [
+        ["label", 20, false],
+        ["tc", 3, false],
+        ["bos", 1, false],
+        ["ttl", 8, false]
+      ]
+    },
+    {
+      "name" : "bridged_metadata_t",
+      "id" : 13,
+      "fields" : [
+        ["_bmd_type0", 8, false],
+        ["_base_inner_hash1", 32, false],
+        ["_base_mpls_label2", 20, false],
+        ["_base_ig_port3", 9, false],
+        ["_base_is_multicast4", 1, 0],
+        ["_base_fwd_type5", 3, false],
+        ["_base_vlan_id6", 12, false],
+        ["_base_encap_presence7", 2, false],
+        ["_base_mpls_ttl8", 8, false],
+        ["_base_ig_tstamp9", 48, false],
+        ["_base_ip_eth_type10", 16, false],
+        ["_base_stats_flow_id11", 10, false],
+        ["_base_slice_tc12", 6, false],
+        ["_int_bmd_report_type13", 3, false],
+        ["_int_bmd_mirror_session_id14", 10, false],
+        ["_int_bmd_drop_reason15", 8, false],
+        ["_int_bmd_queue_id16", 5, false],
+        ["_int_bmd_egress_port17", 9, false],
+        ["_int_bmd_wip_type18", 8, false],
+        ["__pad019", 1, false],
+        ["__pad220", 5, false]
+      ]
+    },
+    {
+      "name" : "int_report_metadata_t",
+      "id" : 14,
+      "fields" : [
+        ["bmd_type", 8, false],
+        ["_pad0", 5, false],
+        ["mirror_type", 3, false],
+        ["_pad1", 7, false],
+        ["ig_port", 9, false],
+        ["_pad2", 7, false],
+        ["eg_port", 9, false],
+        ["_pad3", 3, false],
+        ["queue_id", 5, false],
+        ["_pad4", 5, false],
+        ["queue_occupancy", 19, false],
+        ["ig_tstamp", 32, false],
+        ["eg_tstamp", 32, false],
+        ["drop_reason", 8, false],
+        ["ip_eth_type", 16, false],
+        ["_pad5", 6, false],
+        ["encap_presence", 2, false],
+        ["report_type", 3, false],
+        ["_pad6", 5, false],
+        ["flow_hash", 32, false]
+      ]
+    },
+    {
+      "name" : "int_metadata_t",
+      "id" : 15,
+      "fields" : [
+        ["hop_latency", 32, false],
+        ["timestamp", 48, false],
+        ["vlan_stripped", 1, 0],
+        ["queue_report", 1, 0],
+        ["_padding", 6, false]
+      ]
+    },
+    {
+      "name" : "standard_metadata",
+      "id" : 16,
+      "fields" : [
+        ["ingress_port", 9, false],
+        ["egress_spec", 9, false],
+        ["egress_port", 9, false],
+        ["instance_type", 32, false],
+        ["packet_length", 32, false],
+        ["enq_timestamp", 32, false],
+        ["enq_qdepth", 19, false],
+        ["deq_timedelta", 32, false],
+        ["deq_qdepth", 19, false],
+        ["ingress_global_timestamp", 48, false],
+        ["egress_global_timestamp", 48, false],
+        ["mcast_grp", 16, false],
+        ["egress_rid", 16, false],
+        ["checksum_error", 1, false],
+        ["parser_error", 32, false],
+        ["priority", 3, false],
+        ["_padding_0", 3, false]
+      ]
+    },
+    {
+      "name" : "packet_in_header_t",
+      "id" : 17,
+      "fields" : [
+        ["ingress_port", 9, false],
+        ["_pad0", 7, false]
+      ]
+    },
+    {
+      "name" : "vlan_tag_t",
+      "id" : 18,
+      "fields" : [
+        ["eth_type", 16, false],
+        ["pri", 3, false],
+        ["cfi", 1, false],
+        ["vlan_id", 12, false]
+      ]
+    },
+    {
+      "name" : "ipv6_t",
+      "id" : 19,
+      "fields" : [
+        ["version", 4, false],
+        ["traffic_class", 8, false],
+        ["flow_label", 20, false],
+        ["payload_len", 16, false],
+        ["next_hdr", 8, false],
+        ["hop_limit", 8, false],
+        ["src_addr", 128, false],
+        ["dst_addr", 128, false]
+      ]
+    },
+    {
+      "name" : "tcp_t",
+      "id" : 20,
+      "fields" : [
+        ["sport", 16, false],
+        ["dport", 16, false]
+      ]
+    },
+    {
+      "name" : "icmp_t",
+      "id" : 21,
+      "fields" : [
+        ["icmp_type", 8, false],
+        ["icmp_code", 8, false]
+      ]
+    },
+    {
+      "name" : "gtpu_options_t",
+      "id" : 22,
+      "fields" : [
+        ["seq_num", 16, false],
+        ["n_pdu_num", 8, false],
+        ["next_ext", 8, false]
+      ]
+    },
+    {
+      "name" : "gtpu_ext_psc_t",
+      "id" : 23,
+      "fields" : [
+        ["len", 8, false],
+        ["type", 4, false],
+        ["spare0", 4, false],
+        ["ppp", 1, false],
+        ["rqi", 1, false],
+        ["qfi", 6, false],
+        ["next_ext", 8, false]
+      ]
+    },
+    {
+      "name" : "vxlan_t",
+      "id" : 24,
+      "fields" : [
+        ["flags", 8, false],
+        ["reserved", 24, false],
+        ["vni", 24, false],
+        ["reserved_2", 8, false]
+      ]
+    }
+  ],
+  "headers" : [
+    {
+      "name" : "tmp",
+      "id" : 0,
+      "header_type" : "fake_ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "tmp_0",
+      "id" : 1,
+      "header_type" : "packet_out_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "tmp_1",
+      "id" : 2,
+      "header_type" : "fake_ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "gtpu_0",
+      "id" : 3,
+      "header_type" : "gtpu_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_report_ethernet",
+      "id" : 4,
+      "header_type" : "ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_report_eth_type",
+      "id" : 5,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_report_ipv4",
+      "id" : 6,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_report_udp",
+      "id" : 7,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_report_fixed_header",
+      "id" : 8,
+      "header_type" : "report_fixed_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_common_report_header",
+      "id" : 9,
+      "header_type" : "common_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_local_report_header",
+      "id" : 10,
+      "header_type" : "local_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "parser_emulator_hdr_drop_report_header",
+      "id" : 11,
+      "header_type" : "drop_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_report_eth_type",
+      "id" : 12,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_report_mpls",
+      "id" : 13,
+      "header_type" : "mpls_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_report_ipv4",
+      "id" : 14,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_report_udp",
+      "id" : 15,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_report_fixed_header",
+      "id" : 16,
+      "header_type" : "report_fixed_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_common_report_header",
+      "id" : 17,
+      "header_type" : "common_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_local_report_header",
+      "id" : 18,
+      "header_type" : "local_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_drop_report_header",
+      "id" : 19,
+      "header_type" : "drop_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_hdr_eth_type",
+      "id" : 20,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_fabric_md_bridged",
+      "id" : 21,
+      "header_type" : "bridged_metadata_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_fabric_md_int_report_md",
+      "id" : 22,
+      "header_type" : "int_report_metadata_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "int_egress_fabric_md_int_md",
+      "id" : 23,
+      "header_type" : "int_metadata_t",
+      "metadata" : true,
+      "pi_omit" : true
+    },
+    {
+      "name" : "scalars",
+      "id" : 24,
+      "header_type" : "scalars_0",
+      "metadata" : true,
+      "pi_omit" : true
+    },
+    {
+      "name" : "standard_metadata",
+      "id" : 25,
+      "header_type" : "standard_metadata",
+      "metadata" : true,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_packet_out0",
+      "id" : 26,
+      "header_type" : "packet_out_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_packet_in1",
+      "id" : 27,
+      "header_type" : "packet_in_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_fake_ethernet2",
+      "id" : 28,
+      "header_type" : "fake_ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_ethernet3",
+      "id" : 29,
+      "header_type" : "ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_vlan_tag4",
+      "id" : 30,
+      "header_type" : "vlan_tag_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_eth_type5",
+      "id" : 31,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_mpls6",
+      "id" : 32,
+      "header_type" : "mpls_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_ipv47",
+      "id" : 33,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_ipv68",
+      "id" : 34,
+      "header_type" : "ipv6_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_tcp9",
+      "id" : 35,
+      "header_type" : "tcp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_udp10",
+      "id" : 36,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_icmp11",
+      "id" : 37,
+      "header_type" : "icmp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_gtpu12",
+      "id" : 38,
+      "header_type" : "gtpu_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_gtpu_options13",
+      "id" : 39,
+      "header_type" : "gtpu_options_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_gtpu_ext_psc14",
+      "id" : 40,
+      "header_type" : "gtpu_ext_psc_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_vxlan15",
+      "id" : 41,
+      "header_type" : "vxlan_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_ethernet16",
+      "id" : 42,
+      "header_type" : "ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_eth_type17",
+      "id" : 43,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_ipv418",
+      "id" : 44,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_tcp19",
+      "id" : 45,
+      "header_type" : "tcp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_udp20",
+      "id" : 46,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_inner_icmp21",
+      "id" : 47,
+      "header_type" : "icmp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_packet_in22",
+      "id" : 48,
+      "header_type" : "packet_in_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_fake_ethernet23",
+      "id" : 49,
+      "header_type" : "fake_ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_ethernet24",
+      "id" : 50,
+      "header_type" : "ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_eth_type25",
+      "id" : 51,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_mpls26",
+      "id" : 52,
+      "header_type" : "mpls_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_ipv427",
+      "id" : 53,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_udp28",
+      "id" : 54,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_report_fixed_header29",
+      "id" : 55,
+      "header_type" : "report_fixed_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_common_report_header30",
+      "id" : 56,
+      "header_type" : "common_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_local_report_header31",
+      "id" : 57,
+      "header_type" : "local_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_drop_report_header32",
+      "id" : 58,
+      "header_type" : "drop_report_header_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_ethernet33",
+      "id" : 59,
+      "header_type" : "ethernet_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_vlan_tag34",
+      "id" : 60,
+      "header_type" : "vlan_tag_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_eth_type35",
+      "id" : 61,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_mpls36",
+      "id" : 62,
+      "header_type" : "mpls_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_ipv437",
+      "id" : 63,
+      "header_type" : "ipv4_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_ipv638",
+      "id" : 64,
+      "header_type" : "ipv6_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_udp39",
+      "id" : 65,
+      "header_type" : "udp_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_ingress_bridged4",
+      "id" : 66,
+      "header_type" : "bridged_metadata_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_bridged36",
+      "id" : 67,
+      "header_type" : "bridged_metadata_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "_egress_int_report_md38",
+      "id" : 68,
+      "header_type" : "int_report_metadata_t",
+      "metadata" : false,
+      "pi_omit" : true
+    }
+  ],
+  "header_stacks" : [],
+  "header_union_types" : [],
+  "header_unions" : [],
+  "header_union_stacks" : [],
+  "field_lists" : [
+    {
+      "id" : 1,
+      "name" : "field_list241",
+      "elements" : [
+        {
+          "type" : "field",
+          "value" : ["scalars", "userMetadata._recirc_preserved_report_type46"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+        }
+      ]
+    },
+    {
+      "id" : 2,
+      "name" : "field_list231",
+      "elements" : [
+        {
+          "type" : "field",
+          "value" : ["scalars", "userMetadata._recirc_preserved_ingress_port49"]
+        }
+      ]
+    },
+    {
+      "id" : 3,
+      "name" : "empty",
+      "elements" : []
+    },
+    {
+      "id" : 4,
+      "name" : "empty_0",
+      "elements" : []
+    },
+    {
+      "id" : 5,
+      "name" : "empty_1",
+      "elements" : []
+    }
+  ],
+  "errors" : [
+    ["NoError", 1],
+    ["PacketTooShort", 2],
+    ["NoMatch", 3],
+    ["StackOutOfBounds", 4],
+    ["HeaderTooShort", 5],
+    ["ParserTimeout", 6],
+    ["ParserInvalidArgument", 7],
+    ["PacketRejectedByParser", 8]
+  ],
+  "enums" : [],
+  "parsers" : [
+    {
+      "name" : "parser",
+      "id" : 0,
+      "init_state" : "start",
+      "parse_states" : [
+        {
+          "name" : "start",
+          "id" : 0,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._egress_pkt_length45"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "packet_length"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x0000ffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "_ingress_bridged4"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_bmd_type0"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x01"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_ig_port3"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["standard_metadata", "ingress_port"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._recirc_preserved_ingress_port49"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["standard_metadata", "ingress_port"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_ig_tstamp9"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["standard_metadata", "ingress_global_timestamp"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "b2d",
+                      "left" : null,
+                      "right" : {
+                        "type" : "bool",
+                        "value" : false
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._ingress_punt_to_cpu23"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "b2d",
+                      "left" : null,
+                      "right" : {
+                        "type" : "bool",
+                        "value" : false
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_ip_eth_type10"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x0000"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_int_bmd_wip_type18"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_encap_presence7"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._ingress_upf_meter_color32"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_8"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 112]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "tmp"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp", "_pad0"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_8"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x40"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp", "_pad1"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_8"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x10"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp", "ether_type"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_8"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_2"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_8"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0xbf02",
+              "mask" : null,
+              "next_state" : "parse_fake_ethernet"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf03",
+              "mask" : null,
+              "next_state" : "parse_fake_ethernet_and_accept"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf01",
+              "mask" : null,
+              "next_state" : "check_packet_out"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04",
+              "mask" : null,
+              "next_state" : "parse_int_wip_ipv4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf05",
+              "mask" : null,
+              "next_state" : "parse_int_wip_mpls"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_ethernet"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_2"]
+            }
+          ]
+        },
+        {
+          "name" : "check_packet_out",
+          "id" : 1,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_9"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 112]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "tmp_0"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "pad0"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x69"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x7f"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "egress_port"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x60"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01ff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "pad1"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x5d"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "queue_id"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x58"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x1f"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "pad2"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x53"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x1f"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "cpu_loopback_mode"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x51"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "do_forwarding"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x50"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "pad3"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x40"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "pad4"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x10"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_0", "ether_type"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_9"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_4"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x50"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x00",
+              "mask" : null,
+              "next_state" : "parse_packet_out_and_accept"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "strip_packet_out"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_4"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_int_wip_ipv4",
+          "id" : 2,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "_ingress_ethernet3"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "_ingress_eth_type5"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_eth_type5", "value"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x0800"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_int_bmd_wip_type18"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x01"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x000000"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_ttl8"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x41"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00000070"
+                }
+              ],
+              "op" : "advance"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_int_wip_mpls",
+          "id" : 3,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "_ingress_ethernet3"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "_ingress_eth_type5"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_eth_type5", "value"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x8847"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_int_bmd_wip_type18"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x02"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00000070"
+                }
+              ],
+              "op" : "advance"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_mpls"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_packet_out_and_accept",
+          "id" : 4,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_packet_out0"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "strip_packet_out",
+          "id" : 5,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "hexstr",
+                  "value" : "0x00000070"
+                }
+              ],
+              "op" : "advance"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_ethernet"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_fake_ethernet",
+          "id" : 6,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_fake_ethernet2"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_10"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 112]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "tmp_1"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_1", "_pad0"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_10"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x40"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_1", "_pad1"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_10"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x10"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["tmp_1", "ether_type"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_10"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_6"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_10"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04",
+              "mask" : null,
+              "next_state" : "parse_int_wip_ipv4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf05",
+              "mask" : null,
+              "next_state" : "parse_int_wip_mpls"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_ethernet"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_6"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_fake_ethernet_and_accept",
+          "id" : 7,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_fake_ethernet2"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_ethernet",
+          "id" : 8,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_ethernet3"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_3"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 16]
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x88a8",
+              "mask" : null,
+              "next_state" : "parse_vlan_tag"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100",
+              "mask" : "0xefff",
+              "next_state" : "parse_vlan_tag"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_untagged"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_3"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_vlan_tag",
+          "id" : 9,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_vlan_tag4"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_vlan_id6"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_vlan_tag4", "vlan_id"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_5"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 16]
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_eth_type"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_5"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_untagged",
+          "id" : 10,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_vlan_id6"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x0ffe"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_eth_type"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_eth_type",
+          "id" : 11,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_eth_type5"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x8847",
+              "mask" : null,
+              "next_state" : "parse_mpls"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_non_mpls"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x86dd",
+              "mask" : null,
+              "next_state" : "parse_non_mpls"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_mpls",
+          "id" : 12,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_mpls6"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_mpls6", "label"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_ttl8"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_mpls6", "ttl"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_7"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 4]
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x04",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x06",
+              "mask" : null,
+              "next_state" : "parse_ipv6"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "reject_packet"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_7"]
+            }
+          ]
+        },
+        {
+          "name" : "reject_packet",
+          "id" : 13,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "bool",
+                  "value" : false
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x8"
+                }
+              ],
+              "op" : "verify"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_non_mpls",
+          "id" : 14,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x000000"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_mpls_ttl8"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x41"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x86dd",
+              "mask" : null,
+              "next_state" : "parse_ipv6"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_ipv4",
+          "id" : 15,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_ipv47"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "userMetadata._ingress_routing_ipv4_dst18"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_ipv47", "dst_addr"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_ip_eth_type10"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x0800"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x06",
+              "mask" : null,
+              "next_state" : "parse_tcp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11",
+              "mask" : null,
+              "next_state" : "parse_udp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01",
+              "mask" : null,
+              "next_state" : "parse_icmp"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "protocol"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_ipv6",
+          "id" : 16,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_ipv68"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_ip_eth_type10"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x86dd"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x06",
+              "mask" : null,
+              "next_state" : "parse_tcp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11",
+              "mask" : null,
+              "next_state" : "parse_udp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x3a",
+              "mask" : null,
+              "next_state" : "parse_icmp"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv68", "next_hdr"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_icmp",
+          "id" : 17,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_icmp11"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_tcp",
+          "id" : 18,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_tcp9"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_udp",
+          "id" : 19,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_udp10"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_11"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 64]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "parameters" : [
+                    {
+                      "type" : "header",
+                      "value" : "gtpu_0"
+                    }
+                  ],
+                  "op" : "add_header"
+                }
+              ],
+              "op" : "primitive"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "version"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3d"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "pt"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3c"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "spare"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3b"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "ex_flag"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3a"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "seq_flag"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x39"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "npdu_flag"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x38"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "msgtype"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x30"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "msglen"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x20"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["gtpu_0", "teid"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "tmp_11"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_12"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3d"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_13"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "tmp_11"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x30"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffffffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x086801ff",
+              "mask" : null,
+              "next_state" : "parse_gtpu"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x12b50000",
+              "mask" : "0xffff0000",
+              "next_state" : "parse_vxlan"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_udp10", "dport"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_12"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_13"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_gtpu",
+          "id" : 20,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_gtpu12"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x000000",
+              "mask" : null,
+              "next_state" : "set_gtpu_only"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_gtpu_options"
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu12", "ex_flag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu12", "seq_flag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu12", "npdu_flag"]
+            }
+          ]
+        },
+        {
+          "name" : "set_gtpu_only",
+          "id" : 21,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_encap_presence7"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x01"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : "parse_inner_ipv4"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_gtpu_options",
+          "id" : 22,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_gtpu_options13"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "gtpu_ext_len_0"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 8]
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x8501",
+              "mask" : null,
+              "next_state" : "parse_gtpu_ext_psc"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu_options13", "next_ext"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "gtpu_ext_len_0"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_gtpu_ext_psc",
+          "id" : 23,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_gtpu_ext_psc14"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_encap_presence7"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x02"
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x00",
+              "mask" : null,
+              "next_state" : "parse_inner_ipv4"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu_ext_psc14", "next_ext"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_vxlan",
+          "id" : 24,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_vxlan15"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["_ingress_bridged4", "_base_encap_presence7"]
+                },
+                {
+                  "type" : "hexstr",
+                  "value" : "0x03"
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_ethernet16"
+                }
+              ],
+              "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_eth_type17"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_inner_ipv4"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_eth_type17", "value"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_inner_ipv4",
+          "id" : 25,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_ipv418"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x06",
+              "mask" : null,
+              "next_state" : "parse_inner_tcp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11",
+              "mask" : null,
+              "next_state" : "parse_inner_udp"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01",
+              "mask" : null,
+              "next_state" : "parse_inner_icmp"
+            },
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_ipv418", "protocol"]
+            }
+          ]
+        },
+        {
+          "name" : "parse_inner_tcp",
+          "id" : 26,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_tcp19"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_inner_udp",
+          "id" : 27,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_udp20"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_inner_icmp",
+          "id" : 28,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "_ingress_inner_icmp21"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
+            {
+              "type" : "default",
+              "value" : null,
+              "mask" : null,
+              "next_state" : null
+            }
+          ],
+          "transition_key" : []
+        }
+      ]
+    }
+  ],
+  "parse_vsets" : [],
+  "deparsers" : [
+    {
+      "name" : "deparser",
+      "id" : 0,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/parser.p4",
+        "line" : 321,
+        "column" : 8,
+        "source_fragment" : "FabricDeparser"
+      },
+      "order" : ["_ingress_fake_ethernet2", "_ingress_packet_in1", "_egress_report_ethernet24", "_egress_report_eth_type25", "_egress_report_mpls26", "_egress_report_ipv427", "_egress_report_udp28", "_egress_report_fixed_header29", "_egress_common_report_header30", "_egress_local_report_header31", "_egress_drop_report_header32", "_ingress_ethernet3", "_ingress_vlan_tag4", "_ingress_eth_type5", "_ingress_mpls6", "_ingress_ipv47", "_ingress_ipv68", "_ingress_tcp9", "_ingress_udp10", "_ingress_icmp11", "_ingress_gtpu12", "_ingress_gtpu_options13", "_ingress_gtpu_ext_psc14", "_ingress_vxlan15", "_ingress_inner_ethernet16", "_ingress_inner_eth_type17", "_ingress_inner_ipv418", "_ingress_inner_tcp19", "_ingress_inner_udp20", "_ingress_inner_icmp21"],
+      "primitives" : []
+    }
+  ],
+  "meter_arrays" : [
+    {
+      "name" : "FabricIngress.qos.slice_tc_meter",
+      "id" : 0,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+        "line" : 104,
+        "column" : 41,
+        "source_fragment" : "slice_tc_meter"
+      },
+      "is_direct" : false,
+      "size" : 64,
+      "rate_count" : 2,
+      "type" : "bytes"
+    }
+  ],
+  "counter_arrays" : [
+    {
+      "name" : "FabricIngress.stats.flow_counter",
+      "id" : 0,
+      "is_direct" : true,
+      "binding" : "FabricIngress.stats.flows",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+        "line" : 14,
+        "column" : 50,
+        "source_fragment" : "flow_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
+      "id" : 1,
+      "is_direct" : true,
+      "binding" : "FabricIngress.filtering.ingress_port_vlan",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+        "line" : 17,
+        "column" : 50,
+        "source_fragment" : "ingress_port_vlan_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.filtering.fwd_classifier_counter",
+      "id" : 2,
+      "is_direct" : true,
+      "binding" : "FabricIngress.filtering.fwd_classifier",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+        "line" : 71,
+        "column" : 50,
+        "source_fragment" : "fwd_classifier_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.filtering.fwd_type_counter",
+      "id" : 3,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+        "line" : 78,
+        "column" : 46,
+        "source_fragment" : "fwd_type_counter"
+      },
+      "size" : 8,
+      "is_direct" : false
+    },
+    {
+      "name" : "FabricIngress.forwarding.bridging_counter",
+      "id" : 4,
+      "is_direct" : true,
+      "binding" : "FabricIngress.forwarding.bridging",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+        "line" : 29,
+        "column" : 50,
+        "source_fragment" : "bridging_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.forwarding.mpls_counter",
+      "id" : 5,
+      "is_direct" : true,
+      "binding" : "FabricIngress.forwarding.mpls",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+        "line" : 64,
+        "column" : 50,
+        "source_fragment" : "mpls_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.forwarding.routing_v4_counter",
+      "id" : 6,
+      "is_direct" : true,
+      "binding" : "FabricIngress.forwarding.routing_v4",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+        "line" : 98,
+        "column" : 50,
+        "source_fragment" : "routing_v4_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.forwarding.routing_v6_counter",
+      "id" : 7,
+      "is_direct" : true,
+      "binding" : "FabricIngress.forwarding.routing_v6",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+        "line" : 142,
+        "column" : 50,
+        "source_fragment" : "routing_v6_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.pre_next.next_mpls_counter",
+      "id" : 8,
+      "is_direct" : true,
+      "binding" : "FabricIngress.pre_next.next_mpls",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+        "line" : 15,
+        "column" : 50,
+        "source_fragment" : "next_mpls_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.pre_next.next_vlan_counter",
+      "id" : 9,
+      "is_direct" : true,
+      "binding" : "FabricIngress.pre_next.next_vlan",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+        "line" : 39,
+        "column" : 50,
+        "source_fragment" : "next_vlan_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.acl.acl_counter",
+      "id" : 10,
+      "is_direct" : true,
+      "binding" : "FabricIngress.acl.acl",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+        "line" : 19,
+        "column" : 50,
+        "source_fragment" : "acl_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.next.simple_counter",
+      "id" : 11,
+      "is_direct" : true,
+      "binding" : "FabricIngress.next.simple",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+        "line" : 76,
+        "column" : 50,
+        "source_fragment" : "simple_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.next.hashed_counter",
+      "id" : 12,
+      "is_direct" : true,
+      "binding" : "FabricIngress.next.hashed",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+        "line" : 115,
+        "column" : 50,
+        "source_fragment" : "hashed_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.next.multicast_counter",
+      "id" : 13,
+      "is_direct" : true,
+      "binding" : "FabricIngress.next.multicast",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+        "line" : 148,
+        "column" : 50,
+        "source_fragment" : "multicast_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.slice_tc_classifier.classifier_stats",
+      "id" : 14,
+      "is_direct" : true,
+      "binding" : "FabricIngress.slice_tc_classifier.classifier",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+        "line" : 20,
+        "column" : 40,
+        "source_fragment" : "classifier_stats"
+      }
+    },
+    {
+      "name" : "FabricIngress.qos.queues_stats",
+      "id" : 15,
+      "is_direct" : true,
+      "binding" : "FabricIngress.qos.queues",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+        "line" : 106,
+        "column" : 40,
+        "source_fragment" : "queues_stats"
+      }
+    },
+    {
+      "name" : "FabricIngress.int_watchlist.watchlist_counter",
+      "id" : 16,
+      "is_direct" : true,
+      "binding" : "FabricIngress.int_watchlist.watchlist",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+        "line" : 15,
+        "column" : 50,
+        "source_fragment" : "watchlist_counter"
+      }
+    },
+    {
+      "name" : "FabricIngress.int_ingress.drop_report_counter",
+      "id" : 17,
+      "is_direct" : true,
+      "binding" : "FabricIngress.int_ingress.drop_report",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+        "line" : 64,
+        "column" : 50,
+        "source_fragment" : "drop_report_counter"
+      }
+    },
+    {
+      "name" : "FabricEgress.stats.flow_counter",
+      "id" : 18,
+      "is_direct" : true,
+      "binding" : "FabricEgress.stats.flows",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+        "line" : 47,
+        "column" : 50,
+        "source_fragment" : "flow_counter"
+      }
+    },
+    {
+      "name" : "FabricEgress.egress_next.egress_vlan_counter",
+      "id" : 19,
+      "is_direct" : true,
+      "binding" : "FabricEgress.egress_next.egress_vlan",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+        "line" : 241,
+        "column" : 50,
+        "source_fragment" : "egress_vlan_counter"
+      }
+    },
+    {
+      "name" : "FabricEgress.int_egress.report_counter",
+      "id" : 20,
+      "is_direct" : true,
+      "binding" : "FabricEgress.int_egress.report",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+        "line" : 131,
+        "column" : 50,
+        "source_fragment" : "report_counter"
+      }
+    },
+    {
+      "name" : "FabricEgress.int_egress.int_metadata_counter",
+      "id" : 21,
+      "is_direct" : true,
+      "binding" : "FabricEgress.int_egress.int_metadata",
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+        "line" : 132,
+        "column" : 50,
+        "source_fragment" : "int_metadata_counter"
+      }
+    }
+  ],
+  "register_arrays" : [
+    {
+      "name" : "FabricEgress.int_egress.seq_number",
+      "id" : 0,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+        "line" : 138,
+        "column" : 28,
+        "source_fragment" : "seq_number"
+      },
+      "size" : 1024,
+      "bitwidth" : 32
+    }
+  ],
+  "calculations" : [
+    {
+      "name" : "calc",
+      "id" : 0,
+      "algo" : "crc32",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_15"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_16"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_17"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_0",
+      "id" : 1,
+      "algo" : "crc32",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_18"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_19"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_20"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_1",
+      "id" : 2,
+      "algo" : "crc32",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_21"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_22"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_23"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_24"]
+        },
+        {
+          "type" : "field",
+          "value" : ["scalars", "tmp_25"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_2",
+      "id" : 3,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 55,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.ingress.ipv4.isValid(), ..."
+      },
+      "algo" : "csum16",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "version"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ihl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "dscp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ecn"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "total_len"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "identification"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "flags"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "frag_offset"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ttl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "protocol"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "src_addr"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "dst_addr"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_3",
+      "id" : 4,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 73,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.ingress.inner_ipv4.isValid(), ..."
+      },
+      "algo" : "csum16",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "version"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ihl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "dscp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ecn"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "total_len"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "identification"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "flags"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "frag_offset"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ttl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "protocol"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "src_addr"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "dst_addr"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_4",
+      "id" : 5,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 92,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.egress.report_ipv4.isValid(), ..."
+      },
+      "algo" : "csum16",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "version"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "ihl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "dscp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "ecn"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "total_len"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "identification"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "flags"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "frag_offset"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "ttl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "protocol"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "src_addr"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_egress_report_ipv427", "dst_addr"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_5",
+      "id" : 6,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 13,
+        "column" : 8,
+        "source_fragment" : "verify_checksum(hdr.ingress.ipv4.isValid(), ..."
+      },
+      "algo" : "csum16",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "version"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ihl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "dscp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ecn"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "total_len"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "identification"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "flags"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "frag_offset"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "ttl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "protocol"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "src_addr"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_ipv47", "dst_addr"]
+        }
+      ]
+    },
+    {
+      "name" : "calc_6",
+      "id" : 7,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 31,
+        "column" : 8,
+        "source_fragment" : "verify_checksum(hdr.ingress.inner_ipv4.isValid(), ..."
+      },
+      "algo" : "csum16",
+      "input" : [
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "version"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ihl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "dscp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ecn"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "total_len"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "identification"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "flags"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "frag_offset"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "ttl"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "protocol"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "src_addr"]
+        },
+        {
+          "type" : "field",
+          "value" : ["_ingress_inner_ipv418", "dst_addr"]
+        }
+      ]
+    }
+  ],
+  "learn_lists" : [],
+  "actions" : [
+    {
+      "name" : "nop",
+      "id" : 0,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 1,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 2,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 3,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 4,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 5,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 6,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.stats.count",
+      "id" : 7,
+      "runtime_data" : [
+        {
+          "name" : "flow_id",
+          "bitwidth" : 10
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_stats_flow_id11"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+            "line" : 17,
+            "column" : 22,
+            "source_fragment" : "= flow_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.pkt_io.do_packet_out",
+      "id" : 8,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_packet_out0", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 13,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t)hdr.packet_out.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_packet_out0", "egress_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 14,
+            "column" : 37,
+            "source_fragment" : "= hdr.packet_out.egress_port; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 15,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_packet_out0"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 16,
+            "column" : 8,
+            "source_fragment" : "hdr.packet_out.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._skip_egress0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 17,
+            "column" : 20,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_bridged4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 19,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.setInvalid()"
+          }
+        },
+        {
+          "op" : "exit",
+          "parameters" : [],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 20,
+            "column" : 8,
+            "source_fragment" : "exit"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.filtering.deny",
+      "id" : 9,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_forwarding19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 22,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 23,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ig_port_type33"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 100,
+            "column" : 14,
+            "source_fragment" : "0x0, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x37"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 250,
+            "column" : 41,
+            "source_fragment" : "55, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.filtering.permit",
+      "id" : 10,
+      "runtime_data" : [
+        {
+          "name" : "port_type",
+          "bitwidth" : 2
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ig_port_type33"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 33,
+            "column" : 31,
+            "source_fragment" : "= port_type; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.filtering.permit_with_internal_vlan",
+      "id" : 11,
+      "runtime_data" : [
+        {
+          "name" : "vlan_id",
+          "bitwidth" : 12
+        },
+        {
+          "name" : "port_type",
+          "bitwidth" : 2
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_vlan_id6"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 38,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.vlan_id = vlan_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ig_port_type33"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 33,
+            "column" : 31,
+            "source_fragment" : "= port_type; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.filtering.set_forwarding_type",
+      "id" : 12,
+      "runtime_data" : [
+        {
+          "name" : "fwd_type",
+          "bitwidth" : 3
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.fwd_type = fwd_type"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_int_drop_reason",
+      "id" : 13,
+      "runtime_data" : [
+        {
+          "name" : "drop_reason",
+          "bitwidth" : 8
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.drop_reason = (IntDropReason_t)drop_reason"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_int_drop_reason",
+      "id" : 14,
+      "runtime_data" : [
+        {
+          "name" : "drop_reason",
+          "bitwidth" : 8
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.drop_reason = (IntDropReason_t)drop_reason"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_int_drop_reason",
+      "id" : 15,
+      "runtime_data" : [
+        {
+          "name" : "drop_reason",
+          "bitwidth" : 8
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.drop_reason = (IntDropReason_t)drop_reason"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_int_drop_reason",
+      "id" : 16,
+      "runtime_data" : [
+        {
+          "name" : "drop_reason",
+          "bitwidth" : 8
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.drop_reason = (IntDropReason_t)drop_reason"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_next_id_bridging",
+      "id" : 17,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_next_id21"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 23,
+            "column" : 26,
+            "source_fragment" : "= next_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.pop_mpls_and_next",
+      "id" : 18,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_mpls6"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 67,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_ip_eth_type10"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 68,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_next_id21"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 23,
+            "column" : 26,
+            "source_fragment" : "= next_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
+      "id" : 19,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_next_id21"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 23,
+            "column" : 26,
+            "source_fragment" : "= next_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.nop_routing_v4",
+      "id" : 20,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.forwarding.drop_routing_v4",
+      "id" : 21,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 111,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 113,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.set_next_id_routing_v6",
+      "id" : 22,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_next_id21"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 23,
+            "column" : 26,
+            "source_fragment" : "= next_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.forwarding.drop_routing_v6",
+      "id" : 23,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 150,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 152,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.pre_next.set_mpls_label",
+      "id" : 24,
+      "runtime_data" : [
+        {
+          "name" : "label",
+          "bitwidth" : 20
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+            "line" : 18,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label = label"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.pre_next.set_vlan",
+      "id" : 25,
+      "runtime_data" : [
+        {
+          "name" : "vlan_id",
+          "bitwidth" : 12
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_vlan_id6"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+            "line" : 42,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.vlan_id = vlan_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.set_next_id_acl",
+      "id" : 26,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_next_id21"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 22,
+            "column" : 26,
+            "source_fragment" : "= next_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 26,
+            "column" : 28,
+            "source_fragment" : "= false; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 27,
+            "column" : 17,
+            "source_fragment" : "= 0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.copy_to_cpu",
+      "id" : 27,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "clone_ingress_pkt_to_egress",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x000001ff"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x2"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 31,
+            "column" : 8,
+            "source_fragment" : "clone_preserving_field_list(CloneType.I2E, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.punt_to_cpu",
+      "id" : 28,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "clone_ingress_pkt_to_egress",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x000001ff"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x2"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 31,
+            "column" : 8,
+            "source_fragment" : "clone_preserving_field_list(CloneType.I2E, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 40,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_punt_to_cpu23"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 41,
+            "column" : 30,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 42,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.drop",
+      "id" : 29,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 46,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 47,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x50"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 252,
+            "column" : 27,
+            "source_fragment" : "80, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.set_output_port",
+      "id" : 30,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 62,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t) port_num"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 63,
+            "column" : 37,
+            "source_fragment" : "= port_num; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 64,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 65,
+            "column" : 28,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 66,
+            "column" : 17,
+            "source_fragment" : "= 0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.acl.nop_acl",
+      "id" : 31,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.next.output_simple",
+      "id" : 32,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 16,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t)port_num"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 17,
+            "column" : 37,
+            "source_fragment" : "= port_num; // Needed by INT. ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 18,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.routing_simple",
+      "id" : 33,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        },
+        {
+          "name" : "smac",
+          "bitwidth" : 48
+        },
+        {
+          "name" : "dmac",
+          "bitwidth" : 48
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 23,
+            "column" : 8,
+            "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 28,
+            "column" : 8,
+            "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 16,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t)port_num"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 17,
+            "column" : 37,
+            "source_fragment" : "= port_num; // Needed by INT. ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 18,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.output_hashed",
+      "id" : 34,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 16,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t)port_num"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 17,
+            "column" : 37,
+            "source_fragment" : "= port_num; // Needed by INT. ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 18,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.routing_hashed",
+      "id" : 35,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        },
+        {
+          "name" : "smac",
+          "bitwidth" : 48
+        },
+        {
+          "name" : "dmac",
+          "bitwidth" : 48
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 23,
+            "column" : 8,
+            "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 28,
+            "column" : 8,
+            "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 16,
+            "column" : 8,
+            "source_fragment" : "standard_md.egress_spec = (PortId_t)port_num"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_egress_port47"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 17,
+            "column" : 37,
+            "source_fragment" : "= port_num; // Needed by INT. ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_egress_port_set22"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 18,
+            "column" : 34,
+            "source_fragment" : "= true; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.set_mcast_group_id",
+      "id" : 36,
+      "runtime_data" : [
+        {
+          "name" : "group_id",
+          "bitwidth" : 16
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "mcast_grp"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 151,
+            "column" : 8,
+            "source_fragment" : "standard_md.mcast_grp = group_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_is_multicast4"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 152,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.is_multicast = true"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.reset_mcast_group_id",
+      "id" : 37,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "mcast_grp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 157,
+            "column" : 8,
+            "source_fragment" : "standard_md.mcast_grp = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_is_multicast4"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 158,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.is_multicast = false"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.slice_tc_classifier.set_slice_id_tc",
+      "id" : 38,
+      "runtime_data" : [
+        {
+          "name" : "slice_id",
+          "bitwidth" : 4
+        },
+        {
+          "name" : "tc",
+          "bitwidth" : 2
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_slice_id26"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 23,
+            "column" : 27,
+            "source_fragment" : "= slice_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc27"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 24,
+            "column" : 21,
+            "source_fragment" : "= tc; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc_unknown28"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 25,
+            "column" : 29,
+            "source_fragment" : "= false; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.slice_tc_classifier.no_classification",
+      "id" : 39,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_slice_id26"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 57,
+            "column" : 36,
+            "source_fragment" : "0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc27"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 58,
+            "column" : 24,
+            "source_fragment" : "0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc_unknown28"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 25,
+            "column" : 29,
+            "source_fragment" : "= false; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc_unknown28"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 31,
+            "column" : 29,
+            "source_fragment" : "= true; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.slice_tc_classifier.trust_dscp",
+      "id" : 40,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_slice_id26"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : ">>",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["_ingress_ipv47", "dscp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x2"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x3f"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x0f"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 38,
+            "column" : 27,
+            "source_fragment" : "= hdr.ipv4.dscp[4 +2 -1:2]; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc27"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_ipv47", "dscp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x03"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 39,
+            "column" : 21,
+            "source_fragment" : "= hdr.ipv4.dscp[2 -1:0]; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_tc_unknown28"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 40,
+            "column" : 29,
+            "source_fragment" : "= false; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.qos.use_upf",
+      "id" : 41,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_slice_tc12"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "|",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "<<",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "userMetadata._ingress_upf_slice_id30"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3f"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x2"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x3f"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["scalars", "userMetadata._ingress_upf_tc31"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x3f"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 81,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.slice_tc = fabric_md.upf_slice_id++fabric_md.upf_tc"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.qos.use_default",
+      "id" : 42,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_slice_tc12"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "|",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "<<",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["scalars", "userMetadata._ingress_slice_id26"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3f"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x2"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x3f"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["scalars", "userMetadata._ingress_tc27"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x3f"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 86,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.slice_tc = fabric_md.slice_id++fabric_md.tc"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.qos.set_queue",
+      "id" : 43,
+      "runtime_data" : [
+        {
+          "name" : "qid",
+          "bitwidth" : 5
+        }
+      ],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.qos.meter_drop",
+      "id" : 44,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 115,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xa0"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 269,
+            "column" : 36,
+            "source_fragment" : "160, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.qos.set_default_tc",
+      "id" : 45,
+      "runtime_data" : [
+        {
+          "name" : "tc",
+          "bitwidth" : 2
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_slice_tc12"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "|",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "<<",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "expression",
+                                "value" : {
+                                  "op" : "&",
+                                  "left" : {
+                                    "type" : "expression",
+                                    "value" : {
+                                      "op" : "&",
+                                      "left" : {
+                                        "type" : "expression",
+                                        "value" : {
+                                          "op" : ">>",
+                                          "left" : {
+                                            "type" : "field",
+                                            "value" : ["_ingress_bridged4", "_base_slice_tc12"]
+                                          },
+                                          "right" : {
+                                            "type" : "hexstr",
+                                            "value" : "0x2"
+                                          }
+                                        }
+                                      },
+                                      "right" : {
+                                        "type" : "hexstr",
+                                        "value" : "0x3f"
+                                      }
+                                    }
+                                  },
+                                  "right" : {
+                                    "type" : "hexstr",
+                                    "value" : "0x0f"
+                                  }
+                                }
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x3f"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x2"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x3f"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "local",
+                            "value" : 0
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x3f"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 146,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.slice_tc = fabric_md.bridged.base.slice_tc[4 +2 -1:2]++tc"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.int_watchlist.mark_to_report",
+      "id" : 46,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 223,
+            "column" : 45,
+            "source_fragment" : "1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_report_type46"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 223,
+            "column" : 45,
+            "source_fragment" : "1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.int_watchlist.no_report",
+      "id" : 47,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 219,
+            "column" : 50,
+            "source_fragment" : "0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_report_type46"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 219,
+            "column" : 50,
+            "source_fragment" : "0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.int_watchlist.no_report_collector",
+      "id" : 48,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 219,
+            "column" : 50,
+            "source_fragment" : "0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.int_ingress.report_drop",
+      "id" : 49,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_bmd_type0"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 169,
+            "column" : 23,
+            "source_fragment" : "4, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 221,
+            "column" : 45,
+            "source_fragment" : "4; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_vlan_id6"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0ffe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 147,
+            "column" : 34,
+            "source_fragment" : "12w4094; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_mpls_label2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 79,
+            "column" : 17,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01fe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/define_v1model.p4",
+            "line" : 36,
+            "column" : 42,
+            "source_fragment" : "510; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model64",
+      "id" : 50,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "exit",
+          "parameters" : [],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 64,
+            "column" : 12,
+            "source_fragment" : "exit"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model61",
+      "id" : 51,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model70",
+      "id" : 52,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_ig_port3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01fe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/define_v1model.p4",
+            "line" : 36,
+            "column" : 42,
+            "source_fragment" : "510; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init21",
+      "id" : 53,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_vlan_id9"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_vlan_tag4", "vlan_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 21,
+            "column" : 27,
+            "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init15",
+      "id" : 54,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_eth_dst6"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "dst_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 15,
+            "column" : 23,
+            "source_fragment" : "= hdr.ethernet.dst_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_eth_src7"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "src_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 16,
+            "column" : 23,
+            "source_fragment" : "= hdr.ethernet.src_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_eth_type8"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 17,
+            "column" : 24,
+            "source_fragment" : "= hdr.eth_type.value; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_vlan_id9"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 19,
+            "column" : 23,
+            "source_fragment" : "= 0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init38",
+      "id" : 55,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_tcp19", "sport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 38,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_tcp.sport; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_tcp19", "dport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 39,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_tcp.dport; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init41",
+      "id" : 56,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_udp20", "sport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 41,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_udp.sport; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_udp20", "dport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 42,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_udp.dport; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init44",
+      "id" : 57,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_type16"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_icmp21", "icmp_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 44,
+            "column" : 33,
+            "source_fragment" : "= hdr.inner_icmp.icmp_type; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_code17"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_icmp21", "icmp_code"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 45,
+            "column" : 33,
+            "source_fragment" : "= hdr.inner_icmp.icmp_code; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init33",
+      "id" : 58,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 33,
+            "column" : 27,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_ipv418", "src_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 34,
+            "column" : 28,
+            "source_fragment" : "= hdr.inner_ipv4.src_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_ipv418", "dst_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 35,
+            "column" : 28,
+            "source_fragment" : "= hdr.inner_ipv4.dst_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_inner_ipv418", "protocol"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 36,
+            "column" : 28,
+            "source_fragment" : "= hdr.inner_ipv4.protocol; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init53",
+      "id" : 59,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_tcp9", "sport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 53,
+            "column" : 32,
+            "source_fragment" : "= hdr.tcp.sport; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_tcp9", "dport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 54,
+            "column" : 32,
+            "source_fragment" : "= hdr.tcp.dport; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init56",
+      "id" : 60,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_udp10", "sport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 56,
+            "column" : 32,
+            "source_fragment" : "= hdr.udp.sport; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_udp10", "dport"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 57,
+            "column" : 32,
+            "source_fragment" : "= hdr.udp.dport; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init59",
+      "id" : 61,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_type16"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_icmp11", "icmp_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 59,
+            "column" : 33,
+            "source_fragment" : "= hdr.icmp.icmp_type; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_code17"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_icmp11", "icmp_code"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 60,
+            "column" : 33,
+            "source_fragment" : "= hdr.icmp.icmp_code; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init48",
+      "id" : 62,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 48,
+            "column" : 27,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "src_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 49,
+            "column" : 28,
+            "source_fragment" : "= hdr.ipv4.src_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "dst_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 50,
+            "column" : 28,
+            "source_fragment" : "= hdr.ipv4.dst_addr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "protocol"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 51,
+            "column" : 28,
+            "source_fragment" : "= hdr.ipv4.protocol; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "lookup_md_init24",
+      "id" : 63,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 24,
+            "column" : 23,
+            "source_fragment" : "= false; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 25,
+            "column" : 24,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 26,
+            "column" : 24,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 27,
+            "column" : 24,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 28,
+            "column" : 24,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 29,
+            "column" : 24,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_type16"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 30,
+            "column" : 25,
+            "source_fragment" : "= 0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_icmp_code17"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 31,
+            "column" : 25,
+            "source_fragment" : "= 0; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "filtering100",
+      "id" : 64,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_14"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 100,
+            "column" : 31,
+            "source_fragment" : "(bit<32>)fabric_md.bridged.base.fwd_type"
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.filtering.fwd_type_counter"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_14"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "fwd_type_counter.count((bit<32>)fabric_md.bridged.base.fwd_type)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "hasher39",
+      "id" : 65,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "src_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 43,
+            "column" : 17,
+            "source_fragment" : "hdr.ipv4.src_addr"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_16"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "dst_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 43,
+            "column" : 36,
+            "source_fragment" : "hdr.ipv4.dst_addr"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_17"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_gtpu12", "teid"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 43,
+            "column" : 55,
+            "source_fragment" : "hdr.gtpu.teid"
+          }
+        },
+        {
+          "op" : "modify_field_with_hash_based_offset",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ecmp_hash5"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            },
+            {
+              "type" : "calculation",
+              "value" : "calc"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffffffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 39,
+            "column" : 12,
+            "source_fragment" : "hash( ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "hasher50",
+      "id" : 66,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ecmp_hash5"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_inner_hash1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 50,
+            "column" : 32,
+            "source_fragment" : "= fabric_md.bridged.base.inner_hash; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "hasher66",
+      "id" : 67,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_inner_hash1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 66,
+            "column" : 12,
+            "source_fragment" : "fabric_md.bridged.base.inner_hash = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_18"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "dst_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 71,
+            "column" : 17,
+            "source_fragment" : "hdr.ethernet.dst_addr"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_19"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_ethernet3", "src_addr"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 71,
+            "column" : 40,
+            "source_fragment" : "hdr.ethernet.src_addr"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_20"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 71,
+            "column" : 63,
+            "source_fragment" : "hdr.eth_type.value"
+          }
+        },
+        {
+          "op" : "modify_field_with_hash_based_offset",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_ecmp_hash5"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            },
+            {
+              "type" : "calculation",
+              "value" : "calc_0"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffffffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 67,
+            "column" : 12,
+            "source_fragment" : "hash( ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "hasher17",
+      "id" : 68,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_21"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_22"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_23"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_24"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_25"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          }
+        },
+        {
+          "op" : "modify_field_with_hash_based_offset",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_base_inner_hash1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            },
+            {
+              "type" : "calculation",
+              "value" : "calc_1"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffffffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "hash( ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "slicing174",
+      "id" : 69,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_26"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_bridged4", "_base_slice_tc12"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 174,
+            "column" : 41,
+            "source_fragment" : "(bit<32>) fabric_md.bridged.base.slice_tc"
+          }
+        },
+        {
+          "op" : "execute_meter",
+          "parameters" : [
+            {
+              "type" : "meter_array",
+              "value" : "FabricIngress.qos.slice_tc_meter"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_26"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "qos_packet_color"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 174,
+            "column" : 12,
+            "source_fragment" : "slice_tc_meter.execute_meter((bit<32>) fabric_md.bridged.base.slice_tc, packet_color)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "slicing177",
+      "id" : 70,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "qos_packet_color"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/define_v1model.p4",
+            "line" : 25,
+            "column" : 10,
+            "source_fragment" : "2 ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int112",
+      "id" : 71,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_egress_port17"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 112,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.egress_port = standard_md.egress_spec"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_bridged4", "_int_bmd_queue_id16"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 113,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.int_bmd.queue_id = 0"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model110",
+      "id" : 72,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 110,
+            "column" : 12,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model106",
+      "id" : 73,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_bridged36"
+            },
+            {
+              "type" : "header",
+              "value" : "_ingress_bridged4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 106,
+            "column" : 8,
+            "source_fragment" : "fabric_md.egress.bridged = fabric_md"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "nop",
+      "id" : 74,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 75,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 76,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 77,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 78,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 79,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricEgress.stats.count",
+      "id" : 80,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricEgress.pkt_io_egress.set_switch_info",
+      "id" : 81,
+      "runtime_data" : [
+        {
+          "name" : "cpu_port",
+          "bitwidth" : 9
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_cpu_port37"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "local",
+                    "value" : 0
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01ff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 36,
+            "column" : 27,
+            "source_fragment" : "= (PortId_t)cpu_port; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.pop_mpls_if_present",
+      "id" : 82,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_mpls6"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_ip_eth_type10"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 200,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.bridged"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.set_mpls",
+      "id" : 83,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_mpls6"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 205,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_mpls6", "label"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_mpls_label2"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 206,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.label = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_mpls6", "tc"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 207,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.tc = 3w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_mpls6", "bos"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 208,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.bos = 1w1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_mpls6", "ttl"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_mpls_ttl8"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 209,
+            "column" : 8,
+            "source_fragment" : "hdr.mpls.ttl = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_eth_type5", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8847"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 112,
+            "column" : 31,
+            "source_fragment" : "0x8847; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.push_vlan",
+      "id" : 84,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vlan_tag4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 217,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_vlan_tag4", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_vlan_tag4", "vlan_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_vlan_id6"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 221,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_md.bridged"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.pop_vlan",
+      "id" : 85,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vlan_tag4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 249,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 86,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 254,
+            "column" : 17,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x82"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 257,
+            "column" : 35,
+            "source_fragment" : "130, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.dscp_rewriter.rewrite",
+      "id" : 87,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricEgress.dscp_rewriter.clear",
+      "id" : 88,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "tmp_dscp = 0"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.parser_emulator.parse_int_ingress_drop",
+      "id" : 89,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 20,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ethernet.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 25,
+            "column" : 8,
+            "source_fragment" : "hdr.report_eth_type.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "version"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.version = 4w4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ihl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ihl = 4w5"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "dscp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dscp = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ecn"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ecn = 2w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "flags"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.flags = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "frag_offset"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.frag_offset = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 150,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "protocol"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 134,
+            "column" : 25,
+            "source_fragment" : "17; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_udp", "sport"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.sport = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ver"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ver = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "rsvd"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.rsvd = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_int_report_md38"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ip_eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0800"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 114,
+            "column" : 31,
+            "source_fragment" : "0x0800; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "report_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 221,
+            "column" : 45,
+            "source_fragment" : "4; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "mirror_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 85,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "bmd_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 169,
+            "column" : 23,
+            "source_fragment" : "4, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "encap_presence"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_encap_presence7"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.encap_presence = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "flow_hash"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_inner_hash1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.flow_hash = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_drop_report_header", "drop_reason"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_int_bmd_drop_reason15"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 97,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.drop_reason = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ig_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_ig_tstamp9"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ig_tstamp = fabric_md.bridged.base.ig_tstamp[31:0]"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "ig_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_ig_port3"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 101,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.ig_port = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "eg_port"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 102,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.eg_port = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "queue_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 103,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.queue_id = 0"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.parser_emulator.parse_int_ingress_drop",
+      "id" : 90,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 20,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ethernet.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 25,
+            "column" : 8,
+            "source_fragment" : "hdr.report_eth_type.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "version"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.version = 4w4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ihl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ihl = 4w5"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "dscp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dscp = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ecn"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ecn = 2w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "flags"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.flags = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "frag_offset"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.frag_offset = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 150,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "protocol"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 134,
+            "column" : 25,
+            "source_fragment" : "17; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_udp", "sport"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.sport = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ver"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ver = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "rsvd"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.rsvd = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_int_report_md38"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ip_eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0800"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 114,
+            "column" : 31,
+            "source_fragment" : "0x0800; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "report_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 221,
+            "column" : 45,
+            "source_fragment" : "4; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "mirror_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 85,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "bmd_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 169,
+            "column" : 23,
+            "source_fragment" : "4, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "encap_presence"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_encap_presence7"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.encap_presence = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "flow_hash"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_inner_hash1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.flow_hash = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_drop_report_header", "drop_reason"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_int_bmd_drop_reason15"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 97,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.drop_reason = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ig_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_ig_tstamp9"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ig_tstamp = fabric_md.bridged.base.ig_tstamp[31:0]"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "ig_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_ig_port3"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 101,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.ig_port = fabric_md.bridged"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "eg_port"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 102,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.eg_port = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "queue_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 103,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.queue_id = 0"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.parser_emulator.parse_int_report_mirror",
+      "id" : 91,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 20,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ethernet.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 25,
+            "column" : 8,
+            "source_fragment" : "hdr.report_eth_type.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "version"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.version = 4w4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ihl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ihl = 4w5"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "dscp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dscp = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ecn"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ecn = 2w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "flags"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.flags = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "frag_offset"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.frag_offset = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 150,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "protocol"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 134,
+            "column" : 25,
+            "source_fragment" : "17; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_udp", "sport"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.sport = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ver"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ver = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "rsvd"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.rsvd = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_bmd_type0"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "bmd_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 110,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.bmd_type = fabric_md.int_report_md.bmd_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_vlan_id6"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0ffe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 147,
+            "column" : 34,
+            "source_fragment" : "12w4094; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_mpls_label2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 112,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ig_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ig_tstamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 118,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ig_tstamp = fabric_md.int_report_md.ig_tstamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "ig_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ig_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 121,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.ig_port = fabric_md.int_report_md.ig_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "eg_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "eg_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 122,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.eg_port = fabric_md.int_report_md.eg_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "queue_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "queue_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 123,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.queue_id = fabric_md.int_report_md.queue_id"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 126,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_local_report_header", "queue_occupancy"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "queue_occupancy"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 127,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.queue_occupancy = fabric_md.int_report_md.queue_occupancy"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_local_report_header", "eg_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "eg_tstamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 128,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.eg_tstamp = fabric_md.int_report_md.eg_tstamp"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.parser_emulator.parse_int_report_mirror",
+      "id" : 92,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 20,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ethernet.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 25,
+            "column" : 8,
+            "source_fragment" : "hdr.report_eth_type.setValid()"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "version"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.version = 4w4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ihl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ihl = 4w5"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "dscp"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dscp = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ecn"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.ecn = 2w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "flags"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.flags = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "frag_offset"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.frag_offset = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 150,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_ipv4", "protocol"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 134,
+            "column" : 25,
+            "source_fragment" : "17; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_udp", "sport"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.sport = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ver"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ver = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "rsvd"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.rsvd = 0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_bmd_type0"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "bmd_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 110,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.bmd_type = fabric_md.int_report_md.bmd_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_vlan_id6"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0ffe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 147,
+            "column" : 34,
+            "source_fragment" : "12w4094; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_mpls_label2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 112,
+            "column" : 8,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_report_fixed_header", "ig_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ig_tstamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 118,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.ig_tstamp = fabric_md.int_report_md.ig_tstamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "ig_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "ig_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 121,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.ig_port = fabric_md.int_report_md.ig_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "eg_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "eg_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 122,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.eg_port = fabric_md.int_report_md.eg_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_common_report_header", "queue_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "queue_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 123,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.queue_id = fabric_md.int_report_md.queue_id"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 126,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_local_report_header", "queue_occupancy"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "queue_occupancy"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 127,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.queue_occupancy = fabric_md.int_report_md.queue_occupancy"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["parser_emulator_hdr_local_report_header", "eg_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_int_report_md38", "eg_tstamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 128,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.eg_tstamp = fabric_md.int_report_md.eg_tstamp"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.check_quota",
+      "id" : 93,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricEgress.int_egress.reset_quota",
+      "id" : 94,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricEgress.int_egress.set_config",
+      "id" : 95,
+      "runtime_data" : [
+        {
+          "name" : "hop_latency_mask",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "timestamp_mask",
+          "bitwidth" : 48
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_fabric_md_int_md", "hop_latency"]
+                  },
+                  "right" : {
+                    "type" : "local",
+                    "value" : 0
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 179,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_md.hop_latency = fabric_md.int_md.hop_latency & hop_latency_mask"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "timestamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_fabric_md_int_md", "timestamp"]
+                  },
+                  "right" : {
+                    "type" : "local",
+                    "value" : 1
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 180,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_md.timestamp = fabric_md.int_md.timestamp & timestamp_mask"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.do_local_report_encap",
+      "id" : 96,
+      "runtime_data" : [
+        {
+          "name" : "src_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_port",
+          "bitwidth" : 16
+        },
+        {
+          "name" : "switch_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "modify_field_rng_uniform",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "identification"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 195,
+            "column" : 8,
+            "source_fragment" : "random(hdr.report_ipv4.identification, 0, 0xffff)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 197,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.src_addr = src_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_udp", "dport"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 199,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.dport = mon_port; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_27"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_read",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_27"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 143,
+            "column" : 8,
+            "source_fragment" : "seq_number.read(reg, seq_number_idx)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_reg"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x00000001"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 144,
+            "column" : 8,
+            "source_fragment" : "reg = reg + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_28"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_write",
+          "parameters" : [
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_28"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 146,
+            "column" : 8,
+            "source_fragment" : "seq_number.write(seq_number_idx, reg)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "seq_no"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ]
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "dqf"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "report_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 201,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.dqf = fabric_md.int_report_md.report_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "switch_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 3
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 202,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.switch_id = switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 203,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad1 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 204,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad2 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 205,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad3 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_eth_type", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ip_eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 207,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.int_report_md.ip_eth_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._int_mirror_type3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 125,
+            "column" : 39,
+            "source_fragment" : "0xBF04; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 218,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setValid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.do_local_report_encap_mpls",
+      "id" : 97,
+      "runtime_data" : [
+        {
+          "name" : "src_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_port",
+          "bitwidth" : 16
+        },
+        {
+          "name" : "mon_label",
+          "bitwidth" : 20
+        },
+        {
+          "name" : "switch_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "modify_field_rng_uniform",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "identification"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 195,
+            "column" : 8,
+            "source_fragment" : "random(hdr.report_ipv4.identification, 0, 0xffff)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 197,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.src_addr = src_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_udp", "dport"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 199,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.dport = mon_port; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_29"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_read",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 143,
+            "column" : 8,
+            "source_fragment" : "seq_number.read(reg, seq_number_idx)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_reg"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x00000001"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 144,
+            "column" : 8,
+            "source_fragment" : "reg = reg + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_30"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_write",
+          "parameters" : [
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_30"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 146,
+            "column" : 8,
+            "source_fragment" : "seq_number.write(seq_number_idx, reg)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "seq_no"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ]
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "dqf"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "report_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 201,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.dqf = fabric_md.int_report_md.report_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "switch_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 4
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 202,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.switch_id = switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 203,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad1 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 204,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad2 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 205,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad3 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_eth_type", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ip_eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 207,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.int_report_md.ip_eth_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._int_mirror_type3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 125,
+            "column" : 39,
+            "source_fragment" : "0xBF04; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 203,
+            "column" : 52,
+            "source_fragment" : "2; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 218,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 126,
+            "column" : 39,
+            "source_fragment" : "0xBF05; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_mpls"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 226,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "tc"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 227,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.tc = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "bos"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 228,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.bos = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 149,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "label"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 3
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 230,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.label = mon_label"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.do_drop_report_encap",
+      "id" : 98,
+      "runtime_data" : [
+        {
+          "name" : "src_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_port",
+          "bitwidth" : 16
+        },
+        {
+          "name" : "switch_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "modify_field_rng_uniform",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "identification"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 195,
+            "column" : 8,
+            "source_fragment" : "random(hdr.report_ipv4.identification, 0, 0xffff)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 197,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.src_addr = src_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_udp", "dport"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 199,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.dport = mon_port; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_31"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_read",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_31"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 143,
+            "column" : 8,
+            "source_fragment" : "seq_number.read(reg, seq_number_idx)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_reg"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x00000001"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 144,
+            "column" : 8,
+            "source_fragment" : "reg = reg + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_32"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_write",
+          "parameters" : [
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_32"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 146,
+            "column" : 8,
+            "source_fragment" : "seq_number.write(seq_number_idx, reg)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "seq_no"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ]
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "dqf"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "report_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 201,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.dqf = fabric_md.int_report_md.report_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "switch_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 3
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 202,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.switch_id = switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 203,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad1 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 204,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad2 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 205,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad3 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_eth_type", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ip_eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 207,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.int_report_md.ip_eth_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._int_mirror_type3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 125,
+            "column" : 39,
+            "source_fragment" : "0xBF04; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 202,
+            "column" : 44,
+            "source_fragment" : "1; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 238,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 241,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_drop_report_header", "drop_reason"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_int_bmd_drop_reason15"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 243,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.drop_reason ="
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.do_drop_report_encap_mpls",
+      "id" : 99,
+      "runtime_data" : [
+        {
+          "name" : "src_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_ip",
+          "bitwidth" : 32
+        },
+        {
+          "name" : "mon_port",
+          "bitwidth" : 16
+        },
+        {
+          "name" : "mon_label",
+          "bitwidth" : 20
+        },
+        {
+          "name" : "switch_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "modify_field_rng_uniform",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "identification"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xffff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 195,
+            "column" : 8,
+            "source_fragment" : "random(hdr.report_ipv4.identification, 0, 0xffff)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "src_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 197,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.src_addr = src_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_ipv4", "dst_addr"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 198,
+            "column" : 8,
+            "source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_udp", "dport"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 2
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 199,
+            "column" : 8,
+            "source_fragment" : "hdr.report_udp.dport = mon_port; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_33"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_read",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_33"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 143,
+            "column" : 8,
+            "source_fragment" : "seq_number.read(reg, seq_number_idx)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_reg"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x00000001"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 144,
+            "column" : 8,
+            "source_fragment" : "reg = reg + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_34"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 200,
+            "column" : 23,
+            "source_fragment" : "(bit<32>)hdr.report_fixed_header.hw_id"
+          }
+        },
+        {
+          "op" : "register_write",
+          "parameters" : [
+            {
+              "type" : "register_array",
+              "value" : "FabricEgress.int_egress.seq_number"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_34"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 146,
+            "column" : 8,
+            "source_fragment" : "seq_number.write(seq_number_idx, reg)"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "seq_no"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_reg"]
+            }
+          ]
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "dqf"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "report_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 201,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.dqf = fabric_md.int_report_md.report_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "switch_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 4
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 202,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.switch_id = switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad1"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 203,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad1 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 204,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad2 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_common_report_header", "pad3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 205,
+            "column" : 8,
+            "source_fragment" : "hdr.common_report_header.pad3 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_eth_type", "value"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ip_eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 207,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_md.int_report_md.ip_eth_type"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._int_mirror_type3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 178,
+            "column" : 14,
+            "source_fragment" : "0, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 125,
+            "column" : 39,
+            "source_fragment" : "0xBF04; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "nproto"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 202,
+            "column" : 44,
+            "source_fragment" : "1; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 238,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.setValid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 241,
+            "column" : 8,
+            "source_fragment" : "hdr.local_report_header.setInvalid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_drop_report_header", "drop_reason"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_int_bmd_drop_reason15"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 243,
+            "column" : 8,
+            "source_fragment" : "hdr.drop_report_header.drop_reason ="
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_eth_type", "value"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0xbf05"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 126,
+            "column" : 39,
+            "source_fragment" : "0xBF05; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_mpls"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 251,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "tc"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 252,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.tc = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "bos"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 253,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.bos = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "ttl"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x40"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 149,
+            "column" : 32,
+            "source_fragment" : "64; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_mpls", "label"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 3
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 256,
+            "column" : 8,
+            "source_fragment" : "hdr.report_mpls.label = mon_label"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.init_int_metadata",
+      "id" : 100,
+      "runtime_data" : [
+        {
+          "name" : "report_type",
+          "bitwidth" : 3
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_int_bmd_mirror_session_id14"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01fa"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 208,
+            "column" : 43,
+            "source_fragment" : "0x1FA; ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_fabric_md_int_report_md"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 293,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._int_mirror_type3"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 179,
+            "column" : 17,
+            "source_fragment" : "1, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "bmd_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 167,
+            "column" : 20,
+            "source_fragment" : "2, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "mirror_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 179,
+            "column" : 17,
+            "source_fragment" : "1, ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ig_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_base_ig_port3"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 299,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.ig_port ="
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "eg_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 300,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.eg_port = (PortId_t)standard_md.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "queue_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_egress_qid"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 301,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.queue_id = egress_qid"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "queue_occupancy"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_qdepth"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 302,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.queue_occupancy = standard_md.deq_qdepth"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ig_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_fabric_md_bridged", "_base_ig_tstamp9"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 303,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.ig_tstamp = fabric_md.bridged.base.ig_tstamp[31:0]"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "eg_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 304,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.eg_tstamp = standard_md.egress_global_timestamp[31:0]"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "ip_eth_type"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_base_ip_eth_type10"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 305,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.ip_eth_type ="
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "flow_hash"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_bridged", "_base_inner_hash1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 306,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.flow_hash ="
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_report_md", "report_type"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 309,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_report_md.report_type = report_type"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.int_egress.adjust_ip_udp_len",
+      "id" : 101,
+      "runtime_data" : [
+        {
+          "name" : "adjust_ip",
+          "bitwidth" : 16
+        },
+        {
+          "name" : "adjust_udp",
+          "bitwidth" : 16
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "total_len"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_fabric_md_pkt_length"]
+                      },
+                      "right" : {
+                        "type" : "local",
+                        "value" : 0
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 342,
+            "column" : 8,
+            "source_fragment" : "hdr_v1model.ingress.ipv4.total_len = fabric_md.pkt_length + adjust_ip"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_udp10", "len"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "int_egress_fabric_md_pkt_length"]
+                      },
+                      "right" : {
+                        "type" : "local",
+                        "value" : 1
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 343,
+            "column" : 8,
+            "source_fragment" : "hdr_v1model.ingress.udp.len = fabric_md.pkt_length + adjust_udp"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model136",
+      "id" : 102,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "exit",
+          "parameters" : [],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 136,
+            "column" : 12,
+            "source_fragment" : "exit"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model133",
+      "id" : 103,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_cpu_port37"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 133,
+            "column" : 8,
+            "source_fragment" : "fabric_md.egress.cpu_port = 0"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator148",
+      "id" : 104,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_ipv47"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 148,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.ipv4.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_tcp9"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 149,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.tcp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_udp10"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 150,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.udp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_icmp11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 151,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.icmp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vxlan15"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 153,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.vxlan.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_inner_ethernet16"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 154,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.inner_ethernet.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_inner_eth_type17"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 155,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.inner_eth_type.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu12"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 157,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu_options13"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 158,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu_options.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu_ext_psc14"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 159,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu_ext_psc.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator14",
+      "id" : 105,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_int_bmd_drop_reason15"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 144,
+            "column" : 12,
+            "source_fragment" : "fabric_md.egress.bridged.int_bmd.drop_reason = fabric_md"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_report_type46"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 145,
+            "column" : 12,
+            "source_fragment" : "fabric_md.egress.bridged.int_bmd.report_type = fabric_md"
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_ethernet24"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_is_int_recirc44"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 134,
+            "column" : 32,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vlan_tag4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 140,
+            "column" : 8,
+            "source_fragment" : "hdr_v1model.ingress.vlan_tag.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator166",
+      "id" : 106,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "recirculate",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x3"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 166,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator169",
+      "id" : 107,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "recirculate",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x1"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 169,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(PRESERVE_INT_MD)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator173",
+      "id" : 108,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_ethernet24"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator148_0",
+      "id" : 109,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_ipv47"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 148,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.ipv4.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_tcp9"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 149,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.tcp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_udp10"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 150,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.udp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_icmp11"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 151,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.icmp.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vxlan15"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 153,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.vxlan.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_inner_ethernet16"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 154,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.inner_ethernet.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_inner_eth_type17"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 155,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.inner_eth_type.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu12"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 157,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu_options13"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 158,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu_options.setInvalid()"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_gtpu_ext_psc14"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 159,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.gtpu_ext_psc.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator14_0",
+      "id" : 110,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_ethernet24"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_is_int_recirc44"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 134,
+            "column" : 32,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_vlan_tag4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 140,
+            "column" : 8,
+            "source_fragment" : "hdr_v1model.ingress.vlan_tag.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator166_0",
+      "id" : 111,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "recirculate",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 166,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator169_0",
+      "id" : 112,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "recirculate",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x1"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 169,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(PRESERVE_INT_MD)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int_tna_parser_emulator173_0",
+      "id" : 113,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_ethernet24"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ethernet"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            },
+            {
+              "type" : "header",
+              "value" : "parser_emulator_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "packetio51",
+      "id" : 114,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_packet_in1"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 51,
+            "column" : 12,
+            "source_fragment" : "hdr.packet_in.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_packet_in1", "ingress_port"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_ingress_port49"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 52,
+            "column" : 12,
+            "source_fragment" : "hdr.packet_in.ingress_port = preserved_ig_port; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_ingress_fake_ethernet2"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 53,
+            "column" : 12,
+            "source_fragment" : "hdr.fake_ethernet.setInvalid()"
+          }
+        },
+        {
+          "op" : "exit",
+          "parameters" : [],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 54,
+            "column" : 12,
+            "source_fragment" : "exit"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "packetio60",
+      "id" : 115,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_pkt_length45"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["standard_metadata", "packet_length"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x0000ffff"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xfff2"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 60,
+            "column" : 37,
+            "source_fragment" : "= (bit<16>)standard_md.packet_length - 14; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next283",
+      "id" : 116,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_int_bmd_report_type13"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 219,
+            "column" : 50,
+            "source_fragment" : "0; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 285,
+            "column" : 21,
+            "source_fragment" : "= 1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next325",
+      "id" : 117,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 325,
+            "column" : 25,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x83"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 258,
+            "column" : 32,
+            "source_fragment" : "131, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next323",
+      "id" : 118,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_mpls6", "ttl"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["_ingress_mpls6", "ttl"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 323,
+            "column" : 12,
+            "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next333",
+      "id" : 119,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "ttl"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["_ingress_ipv47", "ttl"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 333,
+            "column" : 20,
+            "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next336",
+      "id" : 120,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 336,
+            "column" : 29,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x1a"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 247,
+            "column" : 30,
+            "source_fragment" : "26, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next343",
+      "id" : 121,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv68", "hop_limit"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["_ingress_ipv68", "hop_limit"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 343,
+            "column" : 20,
+            "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "next346",
+      "id" : 122,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._drop_ctl2"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 346,
+            "column" : 29,
+            "source_fragment" : "= 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._recirc_preserved_drop_reason48"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x1a"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../shared/define.p4",
+            "line" : 247,
+            "column" : 30,
+            "source_fragment" : "26, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int128",
+      "id" : 123,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_eth_type"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_mpls"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_mpls26"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_ipv4"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_udp"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_fixed_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_common_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_drop_report_header"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_eth_type"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_eth_type35"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_fabric_md_bridged"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_bridged36"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_fabric_md_int_report_md"
+            },
+            {
+              "type" : "header",
+              "value" : "_egress_int_report_md38"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_int_md_hop_latency39"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "timestamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_int_md_timestamp40"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "vlan_stripped"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["scalars", "userMetadata._egress_int_md_vlan_stripped41"]
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "queue_report"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["scalars", "userMetadata._egress_int_md_queue_report42"]
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_fabric_md_pkt_length"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_pkt_length45"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 129,
+            "column" : 4,
+            "source_fragment" : "fabric_egress_metadata_t fabric_md = fabric_v1model.egress; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "int_egress_egress_qid"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 135,
+            "column" : 4,
+            "source_fragment" : "QueueId_t egress_qid = 0;"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["int_egress_fabric_md_bridged", "_base_ig_tstamp9"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 365,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_md.hop_latency = standard_md.egress_global_timestamp[31:0] - fabric_md.bridged.base.ig_tstamp[31:0]"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "timestamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_global_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 366,
+            "column" : 8,
+            "source_fragment" : "fabric_md.int_md.timestamp = standard_md.egress_global_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "key_0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : ">>",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "expression",
+                                "value" : {
+                                  "op" : "-",
+                                  "left" : {
+                                    "type" : "expression",
+                                    "value" : {
+                                      "op" : "&",
+                                      "left" : {
+                                        "type" : "field",
+                                        "value" : ["standard_metadata", "egress_global_timestamp"]
+                                      },
+                                      "right" : {
+                                        "type" : "hexstr",
+                                        "value" : "0xffffffff"
+                                      }
+                                    }
+                                  },
+                                  "right" : {
+                                    "type" : "expression",
+                                    "value" : {
+                                      "op" : "&",
+                                      "left" : {
+                                        "type" : "field",
+                                        "value" : ["int_egress_fabric_md_bridged", "_base_ig_tstamp9"]
+                                      },
+                                      "right" : {
+                                        "type" : "hexstr",
+                                        "value" : "0xffffffff"
+                                      }
+                                    }
+                                  }
+                                }
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0xffffffff"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x10"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 166,
+            "column" : 12,
+            "source_fragment" : "            fabric_md.int_md.hop_latency[31:16]: range @name(\\\"hop_latency_upper\\\");"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "key_1"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "-",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["standard_metadata", "egress_global_timestamp"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0xffffffff"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["int_egress_fabric_md_bridged", "_base_ig_tstamp9"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0xffffffff"
+                              }
+                            }
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 167,
+            "column" : 12,
+            "source_fragment" : "            fabric_md.int_md.hop_latency[15:0]: range @name(\\\"hop_latency_lower\\\");"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int383",
+      "id" : 124,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_35"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["int_egress_fabric_md_bridged", "_int_bmd_mirror_session_id14"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 384,
+            "column" : 20,
+            "source_fragment" : "(bit<32>)fabric_md.bridged.int_bmd.mirror_session_id"
+          }
+        },
+        {
+          "op" : "clone_egress_pkt_to_egress",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_35"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x1"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 383,
+            "column" : 16,
+            "source_fragment" : "clone_preserving_field_list(CloneType.E2E, ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "int373",
+      "id" : 125,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_hdr_report_fixed_header", "hw_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "|",
+                  "left" : {
+                    "type" : "hexstr",
+                    "value" : "0x00"
+                  },
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "&",
+                              "left" : {
+                                "type" : "expression",
+                                "value" : {
+                                  "op" : "&",
+                                  "left" : {
+                                    "type" : "expression",
+                                    "value" : {
+                                      "op" : ">>",
+                                      "left" : {
+                                        "type" : "field",
+                                        "value" : ["standard_metadata", "egress_spec"]
+                                      },
+                                      "right" : {
+                                        "type" : "hexstr",
+                                        "value" : "0x7"
+                                      }
+                                    }
+                                  },
+                                  "right" : {
+                                    "type" : "hexstr",
+                                    "value" : "0x01ff"
+                                  }
+                                }
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x03"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x3f"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x07"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 373,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.hw_id = 4w0 ++ standard_md.egress_spec[8:7]"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "slicing217",
+      "id" : 126,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["_ingress_ipv47", "dscp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 217,
+            "column" : 16,
+            "source_fragment" : "hdr.ipv4.dscp = tmp_dscp"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "slicing189",
+      "id" : 127,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_bridged36"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_fabric_md_bridged"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 391,
+            "column" : 30,
+            "source_fragment" : "= fabric_md; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_int_report_md38"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_fabric_md_int_report_md"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 391,
+            "column" : 30,
+            "source_fragment" : "= fabric_md; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_int_md_hop_latency39"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "hop_latency"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 391,
+            "column" : 30,
+            "source_fragment" : "= fabric_md; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "userMetadata._egress_int_md_timestamp40"]
+            },
+            {
+              "type" : "field",
+              "value" : ["int_egress_fabric_md_int_md", "timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 391,
+            "column" : 30,
+            "source_fragment" : "= fabric_md; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_eth_type25"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_mpls26"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_mpls"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_ipv427"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_ipv4"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_udp28"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_udp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_report_fixed_header29"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_report_fixed_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_common_report_header30"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_common_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_local_report_header31"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_local_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_drop_report_header32"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_drop_report_header"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "_egress_eth_type35"
+            },
+            {
+              "type" : "header",
+              "value" : "int_egress_hdr_eth_type"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 392,
+            "column" : 27,
+            "source_fragment" : "= hdr; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "dscp_rewriter_tmp_dscp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["_egress_bridged36", "_base_slice_tc12"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 189,
+            "column" : 4,
+            "source_fragment" : "bit<6> tmp_dscp = fabric_md.bridged.base.slice_tc;"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model170",
+      "id" : 128,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "recirculate",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x5"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 170,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "fabric_v1model174",
+      "id" : 129,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 174,
+            "column" : 12,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          }
+        }
+      ]
+    }
+  ],
+  "pipelines" : [
+    {
+      "name" : "ingress",
+      "id" : 0,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+        "line" : 35,
+        "column" : 8,
+        "source_fragment" : "FabricIngress"
+      },
+      "init_table" : "tbl_fabric_v1model61",
+      "tables" : [
+        {
+          "name" : "tbl_fabric_v1model61",
+          "id" : 0,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [51],
+          "actions" : ["fabric_v1model61"],
+          "base_default_next" : "node_3",
+          "next_tables" : {
+            "fabric_v1model61" : "node_3"
+          },
+          "default_entry" : {
+            "action_id" : 51,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model64",
+          "id" : 1,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 64,
+            "column" : 12,
+            "source_fragment" : "exit"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [50],
+          "actions" : ["fabric_v1model64"],
+          "base_default_next" : "node_5",
+          "next_tables" : {
+            "fabric_v1model64" : "node_5"
+          },
+          "default_entry" : {
+            "action_id" : 50,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model70",
+          "id" : 2,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 70,
+            "column" : 51,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [52],
+          "actions" : ["fabric_v1model70"],
+          "base_default_next" : "tbl_lookup_md_init15",
+          "next_tables" : {
+            "fabric_v1model70" : "tbl_lookup_md_init15"
+          },
+          "default_entry" : {
+            "action_id" : 52,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init15",
+          "id" : 3,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 15,
+            "column" : 23,
+            "source_fragment" : "= hdr.ethernet.dst_addr; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [54],
+          "actions" : ["lookup_md_init15"],
+          "base_default_next" : "node_8",
+          "next_tables" : {
+            "lookup_md_init15" : "node_8"
+          },
+          "default_entry" : {
+            "action_id" : 54,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init21",
+          "id" : 4,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 21,
+            "column" : 27,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [53],
+          "actions" : ["lookup_md_init21"],
+          "base_default_next" : "tbl_lookup_md_init24",
+          "next_tables" : {
+            "lookup_md_init21" : "tbl_lookup_md_init24"
+          },
+          "default_entry" : {
+            "action_id" : 53,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init24",
+          "id" : 5,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 24,
+            "column" : 23,
+            "source_fragment" : "= false; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [63],
+          "actions" : ["lookup_md_init24"],
+          "base_default_next" : "node_11",
+          "next_tables" : {
+            "lookup_md_init24" : "node_11"
+          },
+          "default_entry" : {
+            "action_id" : 63,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init33",
+          "id" : 6,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 33,
+            "column" : 27,
+            "source_fragment" : "= true; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [58],
+          "actions" : ["lookup_md_init33"],
+          "base_default_next" : "node_13",
+          "next_tables" : {
+            "lookup_md_init33" : "node_13"
+          },
+          "default_entry" : {
+            "action_id" : 58,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init38",
+          "id" : 7,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 38,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_tcp.sport; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [55],
+          "actions" : ["lookup_md_init38"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init38" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 55,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init41",
+          "id" : 8,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 41,
+            "column" : 32,
+            "source_fragment" : "= hdr.inner_udp.sport; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [56],
+          "actions" : ["lookup_md_init41"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init41" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 56,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init44",
+          "id" : 9,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 44,
+            "column" : 33,
+            "source_fragment" : "= hdr.inner_icmp.icmp_type; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [57],
+          "actions" : ["lookup_md_init44"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init44" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 57,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init48",
+          "id" : 10,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 48,
+            "column" : 27,
+            "source_fragment" : "= true; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [62],
+          "actions" : ["lookup_md_init48"],
+          "base_default_next" : "node_21",
+          "next_tables" : {
+            "lookup_md_init48" : "node_21"
+          },
+          "default_entry" : {
+            "action_id" : 62,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init53",
+          "id" : 11,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 53,
+            "column" : 32,
+            "source_fragment" : "= hdr.tcp.sport; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [59],
+          "actions" : ["lookup_md_init53"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init53" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 59,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init56",
+          "id" : 12,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 56,
+            "column" : 32,
+            "source_fragment" : "= hdr.udp.sport; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [60],
+          "actions" : ["lookup_md_init56"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init56" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 60,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_lookup_md_init59",
+          "id" : 13,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 59,
+            "column" : 33,
+            "source_fragment" : "= hdr.icmp.icmp_type; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [61],
+          "actions" : ["lookup_md_init59"],
+          "base_default_next" : "node_27",
+          "next_tables" : {
+            "lookup_md_init59" : "node_27"
+          },
+          "default_entry" : {
+            "action_id" : 61,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_pkt_io_do_packet_out",
+          "id" : 14,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 25,
+            "column" : 12,
+            "source_fragment" : "do_packet_out()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [8],
+          "actions" : ["FabricIngress.pkt_io.do_packet_out"],
+          "base_default_next" : "FabricIngress.int_watchlist.watchlist",
+          "next_tables" : {
+            "FabricIngress.pkt_io.do_packet_out" : "FabricIngress.int_watchlist.watchlist"
+          },
+          "default_entry" : {
+            "action_id" : 8,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.int_watchlist.watchlist",
+          "id" : 15,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 34,
+            "column" : 10,
+            "source_fragment" : "watchlist"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "ipv4_valid",
+              "target" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_src",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_dst",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ip_proto",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "range",
+              "name" : "l4_sport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"],
+              "mask" : null
+            },
+            {
+              "match_type" : "range",
+              "name" : "l4_dport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "range",
+          "type" : "simple",
+          "max_size" : 64,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [46, 48, 47],
+          "actions" : ["FabricIngress.int_watchlist.mark_to_report", "FabricIngress.int_watchlist.no_report_collector", "FabricIngress.int_watchlist.no_report"],
+          "base_default_next" : "FabricIngress.stats.flows",
+          "next_tables" : {
+            "FabricIngress.int_watchlist.mark_to_report" : "FabricIngress.stats.flows",
+            "FabricIngress.int_watchlist.no_report_collector" : "FabricIngress.stats.flows",
+            "FabricIngress.int_watchlist.no_report" : "FabricIngress.stats.flows"
+          },
+          "default_entry" : {
+            "action_id" : 47,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.stats.flows",
+          "id" : 16,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+            "line" : 21,
+            "column" : 10,
+            "source_fragment" : "flows"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_src",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_dst",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ip_proto",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_sport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_dport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "ig_port",
+              "target" : ["_ingress_bridged4", "_base_ig_port3"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [7],
+          "actions" : ["FabricIngress.stats.count"],
+          "base_default_next" : "FabricIngress.slice_tc_classifier.classifier",
+          "next_tables" : {
+            "FabricIngress.stats.count" : "FabricIngress.slice_tc_classifier.classifier"
+          },
+          "default_entry" : {
+            "action_id" : 7,
+            "action_const" : true,
+            "action_data" : ["0x0"],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.slice_tc_classifier.classifier",
+          "id" : 17,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 44,
+            "column" : 10,
+            "source_fragment" : "classifier"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "ig_port",
+              "target" : ["_ingress_bridged4", "_base_ig_port3"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_src",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_dst",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ip_proto",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_sport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_dport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 512,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [38, 40, 39],
+          "actions" : ["FabricIngress.slice_tc_classifier.set_slice_id_tc", "FabricIngress.slice_tc_classifier.trust_dscp", "FabricIngress.slice_tc_classifier.no_classification"],
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+          "next_tables" : {
+            "FabricIngress.slice_tc_classifier.set_slice_id_tc" : "FabricIngress.filtering.ingress_port_vlan",
+            "FabricIngress.slice_tc_classifier.trust_dscp" : "FabricIngress.filtering.ingress_port_vlan",
+            "FabricIngress.slice_tc_classifier.no_classification" : "FabricIngress.filtering.ingress_port_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 39,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.filtering.ingress_port_vlan",
+          "id" : 18,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 42,
+            "column" : 10,
+            "source_fragment" : "ingress_port_vlan"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "ig_port",
+              "target" : ["_ingress_bridged4", "_base_ig_port3"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "vlan_is_valid",
+              "target" : ["_ingress_vlan_tag4", "$valid$"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "vlan_id",
+              "target" : ["_ingress_vlan_tag4", "vlan_id"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [9, 10, 11],
+          "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
+          "base_default_next" : "FabricIngress.filtering.fwd_classifier",
+          "next_tables" : {
+            "FabricIngress.filtering.deny" : "FabricIngress.filtering.fwd_classifier",
+            "FabricIngress.filtering.permit" : "FabricIngress.filtering.fwd_classifier",
+            "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
+          },
+          "default_entry" : {
+            "action_id" : 9,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.filtering.fwd_classifier",
+          "id" : 19,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 80,
+            "column" : 10,
+            "source_fragment" : "fwd_classifier"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "ig_port",
+              "target" : ["_ingress_bridged4", "_base_ig_port3"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_dst",
+              "target" : ["_ingress_ethernet3", "dst_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_type",
+              "target" : ["_ingress_eth_type5", "value"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "ip_eth_type",
+              "target" : ["_ingress_bridged4", "_base_ip_eth_type10"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [12],
+          "actions" : ["FabricIngress.filtering.set_forwarding_type"],
+          "base_default_next" : "tbl_filtering100",
+          "next_tables" : {
+            "FabricIngress.filtering.set_forwarding_type" : "tbl_filtering100"
+          },
+          "default_entry" : {
+            "action_id" : 12,
+            "action_const" : true,
+            "action_data" : ["0x0"],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_filtering100",
+          "id" : 20,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/filtering.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "fwd_type_counter.count((bit<32>)fabric_md.bridged.base.fwd_type)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [64],
+          "actions" : ["filtering100"],
+          "base_default_next" : "node_35",
+          "next_tables" : {
+            "filtering100" : "node_35"
+          },
+          "default_entry" : {
+            "action_id" : 64,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.forwarding.bridging",
+          "id" : 21,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 39,
+            "column" : 10,
+            "source_fragment" : "bridging"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "vlan_id",
+              "target" : ["_ingress_bridged4", "_base_vlan_id6"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_dst",
+              "target" : ["_ingress_ethernet3", "dst_addr"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [17, 13],
+          "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "FabricIngress.forwarding.set_int_drop_reason"],
+          "base_default_next" : "tbl_hasher17",
+          "next_tables" : {
+            "FabricIngress.forwarding.set_next_id_bridging" : "tbl_hasher17",
+            "FabricIngress.forwarding.set_int_drop_reason" : "tbl_hasher17"
+          },
+          "default_entry" : {
+            "action_id" : 13,
+            "action_const" : true,
+            "action_data" : ["0x59"],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.forwarding.mpls",
+          "id" : 22,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 74,
+            "column" : 10,
+            "source_fragment" : "mpls"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "mpls_label",
+              "target" : ["_ingress_bridged4", "_base_mpls_label2"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [18, 14],
+          "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "FabricIngress.forwarding.set_int_drop_reason"],
+          "base_default_next" : "tbl_hasher17",
+          "next_tables" : {
+            "FabricIngress.forwarding.pop_mpls_and_next" : "tbl_hasher17",
+            "FabricIngress.forwarding.set_int_drop_reason" : "tbl_hasher17"
+          },
+          "default_entry" : {
+            "action_id" : 14,
+            "action_const" : true,
+            "action_data" : ["0x81"],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.forwarding.routing_v4",
+          "id" : 23,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 116,
+            "column" : 10,
+            "source_fragment" : "routing_v4"
+          },
+          "key" : [
+            {
+              "match_type" : "lpm",
+              "name" : "ipv4_dst",
+              "target" : ["scalars", "userMetadata._ingress_routing_ipv4_dst18"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "lpm",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [19, 20, 21, 15],
+          "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "FabricIngress.forwarding.drop_routing_v4", "FabricIngress.forwarding.set_int_drop_reason"],
+          "base_default_next" : "tbl_hasher17",
+          "next_tables" : {
+            "FabricIngress.forwarding.set_next_id_routing_v4" : "tbl_hasher17",
+            "FabricIngress.forwarding.nop_routing_v4" : "tbl_hasher17",
+            "FabricIngress.forwarding.drop_routing_v4" : "tbl_hasher17",
+            "FabricIngress.forwarding.set_int_drop_reason" : "tbl_hasher17"
+          },
+          "default_entry" : {
+            "action_id" : 15,
+            "action_const" : false,
+            "action_data" : ["0x1d"],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "FabricIngress.forwarding.routing_v6",
+          "id" : 24,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 155,
+            "column" : 10,
+            "source_fragment" : "routing_v6"
+          },
+          "key" : [
+            {
+              "match_type" : "lpm",
+              "name" : "ipv6_dst",
+              "target" : ["_ingress_ipv68", "dst_addr"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "lpm",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [22, 23, 16],
+          "actions" : ["FabricIngress.forwarding.set_next_id_routing_v6", "FabricIngress.forwarding.drop_routing_v6", "FabricIngress.forwarding.set_int_drop_reason"],
+          "base_default_next" : "tbl_hasher17",
+          "next_tables" : {
+            "FabricIngress.forwarding.set_next_id_routing_v6" : "tbl_hasher17",
+            "FabricIngress.forwarding.drop_routing_v6" : "tbl_hasher17",
+            "FabricIngress.forwarding.set_int_drop_reason" : "tbl_hasher17"
+          },
+          "default_entry" : {
+            "action_id" : 16,
+            "action_const" : false,
+            "action_data" : ["0x1d"],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "tbl_hasher17",
+          "id" : 25,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 17,
+            "column" : 8,
+            "source_fragment" : "hash( ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [68],
+          "actions" : ["hasher17"],
+          "base_default_next" : "node_45",
+          "next_tables" : {
+            "hasher17" : "node_45"
+          },
+          "default_entry" : {
+            "action_id" : 68,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_hasher39",
+          "id" : 26,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 39,
+            "column" : 12,
+            "source_fragment" : "hash( ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [65],
+          "actions" : ["hasher39"],
+          "base_default_next" : "node_50",
+          "next_tables" : {
+            "hasher39" : "node_50"
+          },
+          "default_entry" : {
+            "action_id" : 65,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_hasher50",
+          "id" : 27,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 50,
+            "column" : 32,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [66],
+          "actions" : ["hasher50"],
+          "base_default_next" : "node_50",
+          "next_tables" : {
+            "hasher50" : "node_50"
+          },
+          "default_entry" : {
+            "action_id" : 66,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_hasher66",
+          "id" : 28,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 66,
+            "column" : 46,
+            "source_fragment" : "= 0; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [67],
+          "actions" : ["hasher66"],
+          "base_default_next" : "node_50",
+          "next_tables" : {
+            "hasher66" : "node_50"
+          },
+          "default_entry" : {
+            "action_id" : 67,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.pre_next.next_mpls",
+          "id" : 29,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+            "line" : 22,
+            "column" : 10,
+            "source_fragment" : "next_mpls"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "next_id",
+              "target" : ["scalars", "userMetadata._ingress_next_id21"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [24, 0],
+          "actions" : ["FabricIngress.pre_next.set_mpls_label", "nop"],
+          "base_default_next" : "FabricIngress.pre_next.next_vlan",
+          "next_tables" : {
+            "FabricIngress.pre_next.set_mpls_label" : "FabricIngress.pre_next.next_vlan",
+            "nop" : "FabricIngress.pre_next.next_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 0,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.pre_next.next_vlan",
+          "id" : 30,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/pre_next.p4",
+            "line" : 54,
+            "column" : 10,
+            "source_fragment" : "next_vlan"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "next_id",
+              "target" : ["scalars", "userMetadata._ingress_next_id21"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [25, 1],
+          "actions" : ["FabricIngress.pre_next.set_vlan", "nop"],
+          "base_default_next" : "FabricIngress.acl.acl",
+          "next_tables" : {
+            "FabricIngress.pre_next.set_vlan" : "FabricIngress.acl.acl",
+            "nop" : "FabricIngress.acl.acl"
+          },
+          "default_entry" : {
+            "action_id" : 1,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.acl.acl",
+          "id" : 31,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/acl.p4",
+            "line" : 74,
+            "column" : 10,
+            "source_fragment" : "acl"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "ig_port",
+              "target" : ["_ingress_bridged4", "_base_ig_port3"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_dst",
+              "target" : ["_ingress_ethernet3", "dst_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_src",
+              "target" : ["_ingress_ethernet3", "src_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "vlan_id",
+              "target" : ["scalars", "userMetadata._ingress_lkp_vlan_id9"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "eth_type",
+              "target" : ["scalars", "userMetadata._ingress_lkp_eth_type8"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_src",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_src11"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_dst",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ipv4_dst12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ip_proto",
+              "target" : ["scalars", "userMetadata._ingress_lkp_ip_proto13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "icmp_type",
+              "target" : ["scalars", "userMetadata._ingress_lkp_icmp_type16"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "icmp_code",
+              "target" : ["scalars", "userMetadata._ingress_lkp_icmp_code17"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_sport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_sport14"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "l4_dport",
+              "target" : ["scalars", "userMetadata._ingress_lkp_l4_dport15"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ig_port_type",
+              "target" : ["scalars", "userMetadata._ingress_ig_port_type33"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [26, 28, 27, 29, 30, 31],
+          "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.copy_to_cpu", "FabricIngress.acl.drop", "FabricIngress.acl.set_output_port", "FabricIngress.acl.nop_acl"],
+          "base_default_next" : "node_54",
+          "next_tables" : {
+            "FabricIngress.acl.set_next_id_acl" : "node_54",
+            "FabricIngress.acl.punt_to_cpu" : "node_54",
+            "FabricIngress.acl.copy_to_cpu" : "node_54",
+            "FabricIngress.acl.drop" : "node_54",
+            "FabricIngress.acl.set_output_port" : "node_54",
+            "FabricIngress.acl.nop_acl" : "node_54"
+          },
+          "default_entry" : {
+            "action_id" : 31,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.next.simple",
+          "id" : 32,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 88,
+            "column" : 10,
+            "source_fragment" : "simple"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "next_id",
+              "target" : ["scalars", "userMetadata._ingress_next_id21"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [32, 33, 2],
+          "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "nop"],
+          "base_default_next" : "FabricIngress.next.hashed",
+          "next_tables" : {
+            "FabricIngress.next.output_simple" : "FabricIngress.next.hashed",
+            "FabricIngress.next.routing_simple" : "FabricIngress.next.hashed",
+            "nop" : "FabricIngress.next.hashed"
+          },
+          "default_entry" : {
+            "action_id" : 2,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.next.hashed",
+          "id" : 33,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 127,
+            "column" : 10,
+            "source_fragment" : "hashed"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "next_id",
+              "target" : ["scalars", "userMetadata._ingress_next_id21"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "indirect_ws",
+          "action_profile" : "FabricIngress.next.hashed_profile",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [34, 35, 3],
+          "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "nop"],
+          "base_default_next" : "FabricIngress.next.multicast",
+          "next_tables" : {
+            "FabricIngress.next.output_hashed" : "FabricIngress.next.multicast",
+            "FabricIngress.next.routing_hashed" : "FabricIngress.next.multicast",
+            "nop" : "FabricIngress.next.multicast"
+          }
+        },
+        {
+          "name" : "FabricIngress.next.multicast",
+          "id" : 34,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 161,
+            "column" : 10,
+            "source_fragment" : "multicast"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "next_id",
+              "target" : ["scalars", "userMetadata._ingress_next_id21"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [36, 37],
+          "actions" : ["FabricIngress.next.set_mcast_group_id", "FabricIngress.next.reset_mcast_group_id"],
+          "base_default_next" : "FabricIngress.qos.set_slice_tc",
+          "next_tables" : {
+            "FabricIngress.next.set_mcast_group_id" : "FabricIngress.qos.set_slice_tc",
+            "FabricIngress.next.reset_mcast_group_id" : "FabricIngress.qos.set_slice_tc"
+          },
+          "default_entry" : {
+            "action_id" : 37,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.qos.set_slice_tc",
+          "id" : 35,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 91,
+            "column" : 10,
+            "source_fragment" : "set_slice_tc"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "fabric_md.is_upf_hit",
+              "target" : ["scalars", "userMetadata._ingress_is_upf_hit29"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 2,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [41, 42, 6],
+          "actions" : ["FabricIngress.qos.use_upf", "FabricIngress.qos.use_default", "NoAction"],
+          "base_default_next" : "FabricIngress.qos.default_tc",
+          "next_tables" : {
+            "FabricIngress.qos.use_upf" : "FabricIngress.qos.default_tc",
+            "FabricIngress.qos.use_default" : "FabricIngress.qos.default_tc",
+            "NoAction" : "FabricIngress.qos.default_tc"
+          },
+          "default_entry" : {
+            "action_id" : 6,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+                "line" : 96,
+                "column" : 12,
+                "source_fragment" : "true: use_upf"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 41,
+                "action_data" : []
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+                "line" : 97,
+                "column" : 12,
+                "source_fragment" : "false: use_default"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 42,
+                "action_data" : []
+              },
+              "priority" : 2
+            }
+          ]
+        },
+        {
+          "name" : "FabricIngress.qos.default_tc",
+          "id" : 36,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 150,
+            "column" : 10,
+            "source_fragment" : "default_tc"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "slice_tc",
+              "target" : ["_ingress_bridged4", "_base_slice_tc12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "tc_unknown",
+              "target" : ["scalars", "userMetadata._ingress_tc_unknown28"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 16,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [45, 4],
+          "actions" : ["FabricIngress.qos.set_default_tc", "nop"],
+          "base_default_next" : "node_60",
+          "next_tables" : {
+            "FabricIngress.qos.set_default_tc" : "node_60",
+            "nop" : "node_60"
+          },
+          "default_entry" : {
+            "action_id" : 4,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_slicing174",
+          "id" : 37,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 174,
+            "column" : 12,
+            "source_fragment" : "slice_tc_meter.execute_meter((bit<32>) fabric_md.bridged.base.slice_tc, packet_color)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [69],
+          "actions" : ["slicing174"],
+          "base_default_next" : "FabricIngress.qos.queues",
+          "next_tables" : {
+            "slicing174" : "FabricIngress.qos.queues"
+          },
+          "default_entry" : {
+            "action_id" : 69,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_slicing177",
+          "id" : 38,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 177,
+            "column" : 25,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [70],
+          "actions" : ["slicing177"],
+          "base_default_next" : "FabricIngress.qos.queues",
+          "next_tables" : {
+            "slicing177" : "FabricIngress.qos.queues"
+          },
+          "default_entry" : {
+            "action_id" : 70,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.qos.queues",
+          "id" : 39,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 122,
+            "column" : 10,
+            "source_fragment" : "queues"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "slice_tc",
+              "target" : ["_ingress_bridged4", "_base_slice_tc12"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "color",
+              "target" : ["scalars", "qos_packet_color"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 128,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [43, 44],
+          "actions" : ["FabricIngress.qos.set_queue", "FabricIngress.qos.meter_drop"],
+          "base_default_next" : "tbl_int112",
+          "next_tables" : {
+            "FabricIngress.qos.set_queue" : "tbl_int112",
+            "FabricIngress.qos.meter_drop" : "tbl_int112"
+          },
+          "default_entry" : {
+            "action_id" : 43,
+            "action_const" : true,
+            "action_data" : ["0x0"],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int112",
+          "id" : 40,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 112,
+            "column" : 46,
+            "source_fragment" : "= standard_md.egress_spec; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [71],
+          "actions" : ["int112"],
+          "base_default_next" : "FabricIngress.int_ingress.drop_report",
+          "next_tables" : {
+            "int112" : "FabricIngress.int_ingress.drop_report"
+          },
+          "default_entry" : {
+            "action_id" : 71,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.int_ingress.drop_report",
+          "id" : 41,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 86,
+            "column" : 10,
+            "source_fragment" : "drop_report"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "int_report_type",
+              "target" : ["_ingress_bridged4", "_int_bmd_report_type13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "drop_ctl",
+              "target" : ["scalars", "userMetadata._drop_ctl2"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "punt_to_cpu",
+              "target" : ["scalars", "userMetadata._ingress_punt_to_cpu23"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "egress_port_set",
+              "target" : ["scalars", "userMetadata._ingress_egress_port_set22"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "mcast_group_id",
+              "target" : ["standard_metadata", "mcast_grp"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 3,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [49, 5],
+          "actions" : ["FabricIngress.int_ingress.report_drop", "nop"],
+          "base_default_next" : "tbl_fabric_v1model106",
+          "next_tables" : {
+            "FabricIngress.int_ingress.report_drop" : "tbl_fabric_v1model106",
+            "nop" : "tbl_fabric_v1model106"
+          },
+          "default_entry" : {
+            "action_id" : 5,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 101,
+                "column" : 12,
+                "source_fragment" : "(INT_REPORT_TYPE_FLOW, 1, false, false, _): report_drop()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "ternary",
+                  "key" : "0x0000",
+                  "mask" : "0x0000"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 49,
+                "action_data" : []
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 102,
+                "column" : 12,
+                "source_fragment" : "(INT_REPORT_TYPE_FLOW, 1, false, true, _): report_drop()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "ternary",
+                  "key" : "0x0000",
+                  "mask" : "0x0000"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 49,
+                "action_data" : []
+              },
+              "priority" : 2
+            },
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 104,
+                "column" : 12,
+                "source_fragment" : "(INT_REPORT_TYPE_FLOW, 0, false, false, 0): report_drop()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "ternary",
+                  "key" : "0x0000",
+                  "mask" : "0xffff"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 49,
+                "action_data" : []
+              },
+              "priority" : 3
+            }
+          ]
+        },
+        {
+          "name" : "tbl_fabric_v1model106",
+          "id" : 42,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 106,
+            "column" : 33,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [73],
+          "actions" : ["fabric_v1model106"],
+          "base_default_next" : "node_67",
+          "next_tables" : {
+            "fabric_v1model106" : "node_67"
+          },
+          "default_entry" : {
+            "action_id" : 73,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model110",
+          "id" : 43,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 110,
+            "column" : 12,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [72],
+          "actions" : ["fabric_v1model110"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "fabric_v1model110" : null
+          },
+          "default_entry" : {
+            "action_id" : 72,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        }
+      ],
+      "action_profiles" : [
+        {
+          "name" : "FabricIngress.next.hashed_profile",
+          "id" : 0,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 112,
+            "column" : 15,
+            "source_fragment" : "hashed_profile"
+          },
+          "max_size" : 16,
+          "selector" : {
+            "algo" : "crc16",
+            "input" : [
+              {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_ecmp_hash5"]
+              }
+            ]
+          }
+        }
+      ],
+      "conditionals" : [
+        {
+          "name" : "node_3",
+          "id" : 0,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 62,
+            "column" : 12,
+            "source_fragment" : "standard_md.parser_error == error.PacketRejectedByParser"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["standard_metadata", "parser_error"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x8"
+              }
+            }
+          },
+          "true_next" : "tbl_fabric_v1model64",
+          "false_next" : "node_5"
+        },
+        {
+          "name" : "node_5",
+          "id" : 1,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 67,
+            "column" : 13,
+            "source_fragment" : "standard_md.instance_type == 4"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["standard_metadata", "instance_type"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x00000004"
+              }
+            }
+          },
+          "true_next" : "tbl_fabric_v1model70",
+          "false_next" : "tbl_lookup_md_init15"
+        },
+        {
+          "name" : "node_8",
+          "id" : 2,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 20,
+            "column" : 12,
+            "source_fragment" : "hdr.vlan_tag.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_vlan_tag4", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init21",
+          "false_next" : "tbl_lookup_md_init24"
+        },
+        {
+          "name" : "node_11",
+          "id" : 3,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 32,
+            "column" : 12,
+            "source_fragment" : "hdr.inner_ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_inner_ipv418", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init33",
+          "false_next" : "node_19"
+        },
+        {
+          "name" : "node_13",
+          "id" : 4,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 37,
+            "column" : 16,
+            "source_fragment" : "hdr.inner_tcp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_inner_tcp19", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init38",
+          "false_next" : "node_15"
+        },
+        {
+          "name" : "node_15",
+          "id" : 5,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 40,
+            "column" : 23,
+            "source_fragment" : "hdr.inner_udp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_inner_udp20", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init41",
+          "false_next" : "node_17"
+        },
+        {
+          "name" : "node_17",
+          "id" : 6,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 43,
+            "column" : 23,
+            "source_fragment" : "hdr.inner_icmp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_inner_icmp21", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init44",
+          "false_next" : "node_27"
+        },
+        {
+          "name" : "node_19",
+          "id" : 7,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 47,
+            "column" : 19,
+            "source_fragment" : "hdr.ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_ipv47", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init48",
+          "false_next" : "node_27"
+        },
+        {
+          "name" : "node_21",
+          "id" : 8,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 52,
+            "column" : 16,
+            "source_fragment" : "hdr.tcp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_tcp9", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init53",
+          "false_next" : "node_23"
+        },
+        {
+          "name" : "node_23",
+          "id" : 9,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 55,
+            "column" : 23,
+            "source_fragment" : "hdr.udp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_udp10", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init56",
+          "false_next" : "node_25"
+        },
+        {
+          "name" : "node_25",
+          "id" : 10,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/lookup_md_init.p4",
+            "line" : 58,
+            "column" : 23,
+            "source_fragment" : "hdr.icmp.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_icmp11", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_lookup_md_init59",
+          "false_next" : "node_27"
+        },
+        {
+          "name" : "node_27",
+          "id" : 11,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 24,
+            "column" : 12,
+            "source_fragment" : "hdr.packet_out.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_packet_out0", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_pkt_io_do_packet_out",
+          "false_next" : "FabricIngress.int_watchlist.watchlist"
+        },
+        {
+          "name" : "node_35",
+          "id" : 12,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 88,
+            "column" : 13,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_skip_forwarding19"]
+              }
+            }
+          },
+          "false_next" : "node_36",
+          "true_next" : "tbl_hasher17"
+        },
+        {
+          "name" : "node_36",
+          "id" : 13,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 178,
+            "column" : 12,
+            "source_fragment" : "hdr.ethernet.isValid() && ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_ethernet3", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x00"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "FabricIngress.forwarding.bridging",
+          "false_next" : "node_38"
+        },
+        {
+          "name" : "node_38",
+          "id" : 14,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 181,
+            "column" : 19,
+            "source_fragment" : "hdr.mpls.isValid() && ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_mpls6", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x01"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "FabricIngress.forwarding.mpls",
+          "false_next" : "node_40"
+        },
+        {
+          "name" : "node_40",
+          "id" : 15,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 184,
+            "column" : 19,
+            "source_fragment" : "fabric_md.lkp.is_ipv4 && ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "or",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "==",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "==",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "FabricIngress.forwarding.routing_v4",
+          "false_next" : "node_42"
+        },
+        {
+          "name" : "node_42",
+          "id" : 16,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/forwarding.p4",
+            "line" : 188,
+            "column" : 19,
+            "source_fragment" : "hdr.ipv6.isValid() && ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_ipv68", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_bridged4", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x04"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "FabricIngress.forwarding.routing_v6",
+          "false_next" : "tbl_hasher17"
+        },
+        {
+          "name" : "node_45",
+          "id" : 17,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/hasher.p4",
+            "line" : 38,
+            "column" : 12,
+            "source_fragment" : "hdr.gtpu.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_gtpu12", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_hasher39",
+          "false_next" : "node_47"
+        },
+        {
+          "name" : "node_47",
+          "id" : 18,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 91,
+            "column" : 34,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_lkp_is_ipv410"]
+              }
+            }
+          },
+          "true_next" : "tbl_hasher50",
+          "false_next" : "tbl_hasher66"
+        },
+        {
+          "name" : "node_50",
+          "id" : 19,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 92,
+            "column" : 13,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+              }
+            }
+          },
+          "false_next" : "FabricIngress.pre_next.next_mpls",
+          "true_next" : "FabricIngress.acl.acl"
+        },
+        {
+          "name" : "node_54",
+          "id" : 20,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 96,
+            "column" : 13,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_skip_next20"]
+              }
+            }
+          },
+          "false_next" : "FabricIngress.next.simple",
+          "true_next" : "FabricIngress.qos.set_slice_tc"
+        },
+        {
+          "name" : "node_60",
+          "id" : 21,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 173,
+            "column" : 12,
+            "source_fragment" : "fabric_md.upf_meter_color != MeterColor_t.RED"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "!=",
+              "left" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._ingress_upf_meter_color32"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x02"
+              }
+            }
+          },
+          "true_next" : "tbl_slicing174",
+          "false_next" : "tbl_slicing177"
+        },
+        {
+          "name" : "node_67",
+          "id" : 22,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 109,
+            "column" : 12,
+            "source_fragment" : "fabric_md.drop_ctl == 1"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._drop_ctl2"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x01"
+              }
+            }
+          },
+          "false_next" : null,
+          "true_next" : "tbl_fabric_v1model110"
+        }
+      ]
+    },
+    {
+      "name" : "egress",
+      "id" : 1,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+        "line" : 115,
+        "column" : 8,
+        "source_fragment" : "FabricEgress"
+      },
+      "init_table" : "tbl_fabric_v1model133",
+      "tables" : [
+        {
+          "name" : "tbl_fabric_v1model133",
+          "id" : 44,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 133,
+            "column" : 34,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [103],
+          "actions" : ["fabric_v1model133"],
+          "base_default_next" : "node_72",
+          "next_tables" : {
+            "fabric_v1model133" : "node_72"
+          },
+          "default_entry" : {
+            "action_id" : 103,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model136",
+          "id" : 45,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 136,
+            "column" : 12,
+            "source_fragment" : "exit"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [102],
+          "actions" : ["fabric_v1model136"],
+          "base_default_next" : "node_74",
+          "next_tables" : {
+            "fabric_v1model136" : "node_74"
+          },
+          "default_entry" : {
+            "action_id" : 102,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator14",
+          "id" : 46,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [105],
+          "actions" : ["int_tna_parser_emulator14"],
+          "base_default_next" : "node_76",
+          "next_tables" : {
+            "int_tna_parser_emulator14" : "node_76"
+          },
+          "default_entry" : {
+            "action_id" : 105,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator148",
+          "id" : 47,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 148,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.ipv4.setInvalid(); ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [104],
+          "actions" : ["int_tna_parser_emulator148"],
+          "base_default_next" : "node_78",
+          "next_tables" : {
+            "int_tna_parser_emulator148" : "node_78"
+          },
+          "default_entry" : {
+            "action_id" : 104,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_parser_emulator_parse_int_ingress_drop",
+          "id" : 48,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 165,
+            "column" : 12,
+            "source_fragment" : "parse_int_ingress_drop()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [89],
+          "actions" : ["FabricEgress.parser_emulator.parse_int_ingress_drop"],
+          "base_default_next" : "tbl_int_tna_parser_emulator166",
+          "next_tables" : {
+            "FabricEgress.parser_emulator.parse_int_ingress_drop" : "tbl_int_tna_parser_emulator166"
+          },
+          "default_entry" : {
+            "action_id" : 89,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator166",
+          "id" : 49,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 166,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [106],
+          "actions" : ["int_tna_parser_emulator166"],
+          "base_default_next" : "tbl_int_tna_parser_emulator173",
+          "next_tables" : {
+            "int_tna_parser_emulator166" : "tbl_int_tna_parser_emulator173"
+          },
+          "default_entry" : {
+            "action_id" : 106,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_parser_emulator_parse_int_report_mirror",
+          "id" : 50,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 168,
+            "column" : 12,
+            "source_fragment" : "parse_int_report_mirror()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [91],
+          "actions" : ["FabricEgress.parser_emulator.parse_int_report_mirror"],
+          "base_default_next" : "tbl_int_tna_parser_emulator169",
+          "next_tables" : {
+            "FabricEgress.parser_emulator.parse_int_report_mirror" : "tbl_int_tna_parser_emulator169"
+          },
+          "default_entry" : {
+            "action_id" : 91,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator169",
+          "id" : 51,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 169,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(PRESERVE_INT_MD)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [107],
+          "actions" : ["int_tna_parser_emulator169"],
+          "base_default_next" : "tbl_int_tna_parser_emulator173",
+          "next_tables" : {
+            "int_tna_parser_emulator169" : "tbl_int_tna_parser_emulator173"
+          },
+          "default_entry" : {
+            "action_id" : 107,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator173",
+          "id" : 52,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [108],
+          "actions" : ["int_tna_parser_emulator173"],
+          "base_default_next" : "node_84",
+          "next_tables" : {
+            "int_tna_parser_emulator173" : "node_84"
+          },
+          "default_entry" : {
+            "action_id" : 108,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator14_0",
+          "id" : 53,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 14,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [110],
+          "actions" : ["int_tna_parser_emulator14_0"],
+          "base_default_next" : "node_86",
+          "next_tables" : {
+            "int_tna_parser_emulator14_0" : "node_86"
+          },
+          "default_entry" : {
+            "action_id" : 110,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator148_0",
+          "id" : 54,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 148,
+            "column" : 12,
+            "source_fragment" : "hdr_v1model.ingress.ipv4.setInvalid(); ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [109],
+          "actions" : ["int_tna_parser_emulator148_0"],
+          "base_default_next" : "node_88",
+          "next_tables" : {
+            "int_tna_parser_emulator148_0" : "node_88"
+          },
+          "default_entry" : {
+            "action_id" : 109,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_parser_emulator_parse_int_ingress_drop_0",
+          "id" : 55,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 165,
+            "column" : 12,
+            "source_fragment" : "parse_int_ingress_drop()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [90],
+          "actions" : ["FabricEgress.parser_emulator.parse_int_ingress_drop"],
+          "base_default_next" : "tbl_int_tna_parser_emulator166_0",
+          "next_tables" : {
+            "FabricEgress.parser_emulator.parse_int_ingress_drop" : "tbl_int_tna_parser_emulator166_0"
+          },
+          "default_entry" : {
+            "action_id" : 90,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator166_0",
+          "id" : 56,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 166,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [111],
+          "actions" : ["int_tna_parser_emulator166_0"],
+          "base_default_next" : "tbl_int_tna_parser_emulator173_0",
+          "next_tables" : {
+            "int_tna_parser_emulator166_0" : "tbl_int_tna_parser_emulator173_0"
+          },
+          "default_entry" : {
+            "action_id" : 111,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_parser_emulator_parse_int_report_mirror_0",
+          "id" : 57,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 168,
+            "column" : 12,
+            "source_fragment" : "parse_int_report_mirror()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [92],
+          "actions" : ["FabricEgress.parser_emulator.parse_int_report_mirror"],
+          "base_default_next" : "tbl_int_tna_parser_emulator169_0",
+          "next_tables" : {
+            "FabricEgress.parser_emulator.parse_int_report_mirror" : "tbl_int_tna_parser_emulator169_0"
+          },
+          "default_entry" : {
+            "action_id" : 92,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator169_0",
+          "id" : 58,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 169,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(PRESERVE_INT_MD)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [112],
+          "actions" : ["int_tna_parser_emulator169_0"],
+          "base_default_next" : "tbl_int_tna_parser_emulator173_0",
+          "next_tables" : {
+            "int_tna_parser_emulator169_0" : "tbl_int_tna_parser_emulator173_0"
+          },
+          "default_entry" : {
+            "action_id" : 112,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int_tna_parser_emulator173_0",
+          "id" : 59,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 173,
+            "column" : 27,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [113],
+          "actions" : ["int_tna_parser_emulator173_0"],
+          "base_default_next" : "FabricEgress.pkt_io_egress.switch_info",
+          "next_tables" : {
+            "int_tna_parser_emulator173_0" : "FabricEgress.pkt_io_egress.switch_info"
+          },
+          "default_entry" : {
+            "action_id" : 113,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.pkt_io_egress.switch_info",
+          "id" : 60,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 39,
+            "column" : 10,
+            "source_fragment" : "switch_info"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [81, 74],
+          "actions" : ["FabricEgress.pkt_io_egress.set_switch_info", "nop"],
+          "base_default_next" : "node_95",
+          "next_tables" : {
+            "FabricEgress.pkt_io_egress.set_switch_info" : "node_95",
+            "nop" : "node_95"
+          },
+          "default_entry" : {
+            "action_id" : 74,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "tbl_packetio51",
+          "id" : 61,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 51,
+            "column" : 12,
+            "source_fragment" : "hdr.packet_in.setValid(); ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [114],
+          "actions" : ["packetio51"],
+          "base_default_next" : "node_97",
+          "next_tables" : {
+            "packetio51" : "node_97"
+          },
+          "default_entry" : {
+            "action_id" : 114,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_packetio60",
+          "id" : 62,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 60,
+            "column" : 37,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [115],
+          "actions" : ["packetio60"],
+          "base_default_next" : "node_99",
+          "next_tables" : {
+            "packetio60" : "node_99"
+          },
+          "default_entry" : {
+            "action_id" : 115,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.stats.flows",
+          "id" : 63,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+            "line" : 53,
+            "column" : 10,
+            "source_fragment" : "flows"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "stats_flow_id",
+              "target" : ["_egress_bridged36", "_base_stats_flow_id11"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "eg_port",
+              "target" : ["standard_metadata", "egress_port"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [80],
+          "actions" : ["FabricEgress.stats.count"],
+          "base_default_next" : "node_101",
+          "next_tables" : {
+            "FabricEgress.stats.count" : "node_101"
+          },
+          "default_entry" : {
+            "action_id" : 80,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next283",
+          "id" : 64,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 283,
+            "column" : 50,
+            "source_fragment" : "= INT_REPORT_TYPE_NO_REPORT; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [116],
+          "actions" : ["next283"],
+          "base_default_next" : "node_103",
+          "next_tables" : {
+            "next283" : "node_103"
+          },
+          "default_entry" : {
+            "action_id" : 116,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_egress_next_pop_mpls_if_present",
+          "id" : 65,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 289,
+            "column" : 36,
+            "source_fragment" : "pop_mpls_if_present()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [82],
+          "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
+          "base_default_next" : "node_107",
+          "next_tables" : {
+            "FabricEgress.egress_next.pop_mpls_if_present" : "node_107"
+          },
+          "default_entry" : {
+            "action_id" : 82,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_egress_next_set_mpls",
+          "id" : 66,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 291,
+            "column" : 12,
+            "source_fragment" : "set_mpls()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [83],
+          "actions" : ["FabricEgress.egress_next.set_mpls"],
+          "base_default_next" : "node_107",
+          "next_tables" : {
+            "FabricEgress.egress_next.set_mpls" : "node_107"
+          },
+          "default_entry" : {
+            "action_id" : 83,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.egress_next.egress_vlan",
+          "id" : 67,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 264,
+            "column" : 10,
+            "source_fragment" : "egress_vlan"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "vlan_id",
+              "target" : ["_egress_bridged36", "_base_vlan_id6"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "eg_port",
+              "target" : ["standard_metadata", "egress_port"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [84, 85, 86],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_109",
+          "next_tables" : {
+            "FabricEgress.egress_next.push_vlan" : "node_109",
+            "FabricEgress.egress_next.pop_vlan" : "node_109",
+            "FabricEgress.egress_next.drop" : "node_109"
+          },
+          "default_entry" : {
+            "action_id" : 86,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next323",
+          "id" : 68,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 323,
+            "column" : 25,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [118],
+          "actions" : ["next323"],
+          "base_default_next" : "node_111",
+          "next_tables" : {
+            "next323" : "node_111"
+          },
+          "default_entry" : {
+            "action_id" : 118,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next325",
+          "id" : 69,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 325,
+            "column" : 25,
+            "source_fragment" : "= 1; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [117],
+          "actions" : ["next325"],
+          "base_default_next" : "tbl_int128",
+          "next_tables" : {
+            "next325" : "tbl_int128"
+          },
+          "default_entry" : {
+            "action_id" : 117,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next333",
+          "id" : 70,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 333,
+            "column" : 33,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [119],
+          "actions" : ["next333"],
+          "base_default_next" : "node_116",
+          "next_tables" : {
+            "next333" : "node_116"
+          },
+          "default_entry" : {
+            "action_id" : 119,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next336",
+          "id" : 71,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 336,
+            "column" : 29,
+            "source_fragment" : "= 1; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [120],
+          "actions" : ["next336"],
+          "base_default_next" : "tbl_int128",
+          "next_tables" : {
+            "next336" : "tbl_int128"
+          },
+          "default_entry" : {
+            "action_id" : 120,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next343",
+          "id" : 72,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 343,
+            "column" : 39,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [121],
+          "actions" : ["next343"],
+          "base_default_next" : "node_121",
+          "next_tables" : {
+            "next343" : "node_121"
+          },
+          "default_entry" : {
+            "action_id" : 121,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_next346",
+          "id" : 73,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 346,
+            "column" : 29,
+            "source_fragment" : "= 1; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [122],
+          "actions" : ["next346"],
+          "base_default_next" : "tbl_int128",
+          "next_tables" : {
+            "next346" : "tbl_int128"
+          },
+          "default_entry" : {
+            "action_id" : 122,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_int128",
+          "id" : 74,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 128,
+            "column" : 4,
+            "source_fragment" : "egress_headers_t hdr = hdr_v1model.egress; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [123],
+          "actions" : ["int128"],
+          "base_default_next" : "FabricEgress.int_egress.queue_latency_thresholds",
+          "next_tables" : {
+            "int128" : "FabricEgress.int_egress.queue_latency_thresholds"
+          },
+          "default_entry" : {
+            "action_id" : 123,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.int_egress.queue_latency_thresholds",
+          "id" : 75,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 159,
+            "column" : 10,
+            "source_fragment" : "queue_latency_thresholds"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "egress_qid",
+              "target" : ["scalars", "int_egress_egress_qid"],
+              "mask" : null
+            },
+            {
+              "match_type" : "range",
+              "name" : "hop_latency_upper",
+              "target" : ["scalars", "key_0"],
+              "mask" : null
+            },
+            {
+              "match_type" : "range",
+              "name" : "hop_latency_lower",
+              "target" : ["scalars", "key_1"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "range",
+          "type" : "simple",
+          "max_size" : 128,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [93, 94, 76],
+          "actions" : ["FabricEgress.int_egress.check_quota", "FabricEgress.int_egress.reset_quota", "nop"],
+          "base_default_next" : "FabricEgress.int_egress.config",
+          "next_tables" : {
+            "FabricEgress.int_egress.check_quota" : "FabricEgress.int_egress.config",
+            "FabricEgress.int_egress.reset_quota" : "FabricEgress.int_egress.config",
+            "nop" : "FabricEgress.int_egress.config"
+          },
+          "default_entry" : {
+            "action_id" : 76,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "FabricEgress.int_egress.config",
+          "id" : 76,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 183,
+            "column" : 10,
+            "source_fragment" : "config"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [95],
+          "actions" : ["FabricEgress.int_egress.set_config"],
+          "base_default_next" : "tbl_int373",
+          "next_tables" : {
+            "FabricEgress.int_egress.set_config" : "tbl_int373"
+          },
+          "default_entry" : {
+            "action_id" : 95,
+            "action_const" : false,
+            "action_data" : ["0xffffff00", "0xffffc0000000"],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "tbl_int373",
+          "id" : 77,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 373,
+            "column" : 38,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [125],
+          "actions" : ["int373"],
+          "base_default_next" : "node_127",
+          "next_tables" : {
+            "int373" : "node_127"
+          },
+          "default_entry" : {
+            "action_id" : 125,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.int_egress.report",
+          "id" : 78,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 260,
+            "column" : 10,
+            "source_fragment" : "report"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "bmd_type",
+              "target" : ["int_egress_fabric_md_int_report_md", "bmd_type"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "mirror_type",
+              "target" : ["int_egress_fabric_md_int_report_md", "mirror_type"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "int_report_type",
+              "target" : ["int_egress_fabric_md_int_report_md", "report_type"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 6,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [96, 97, 98, 99, 77],
+          "actions" : ["FabricEgress.int_egress.do_local_report_encap", "FabricEgress.int_egress.do_local_report_encap_mpls", "FabricEgress.int_egress.do_drop_report_encap", "FabricEgress.int_egress.do_drop_report_encap_mpls", "nop"],
+          "base_default_next" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+          "next_tables" : {
+            "FabricEgress.int_egress.do_local_report_encap" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+            "FabricEgress.int_egress.do_local_report_encap_mpls" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+            "FabricEgress.int_egress.do_drop_report_encap" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+            "FabricEgress.int_egress.do_drop_report_encap_mpls" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+            "nop" : "FabricEgress.int_egress.adjust_int_report_hdr_length"
+          },
+          "default_entry" : {
+            "action_id" : 77,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "FabricEgress.int_egress.int_metadata",
+          "id" : 79,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 315,
+            "column" : 10,
+            "source_fragment" : "int_metadata"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "int_report_type",
+              "target" : ["_egress_bridged36", "_int_bmd_report_type13"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "drop_ctl",
+              "target" : ["scalars", "userMetadata._drop_ctl2"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "queue_report",
+              "target" : ["scalars", "userMetadata._egress_int_md_queue_report42"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 2,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [100, 78],
+          "actions" : ["FabricEgress.int_egress.init_int_metadata", "nop"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "__HIT__" : "tbl_int383",
+            "__MISS__" : "FabricEgress.int_egress.adjust_int_report_hdr_length"
+          },
+          "default_entry" : {
+            "action_id" : 78,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 327,
+                "column" : 12,
+                "source_fragment" : "(INT_REPORT_TYPE_FLOW, 0, false): init_int_metadata(INT_REPORT_TYPE_FLOW)"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 100,
+                "action_data" : ["0x1"]
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 329,
+                "column" : 12,
+                "source_fragment" : "(INT_REPORT_TYPE_FLOW, 1, false): init_int_metadata(INT_REPORT_TYPE_DROP)"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                },
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 100,
+                "action_data" : ["0x4"]
+              },
+              "priority" : 2
+            }
+          ]
+        },
+        {
+          "name" : "tbl_int383",
+          "id" : 80,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 383,
+            "column" : 16,
+            "source_fragment" : "clone_preserving_field_list(CloneType.E2E, ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [124],
+          "actions" : ["int383"],
+          "base_default_next" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+          "next_tables" : {
+            "int383" : "FabricEgress.int_egress.adjust_int_report_hdr_length"
+          },
+          "default_entry" : {
+            "action_id" : 124,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.int_egress.adjust_int_report_hdr_length",
+          "id" : 81,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 347,
+            "column" : 10,
+            "source_fragment" : "adjust_int_report_hdr_length"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "is_int_wip",
+              "target" : ["int_egress_fabric_md_bridged", "_int_bmd_wip_type18"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 2,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [79, 101],
+          "actions" : ["nop", "FabricEgress.int_egress.adjust_ip_udp_len"],
+          "base_default_next" : "tbl_slicing189",
+          "next_tables" : {
+            "nop" : "tbl_slicing189",
+            "FabricEgress.int_egress.adjust_ip_udp_len" : "tbl_slicing189"
+          },
+          "default_entry" : {
+            "action_id" : 79,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 358,
+                "column" : 12,
+                "source_fragment" : "INT_IS_WIP: adjust_ip_udp_len(INT_WIP_ADJUST_IP_BYTES, INT_WIP_ADJUST_UDP_BYTES)"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 101,
+                "action_data" : ["0xfff2", "0xffde"]
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+                "line" : 359,
+                "column" : 12,
+                "source_fragment" : "INT_IS_WIP_WITH_MPLS: adjust_ip_udp_len(INT_WIP_ADJUST_IP_MPLS_BYTES, INT_WIP_ADJUST_UDP_MPLS_BYTES)"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x02"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 101,
+                "action_data" : ["0xffee", "0xffda"]
+              },
+              "priority" : 2
+            }
+          ]
+        },
+        {
+          "name" : "tbl_slicing189",
+          "id" : 82,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 189,
+            "column" : 4,
+            "source_fragment" : "bit<6> tmp_dscp = fabric_md.bridged.base.slice_tc; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [127],
+          "actions" : ["slicing189"],
+          "base_default_next" : "FabricEgress.dscp_rewriter.rewriter",
+          "next_tables" : {
+            "slicing189" : "FabricEgress.dscp_rewriter.rewriter"
+          },
+          "default_entry" : {
+            "action_id" : 127,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.dscp_rewriter.rewriter",
+          "id" : 83,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 201,
+            "column" : 10,
+            "source_fragment" : "rewriter"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "eg_port",
+              "target" : ["standard_metadata", "egress_port"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 512,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [87, 88, 75],
+          "actions" : ["FabricEgress.dscp_rewriter.rewrite", "FabricEgress.dscp_rewriter.clear", "nop"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "__HIT__" : "node_134",
+            "__MISS__" : "node_136"
+          },
+          "default_entry" : {
+            "action_id" : 75,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_slicing217",
+          "id" : 84,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 217,
+            "column" : 30,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [126],
+          "actions" : ["slicing217"],
+          "base_default_next" : "node_136",
+          "next_tables" : {
+            "slicing217" : "node_136"
+          },
+          "default_entry" : {
+            "action_id" : 126,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model170",
+          "id" : 85,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 170,
+            "column" : 12,
+            "source_fragment" : "recirculate_preserving_field_list(NO_PRESERVATION)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [128],
+          "actions" : ["fabric_v1model170"],
+          "base_default_next" : "node_138",
+          "next_tables" : {
+            "fabric_v1model170" : "node_138"
+          },
+          "default_entry" : {
+            "action_id" : 128,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_fabric_v1model174",
+          "id" : 86,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 174,
+            "column" : 12,
+            "source_fragment" : "mark_to_drop(standard_md)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [129],
+          "actions" : ["fabric_v1model174"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "fabric_v1model174" : null
+          },
+          "default_entry" : {
+            "action_id" : 129,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        }
+      ],
+      "action_profiles" : [],
+      "conditionals" : [
+        {
+          "name" : "node_72",
+          "id" : 23,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 135,
+            "column" : 12,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._skip_egress0"]
+              }
+            }
+          },
+          "true_next" : "tbl_fabric_v1model136",
+          "false_next" : "node_74"
+        },
+        {
+          "name" : "node_74",
+          "id" : 24,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 140,
+            "column" : 13,
+            "source_fragment" : "standard_md.instance_type == 2"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["standard_metadata", "instance_type"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x00000002"
+              }
+            }
+          },
+          "true_next" : "tbl_int_tna_parser_emulator14",
+          "false_next" : "node_84"
+        },
+        {
+          "name" : "node_76",
+          "id" : 25,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 145,
+            "column" : 11,
+            "source_fragment" : "hdr_v1model.ingress.gtpu.isValid() || hdr_v1model.ingress.vxlan.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "or",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_gtpu12", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_vxlan15", "$valid$"]
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "tbl_int_tna_parser_emulator148",
+          "false_next" : "node_78"
+        },
+        {
+          "name" : "node_78",
+          "id" : 26,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 164,
+            "column" : 12,
+            "source_fragment" : "(bit<8>)fabric_md.bridged.int_bmd.report_type == BridgedMdType_t.INT_INGRESS_DROP"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["scalars", "userMetadata._recirc_preserved_report_type46"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x04"
+              }
+            }
+          },
+          "true_next" : "tbl_parser_emulator_parse_int_ingress_drop",
+          "false_next" : "tbl_parser_emulator_parse_int_report_mirror"
+        },
+        {
+          "name" : "node_84",
+          "id" : 27,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 150,
+            "column" : 11,
+            "source_fragment" : "(bit<8>)fabric_md.egress.bridged.int_bmd.report_type == BridgedMdType_t.INT_INGRESS_DROP"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_int_bmd_report_type13"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x04"
+              }
+            }
+          },
+          "true_next" : "tbl_int_tna_parser_emulator14_0",
+          "false_next" : "FabricEgress.pkt_io_egress.switch_info"
+        },
+        {
+          "name" : "node_86",
+          "id" : 28,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 145,
+            "column" : 11,
+            "source_fragment" : "hdr_v1model.ingress.gtpu.isValid() || hdr_v1model.ingress.vxlan.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "or",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_gtpu12", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_vxlan15", "$valid$"]
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "tbl_int_tna_parser_emulator148_0",
+          "false_next" : "node_88"
+        },
+        {
+          "name" : "node_88",
+          "id" : 29,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int_tna_parser_emulator.p4",
+            "line" : 164,
+            "column" : 12,
+            "source_fragment" : "(bit<8>)fabric_md.bridged.int_bmd.report_type == BridgedMdType_t.INT_INGRESS_DROP"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_int_bmd_report_type13"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x04"
+              }
+            }
+          },
+          "true_next" : "tbl_parser_emulator_parse_int_ingress_drop_0",
+          "false_next" : "tbl_parser_emulator_parse_int_report_mirror_0"
+        },
+        {
+          "name" : "node_95",
+          "id" : 30,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 50,
+            "column" : 12,
+            "source_fragment" : "standard_md.egress_port == fabric_md.cpu_port"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["standard_metadata", "egress_port"]
+              },
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._egress_cpu_port37"]
+              }
+            }
+          },
+          "true_next" : "tbl_packetio51",
+          "false_next" : "node_97"
+        },
+        {
+          "name" : "node_97",
+          "id" : 31,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/packetio.p4",
+            "line" : 58,
+            "column" : 12,
+            "source_fragment" : "hdr.fake_ethernet.isValid() && ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_fake_ethernet2", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_ingress_fake_ethernet2", "ether_type"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xbf03"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "tbl_packetio60",
+          "false_next" : "node_99"
+        },
+        {
+          "name" : "node_99",
+          "id" : 32,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/stats.p4",
+            "line" : 67,
+            "column" : 12,
+            "source_fragment" : "bmd_type == BridgedMdType_t.INGRESS_TO_EGRESS"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["_egress_bridged36", "_bmd_type0"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x01"
+              }
+            }
+          },
+          "true_next" : "FabricEgress.stats.flows",
+          "false_next" : "node_101"
+        },
+        {
+          "name" : "node_101",
+          "id" : 33,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 280,
+            "column" : 12,
+            "source_fragment" : "fabric_md.bridged.base.is_multicast ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_is_multicast4"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_ig_port3"]
+                  },
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "tbl_next283",
+          "false_next" : "node_103"
+        },
+        {
+          "name" : "node_103",
+          "id" : 34,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 288,
+            "column" : 12,
+            "source_fragment" : "fabric_md.bridged.base.mpls_label == 0"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["_egress_bridged36", "_base_mpls_label2"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x000000"
+              }
+            }
+          },
+          "true_next" : "node_104",
+          "false_next" : "tbl_egress_next_set_mpls"
+        },
+        {
+          "name" : "node_104",
+          "id" : 35,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 289,
+            "column" : 16,
+            "source_fragment" : "hdr.mpls.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_mpls6", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_egress_next_pop_mpls_if_present",
+          "false_next" : "node_107"
+        },
+        {
+          "name" : "node_107",
+          "id" : 36,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 159,
+            "column" : 39,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._egress_is_int_recirc44"]
+              }
+            }
+          },
+          "false_next" : "FabricEgress.egress_next.egress_vlan",
+          "true_next" : "node_109"
+        },
+        {
+          "name" : "node_109",
+          "id" : 37,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 322,
+            "column" : 12,
+            "source_fragment" : "hdr.mpls.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_mpls6", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_next323",
+          "false_next" : "node_113"
+        },
+        {
+          "name" : "node_111",
+          "id" : 38,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 324,
+            "column" : 16,
+            "source_fragment" : "hdr.mpls.ttl == 0"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["_ingress_mpls6", "ttl"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x00"
+              }
+            }
+          },
+          "true_next" : "tbl_next325",
+          "false_next" : "tbl_int128"
+        },
+        {
+          "name" : "node_113",
+          "id" : 39,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 331,
+            "column" : 16,
+            "source_fragment" : "hdr.ipv4.isValid() && fabric_md.bridged.base.fwd_type != FWD_BRIDGING"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_ipv47", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "!=",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x00"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "node_114",
+          "false_next" : "node_118"
+        },
+        {
+          "name" : "node_114",
+          "id" : 40,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 319,
+            "column" : 28,
+            "source_fragment" : "(fabric_md.bridged.bmd_type == BridgedMdType_t.INT_INGRESS_DROP) || ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "or",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_bmd_type0"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x04"
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_bmd_type0"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x02"
+                  }
+                }
+              }
+            }
+          },
+          "false_next" : "tbl_next333",
+          "true_next" : "node_116"
+        },
+        {
+          "name" : "node_116",
+          "id" : 41,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 335,
+            "column" : 20,
+            "source_fragment" : "hdr.ipv4.ttl == 0"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["_ingress_ipv47", "ttl"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x00"
+              }
+            }
+          },
+          "true_next" : "tbl_next336",
+          "false_next" : "tbl_int128"
+        },
+        {
+          "name" : "node_118",
+          "id" : 42,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 341,
+            "column" : 23,
+            "source_fragment" : "hdr.ipv6.isValid() && fabric_md.bridged.base.fwd_type != FWD_BRIDGING"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["_ingress_ipv68", "$valid$"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "!=",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_base_fwd_type5"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x00"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "node_119",
+          "false_next" : "tbl_int128"
+        },
+        {
+          "name" : "node_119",
+          "id" : 43,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 319,
+            "column" : 28,
+            "source_fragment" : "(fabric_md.bridged.bmd_type == BridgedMdType_t.INT_INGRESS_DROP) || ..."
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "or",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_bmd_type0"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x04"
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["_egress_bridged36", "_bmd_type0"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x02"
+                  }
+                }
+              }
+            }
+          },
+          "false_next" : "tbl_next343",
+          "true_next" : "node_121"
+        },
+        {
+          "name" : "node_121",
+          "id" : 44,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/next.p4",
+            "line" : 345,
+            "column" : 20,
+            "source_fragment" : "hdr.ipv6.hop_limit == 0"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["_ingress_ipv68", "hop_limit"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x00"
+              }
+            }
+          },
+          "true_next" : "tbl_next346",
+          "false_next" : "tbl_int128"
+        },
+        {
+          "name" : "node_127",
+          "id" : 45,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/int.p4",
+            "line" : 375,
+            "column" : 12,
+            "source_fragment" : "fabric_md.int_report_md.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["int_egress_fabric_md_int_report_md", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "FabricEgress.int_egress.report",
+          "false_next" : "FabricEgress.int_egress.int_metadata"
+        },
+        {
+          "name" : "node_134",
+          "id" : 46,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/slicing.p4",
+            "line" : 216,
+            "column" : 16,
+            "source_fragment" : "hdr.ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["_ingress_ipv47", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_slicing217",
+          "false_next" : "node_136"
+        },
+        {
+          "name" : "node_136",
+          "id" : 47,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 168,
+            "column" : 12,
+            "source_fragment" : "fabric_md"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._do_upf_uplink_recirc1"]
+              }
+            }
+          },
+          "true_next" : "tbl_fabric_v1model170",
+          "false_next" : "node_138"
+        },
+        {
+          "name" : "node_138",
+          "id" : 48,
+          "source_info" : {
+            "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+            "line" : 173,
+            "column" : 12,
+            "source_fragment" : "fabric_md.drop_ctl == 1"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "field",
+                "value" : ["scalars", "userMetadata._drop_ctl2"]
+              },
+              "right" : {
+                "type" : "hexstr",
+                "value" : "0x01"
+              }
+            }
+          },
+          "false_next" : null,
+          "true_next" : "tbl_fabric_v1model174"
+        }
+      ]
+    }
+  ],
+  "checksums" : [
+    {
+      "name" : "cksum",
+      "id" : 0,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 55,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.ingress.ipv4.isValid(), ..."
+      },
+      "target" : ["_ingress_ipv47", "hdr_checksum"],
+      "type" : "generic",
+      "calculation" : "calc_2",
+      "verify" : false,
+      "update" : true,
+      "if_cond" : {
+        "type" : "expression",
+        "value" : {
+          "op" : "d2b",
+          "left" : null,
+          "right" : {
+            "type" : "field",
+            "value" : ["_ingress_ipv47", "$valid$"]
+          }
+        }
+      }
+    },
+    {
+      "name" : "cksum_0",
+      "id" : 1,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 73,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.ingress.inner_ipv4.isValid(), ..."
+      },
+      "target" : ["_ingress_inner_ipv418", "hdr_checksum"],
+      "type" : "generic",
+      "calculation" : "calc_3",
+      "verify" : false,
+      "update" : true,
+      "if_cond" : {
+        "type" : "expression",
+        "value" : {
+          "op" : "d2b",
+          "left" : null,
+          "right" : {
+            "type" : "field",
+            "value" : ["_ingress_inner_ipv418", "$valid$"]
+          }
+        }
+      }
+    },
+    {
+      "name" : "cksum_1",
+      "id" : 2,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 92,
+        "column" : 8,
+        "source_fragment" : "update_checksum(hdr.egress.report_ipv4.isValid(), ..."
+      },
+      "target" : ["_egress_report_ipv427", "hdr_checksum"],
+      "type" : "generic",
+      "calculation" : "calc_4",
+      "verify" : false,
+      "update" : true,
+      "if_cond" : {
+        "type" : "expression",
+        "value" : {
+          "op" : "d2b",
+          "left" : null,
+          "right" : {
+            "type" : "field",
+            "value" : ["_egress_report_ipv427", "$valid$"]
+          }
+        }
+      }
+    },
+    {
+      "name" : "cksum_2",
+      "id" : 3,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 13,
+        "column" : 8,
+        "source_fragment" : "verify_checksum(hdr.ingress.ipv4.isValid(), ..."
+      },
+      "target" : ["_ingress_ipv47", "hdr_checksum"],
+      "type" : "generic",
+      "calculation" : "calc_5",
+      "verify" : true,
+      "update" : false,
+      "if_cond" : {
+        "type" : "expression",
+        "value" : {
+          "op" : "d2b",
+          "left" : null,
+          "right" : {
+            "type" : "field",
+            "value" : ["_ingress_ipv47", "$valid$"]
+          }
+        }
+      }
+    },
+    {
+      "name" : "cksum_3",
+      "id" : 4,
+      "source_info" : {
+        "filename" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/../v1model/include/control/checksum.p4",
+        "line" : 31,
+        "column" : 8,
+        "source_fragment" : "verify_checksum(hdr.ingress.inner_ipv4.isValid(), ..."
+      },
+      "target" : ["_ingress_inner_ipv418", "hdr_checksum"],
+      "type" : "generic",
+      "calculation" : "calc_6",
+      "verify" : true,
+      "update" : false,
+      "if_cond" : {
+        "type" : "expression",
+        "value" : {
+          "op" : "d2b",
+          "left" : null,
+          "right" : {
+            "type" : "field",
+            "value" : ["_ingress_inner_ipv418", "$valid$"]
+          }
+        }
+      }
+    }
+  ],
+  "force_arith" : [],
+  "extern_instances" : [],
+  "field_aliases" : [
+    [
+      "queueing_metadata.enq_timestamp",
+      ["standard_metadata", "enq_timestamp"]
+    ],
+    [
+      "queueing_metadata.enq_qdepth",
+      ["standard_metadata", "enq_qdepth"]
+    ],
+    [
+      "queueing_metadata.deq_timedelta",
+      ["standard_metadata", "deq_timedelta"]
+    ],
+    [
+      "queueing_metadata.deq_qdepth",
+      ["standard_metadata", "deq_qdepth"]
+    ],
+    [
+      "intrinsic_metadata.ingress_global_timestamp",
+      ["standard_metadata", "ingress_global_timestamp"]
+    ],
+    [
+      "intrinsic_metadata.egress_global_timestamp",
+      ["standard_metadata", "egress_global_timestamp"]
+    ],
+    [
+      "intrinsic_metadata.mcast_grp",
+      ["standard_metadata", "mcast_grp"]
+    ],
+    [
+      "intrinsic_metadata.egress_rid",
+      ["standard_metadata", "egress_rid"]
+    ],
+    [
+      "intrinsic_metadata.priority",
+      ["standard_metadata", "priority"]
+    ]
+  ],
+  "program" : "/home/ubuntu/tfs-setup/fabric-tna/p4src/v1model/fabric_v1model.p4",
+  "__meta__" : {
+    "version" : [2, 23],
+    "compiler" : "https://github.com/p4lang/p4c"
+  }
+}
\ No newline at end of file
diff --git a/src/tests/p4-int-routing-acl/p4src/p4info.txt b/src/tests/p4-int-routing-acl/p4src/p4info.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4e54f2861496816db734612ad4558cf4d03e69f8
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/p4src/p4info.txt
@@ -0,0 +1,1911 @@
+pkg_info {
+  arch: "v1model"
+}
+tables {
+  preamble {
+    id: 41243186
+    name: "FabricIngress.stats.flows"
+    alias: "FabricIngress.stats.flows"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4_src"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "ipv4_dst"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "l4_sport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "l4_dport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "ig_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  action_refs {
+    id: 21929788
+  }
+  const_default_action_id: 21929788
+  direct_resource_ids: 333776332
+  size: 1024
+}
+tables {
+  preamble {
+    id: 43310977
+    name: "FabricIngress.filtering.ingress_port_vlan"
+    alias: "ingress_port_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "ig_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "vlan_is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 17164167
+  }
+  action_refs {
+    id: 24158268
+  }
+  action_refs {
+    id: 24266015
+  }
+  const_default_action_id: 17164167
+  direct_resource_ids: 326221069
+  size: 1024
+}
+tables {
+  preamble {
+    id: 49718154
+    name: "FabricIngress.filtering.fwd_classifier"
+    alias: "fwd_classifier"
+  }
+  match_fields {
+    id: 1
+    name: "ig_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "eth_dst"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "ip_eth_type"
+    bitwidth: 16
+    match_type: EXACT
+  }
+  action_refs {
+    id: 25032921
+  }
+  const_default_action_id: 25032921
+  direct_resource_ids: 335473470
+  size: 1024
+}
+tables {
+  preamble {
+    id: 43623757
+    name: "FabricIngress.forwarding.bridging"
+    alias: "bridging"
+  }
+  match_fields {
+    id: 1
+    name: "vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "eth_dst"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 21791748
+  }
+  action_refs {
+    id: 29734112
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 29734112
+  direct_resource_ids: 330959985
+  size: 1024
+}
+tables {
+  preamble {
+    id: 37768578
+    name: "FabricIngress.forwarding.mpls"
+    alias: "mpls"
+  }
+  match_fields {
+    id: 1
+    name: "mpls_label"
+    bitwidth: 20
+    match_type: EXACT
+  }
+  action_refs {
+    id: 30066030
+  }
+  action_refs {
+    id: 29734112
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 29734112
+  direct_resource_ids: 318961579
+  size: 1024
+}
+tables {
+  preamble {
+    id: 41754650
+    name: "FabricIngress.forwarding.routing_v4"
+    alias: "routing_v4"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4_dst"
+    bitwidth: 32
+    match_type: LPM
+  }
+  action_refs {
+    id: 19792090
+  }
+  action_refs {
+    id: 29124955
+  }
+  action_refs {
+    id: 17639597
+  }
+  action_refs {
+    id: 29734112
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  direct_resource_ids: 333425635
+  size: 1024
+}
+tables {
+  preamble {
+    id: 49342721
+    name: "FabricIngress.forwarding.routing_v6"
+    alias: "routing_v6"
+  }
+  match_fields {
+    id: 1
+    name: "ipv6_dst"
+    bitwidth: 128
+    match_type: LPM
+  }
+  action_refs {
+    id: 21856023
+  }
+  action_refs {
+    id: 24646532
+  }
+  action_refs {
+    id: 29734112
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  direct_resource_ids: 324042090
+  size: 1024
+}
+tables {
+  preamble {
+    id: 36626242
+    name: "FabricIngress.pre_next.next_mpls"
+    alias: "next_mpls"
+  }
+  match_fields {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 22765924
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  direct_resource_ids: 330020245
+  size: 1024
+}
+tables {
+  preamble {
+    id: 48011802
+    name: "FabricIngress.pre_next.next_vlan"
+    alias: "next_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 33475378
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  direct_resource_ids: 333692067
+  size: 1024
+}
+tables {
+  preamble {
+    id: 44104738
+    name: "FabricIngress.acl.acl"
+    alias: "acl"
+  }
+  match_fields {
+    id: 1
+    name: "ig_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "eth_dst"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "eth_src"
+    bitwidth: 48
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "ipv4_src"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 7
+    name: "ipv4_dst"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 8
+    name: "ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 9
+    name: "icmp_type"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 10
+    name: "icmp_code"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 11
+    name: "l4_sport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 12
+    name: "l4_dport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 13
+    name: "ig_port_type"
+    bitwidth: 2
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 23623126
+  }
+  action_refs {
+    id: 23579892
+  }
+  action_refs {
+    id: 21161133
+  }
+  action_refs {
+    id: 23570973
+  }
+  action_refs {
+    id: 24507494
+  }
+  action_refs {
+    id: 29607214
+  }
+  const_default_action_id: 29607214
+  direct_resource_ids: 319194241
+  size: 1024
+}
+tables {
+  preamble {
+    id: 39142283
+    name: "FabricIngress.next.simple"
+    alias: "simple"
+  }
+  match_fields {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 19358572
+  }
+  action_refs {
+    id: 31887425
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  direct_resource_ids: 326633416
+  size: 1024
+}
+tables {
+  preamble {
+    id: 47960972
+    name: "FabricIngress.next.hashed"
+    alias: "hashed"
+  }
+  match_fields {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 27301117
+  }
+  action_refs {
+    id: 20985706
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  implementation_id: 289544276
+  direct_resource_ids: 322798228
+  size: 1024
+}
+tables {
+  preamble {
+    id: 40619180
+    name: "FabricIngress.next.multicast"
+    alias: "multicast"
+  }
+  match_fields {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+    match_type: EXACT
+  }
+  action_refs {
+    id: 21629581
+  }
+  action_refs {
+    id: 23637707
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 23637707
+  direct_resource_ids: 319194968
+  size: 1024
+}
+tables {
+  preamble {
+    id: 34606298
+    name: "FabricIngress.slice_tc_classifier.classifier"
+    alias: "classifier"
+  }
+  match_fields {
+    id: 1
+    name: "ig_port"
+    bitwidth: 9
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "ipv4_src"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "ipv4_dst"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "l4_sport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 6
+    name: "l4_dport"
+    bitwidth: 16
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 23786376
+  }
+  action_refs {
+    id: 25983516
+  }
+  action_refs {
+    id: 30111108
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 30111108
+  direct_resource_ids: 334706097
+  size: 512
+}
+tables {
+  preamble {
+    id: 36435258
+    name: "FabricIngress.qos.queues"
+    alias: "queues"
+  }
+  match_fields {
+    id: 1
+    name: "slice_tc"
+    bitwidth: 6
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "color"
+    bitwidth: 2
+    match_type: TERNARY
+  }
+  action_refs {
+    id: 32116918
+  }
+  action_refs {
+    id: 28214351
+  }
+  const_default_action_id: 32116918
+  direct_resource_ids: 327743278
+  size: 128
+}
+tables {
+  preamble {
+    id: 43965782
+    name: "FabricIngress.qos.default_tc"
+    alias: "default_tc"
+  }
+  match_fields {
+    id: 1
+    name: "slice_tc"
+    bitwidth: 6
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 2
+    name: "tc_unknown"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  action_refs {
+    id: 23587909
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  size: 16
+}
+tables {
+  preamble {
+    id: 40748488
+    name: "FabricIngress.int_watchlist.watchlist"
+    alias: "watchlist"
+  }
+  match_fields {
+    id: 1
+    name: "ipv4_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "ipv4_src"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 3
+    name: "ipv4_dst"
+    bitwidth: 32
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 4
+    name: "ip_proto"
+    bitwidth: 8
+    match_type: TERNARY
+  }
+  match_fields {
+    id: 5
+    name: "l4_sport"
+    bitwidth: 16
+    match_type: RANGE
+  }
+  match_fields {
+    id: 6
+    name: "l4_dport"
+    bitwidth: 16
+    match_type: RANGE
+  }
+  action_refs {
+    id: 25078550
+  }
+  action_refs {
+    id: 20118842
+  }
+  action_refs {
+    id: 28396787
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28396787
+  direct_resource_ids: 328581521
+  size: 64
+}
+tables {
+  preamble {
+    id: 43851059
+    name: "FabricEgress.stats.flows"
+    alias: "FabricEgress.stats.flows"
+  }
+  match_fields {
+    id: 1
+    name: "stats_flow_id"
+    bitwidth: 10
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "eg_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  action_refs {
+    id: 26838724
+  }
+  const_default_action_id: 26838724
+  direct_resource_ids: 334508337
+  size: 1024
+}
+tables {
+  preamble {
+    id: 35217901
+    name: "FabricEgress.pkt_io_egress.switch_info"
+    alias: "switch_info"
+  }
+  action_refs {
+    id: 32804382
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  size: 1
+}
+tables {
+  preamble {
+    id: 49262446
+    name: "FabricEgress.egress_next.egress_vlan"
+    alias: "egress_vlan"
+  }
+  match_fields {
+    id: 1
+    name: "vlan_id"
+    bitwidth: 12
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "eg_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  action_refs {
+    id: 30307755
+  }
+  action_refs {
+    id: 17183246
+  }
+  action_refs {
+    id: 30812542
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 30812542
+  direct_resource_ids: 318892680
+  size: 1024
+}
+tables {
+  preamble {
+    id: 49970092
+    name: "FabricEgress.dscp_rewriter.rewriter"
+    alias: "rewriter"
+  }
+  match_fields {
+    id: 1
+    name: "eg_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  action_refs {
+    id: 27951287
+  }
+  action_refs {
+    id: 24120545
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  const_default_action_id: 28485346
+  size: 512
+}
+tables {
+  preamble {
+    id: 36860953
+    name: "FabricEgress.int_egress.queue_latency_thresholds"
+    alias: "queue_latency_thresholds"
+  }
+  match_fields {
+    id: 1
+    name: "egress_qid"
+    bitwidth: 5
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "hop_latency_upper"
+    bitwidth: 16
+    match_type: RANGE
+  }
+  match_fields {
+    id: 3
+    name: "hop_latency_lower"
+    bitwidth: 16
+    match_type: RANGE
+  }
+  action_refs {
+    id: 22415037
+  }
+  action_refs {
+    id: 19702294
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  size: 128
+}
+tables {
+  preamble {
+    id: 40475827
+    name: "FabricEgress.int_egress.config"
+    alias: "config"
+  }
+  action_refs {
+    id: 22425991
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  size: 1
+}
+tables {
+  preamble {
+    id: 46071383
+    name: "FabricEgress.int_egress.report"
+    alias: "report"
+  }
+  match_fields {
+    id: 1
+    name: "bmd_type"
+    bitwidth: 8
+    match_type: EXACT
+  }
+  match_fields {
+    id: 2
+    name: "mirror_type"
+    bitwidth: 3
+    match_type: EXACT
+  }
+  match_fields {
+    id: 3
+    name: "int_report_type"
+    bitwidth: 3
+    match_type: EXACT
+  }
+  action_refs {
+    id: 30783845
+  }
+  action_refs {
+    id: 22769901
+  }
+  action_refs {
+    id: 32486459
+  }
+  action_refs {
+    id: 25343592
+  }
+  action_refs {
+    id: 28485346
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
+  }
+  direct_resource_ids: 325056546
+  size: 6
+}
+actions {
+  preamble {
+    id: 28485346
+    name: "nop"
+    alias: "nop"
+  }
+}
+actions {
+  preamble {
+    id: 21257015
+    name: "NoAction"
+    alias: "NoAction"
+    annotations: "@noWarn(\"unused\")"
+  }
+}
+actions {
+  preamble {
+    id: 21929788
+    name: "FabricIngress.stats.count"
+    alias: "FabricIngress.stats.count"
+  }
+  params {
+    id: 1
+    name: "flow_id"
+    bitwidth: 10
+  }
+}
+actions {
+  preamble {
+    id: 17164167
+    name: "FabricIngress.filtering.deny"
+    alias: "deny"
+  }
+}
+actions {
+  preamble {
+    id: 24158268
+    name: "FabricIngress.filtering.permit"
+    alias: "permit"
+  }
+  params {
+    id: 1
+    name: "port_type"
+    bitwidth: 2
+  }
+}
+actions {
+  preamble {
+    id: 24266015
+    name: "FabricIngress.filtering.permit_with_internal_vlan"
+    alias: "permit_with_internal_vlan"
+  }
+  params {
+    id: 1
+    name: "vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "port_type"
+    bitwidth: 2
+  }
+}
+actions {
+  preamble {
+    id: 25032921
+    name: "FabricIngress.filtering.set_forwarding_type"
+    alias: "set_forwarding_type"
+  }
+  params {
+    id: 1
+    name: "fwd_type"
+    bitwidth: 3
+  }
+}
+actions {
+  preamble {
+    id: 29734112
+    name: "FabricIngress.forwarding.set_int_drop_reason"
+    alias: "set_int_drop_reason"
+  }
+  params {
+    id: 1
+    name: "drop_reason"
+    bitwidth: 8
+  }
+}
+actions {
+  preamble {
+    id: 21791748
+    name: "FabricIngress.forwarding.set_next_id_bridging"
+    alias: "set_next_id_bridging"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 30066030
+    name: "FabricIngress.forwarding.pop_mpls_and_next"
+    alias: "pop_mpls_and_next"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 19792090
+    name: "FabricIngress.forwarding.set_next_id_routing_v4"
+    alias: "set_next_id_routing_v4"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 29124955
+    name: "FabricIngress.forwarding.nop_routing_v4"
+    alias: "nop_routing_v4"
+  }
+}
+actions {
+  preamble {
+    id: 17639597
+    name: "FabricIngress.forwarding.drop_routing_v4"
+    alias: "drop_routing_v4"
+  }
+}
+actions {
+  preamble {
+    id: 21856023
+    name: "FabricIngress.forwarding.set_next_id_routing_v6"
+    alias: "set_next_id_routing_v6"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 24646532
+    name: "FabricIngress.forwarding.drop_routing_v6"
+    alias: "drop_routing_v6"
+  }
+}
+actions {
+  preamble {
+    id: 22765924
+    name: "FabricIngress.pre_next.set_mpls_label"
+    alias: "set_mpls_label"
+  }
+  params {
+    id: 1
+    name: "label"
+    bitwidth: 20
+  }
+}
+actions {
+  preamble {
+    id: 33475378
+    name: "FabricIngress.pre_next.set_vlan"
+    alias: "set_vlan"
+  }
+  params {
+    id: 1
+    name: "vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
+    id: 23623126
+    name: "FabricIngress.acl.set_next_id_acl"
+    alias: "set_next_id_acl"
+  }
+  params {
+    id: 1
+    name: "next_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 21161133
+    name: "FabricIngress.acl.copy_to_cpu"
+    alias: "copy_to_cpu"
+  }
+}
+actions {
+  preamble {
+    id: 23579892
+    name: "FabricIngress.acl.punt_to_cpu"
+    alias: "punt_to_cpu"
+  }
+}
+actions {
+  preamble {
+    id: 23570973
+    name: "FabricIngress.acl.drop"
+    alias: "acl.drop"
+  }
+}
+actions {
+  preamble {
+    id: 24507494
+    name: "FabricIngress.acl.set_output_port"
+    alias: "set_output_port"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+}
+actions {
+  preamble {
+    id: 29607214
+    name: "FabricIngress.acl.nop_acl"
+    alias: "nop_acl"
+  }
+}
+actions {
+  preamble {
+    id: 19358572
+    name: "FabricIngress.next.output_simple"
+    alias: "output_simple"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+}
+actions {
+  preamble {
+    id: 31887425
+    name: "FabricIngress.next.routing_simple"
+    alias: "routing_simple"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 27301117
+    name: "FabricIngress.next.output_hashed"
+    alias: "output_hashed"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+}
+actions {
+  preamble {
+    id: 20985706
+    name: "FabricIngress.next.routing_hashed"
+    alias: "routing_hashed"
+  }
+  params {
+    id: 1
+    name: "port_num"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+  params {
+    id: 2
+    name: "smac"
+    bitwidth: 48
+  }
+  params {
+    id: 3
+    name: "dmac"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 21629581
+    name: "FabricIngress.next.set_mcast_group_id"
+    alias: "set_mcast_group_id"
+  }
+  params {
+    id: 1
+    name: "group_id"
+    bitwidth: 16
+  }
+}
+actions {
+  preamble {
+    id: 23637707
+    name: "FabricIngress.next.reset_mcast_group_id"
+    alias: "reset_mcast_group_id"
+  }
+}
+actions {
+  preamble {
+    id: 23786376
+    name: "FabricIngress.slice_tc_classifier.set_slice_id_tc"
+    alias: "set_slice_id_tc"
+  }
+  params {
+    id: 1
+    name: "slice_id"
+    bitwidth: 4
+  }
+  params {
+    id: 2
+    name: "tc"
+    bitwidth: 2
+  }
+}
+actions {
+  preamble {
+    id: 30111108
+    name: "FabricIngress.slice_tc_classifier.no_classification"
+    alias: "no_classification"
+  }
+}
+actions {
+  preamble {
+    id: 25983516
+    name: "FabricIngress.slice_tc_classifier.trust_dscp"
+    alias: "trust_dscp"
+  }
+}
+actions {
+  preamble {
+    id: 32116918
+    name: "FabricIngress.qos.set_queue"
+    alias: "set_queue"
+  }
+  params {
+    id: 1
+    name: "qid"
+    bitwidth: 5
+  }
+}
+actions {
+  preamble {
+    id: 28214351
+    name: "FabricIngress.qos.meter_drop"
+    alias: "meter_drop"
+  }
+}
+actions {
+  preamble {
+    id: 23587909
+    name: "FabricIngress.qos.set_default_tc"
+    alias: "set_default_tc"
+  }
+  params {
+    id: 1
+    name: "tc"
+    bitwidth: 2
+  }
+}
+actions {
+  preamble {
+    id: 25078550
+    name: "FabricIngress.int_watchlist.mark_to_report"
+    alias: "mark_to_report"
+  }
+}
+actions {
+  preamble {
+    id: 28396787
+    name: "FabricIngress.int_watchlist.no_report"
+    alias: "no_report"
+  }
+}
+actions {
+  preamble {
+    id: 20118842
+    name: "FabricIngress.int_watchlist.no_report_collector"
+    alias: "no_report_collector"
+  }
+}
+actions {
+  preamble {
+    id: 26838724
+    name: "FabricEgress.stats.count"
+    alias: "FabricEgress.stats.count"
+  }
+}
+actions {
+  preamble {
+    id: 32804382
+    name: "FabricEgress.pkt_io_egress.set_switch_info"
+    alias: "set_switch_info"
+  }
+  params {
+    id: 1
+    name: "cpu_port"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+}
+actions {
+  preamble {
+    id: 30307755
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
+    id: 17183246
+    name: "FabricEgress.egress_next.pop_vlan"
+    alias: "pop_vlan"
+  }
+}
+actions {
+  preamble {
+    id: 30812542
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
+actions {
+  preamble {
+    id: 27951287
+    name: "FabricEgress.dscp_rewriter.rewrite"
+    alias: "rewrite"
+  }
+}
+actions {
+  preamble {
+    id: 24120545
+    name: "FabricEgress.dscp_rewriter.clear"
+    alias: "clear"
+  }
+}
+actions {
+  preamble {
+    id: 22415037
+    name: "FabricEgress.int_egress.check_quota"
+    alias: "check_quota"
+  }
+}
+actions {
+  preamble {
+    id: 19702294
+    name: "FabricEgress.int_egress.reset_quota"
+    alias: "reset_quota"
+  }
+}
+actions {
+  preamble {
+    id: 22425991
+    name: "FabricEgress.int_egress.set_config"
+    alias: "set_config"
+  }
+  params {
+    id: 1
+    name: "hop_latency_mask"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "timestamp_mask"
+    bitwidth: 48
+  }
+}
+actions {
+  preamble {
+    id: 30783845
+    name: "FabricEgress.int_egress.do_local_report_encap"
+    alias: "do_local_report_encap"
+  }
+  params {
+    id: 1
+    name: "src_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "mon_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "mon_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "switch_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 22769901
+    name: "FabricEgress.int_egress.do_local_report_encap_mpls"
+    alias: "do_local_report_encap_mpls"
+  }
+  params {
+    id: 1
+    name: "src_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "mon_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "mon_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "mon_label"
+    bitwidth: 20
+  }
+  params {
+    id: 5
+    name: "switch_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 32486459
+    name: "FabricEgress.int_egress.do_drop_report_encap"
+    alias: "do_drop_report_encap"
+  }
+  params {
+    id: 1
+    name: "src_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "mon_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "mon_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "switch_id"
+    bitwidth: 32
+  }
+}
+actions {
+  preamble {
+    id: 25343592
+    name: "FabricEgress.int_egress.do_drop_report_encap_mpls"
+    alias: "do_drop_report_encap_mpls"
+  }
+  params {
+    id: 1
+    name: "src_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 2
+    name: "mon_ip"
+    bitwidth: 32
+  }
+  params {
+    id: 3
+    name: "mon_port"
+    bitwidth: 16
+  }
+  params {
+    id: 4
+    name: "mon_label"
+    bitwidth: 20
+  }
+  params {
+    id: 5
+    name: "switch_id"
+    bitwidth: 32
+  }
+}
+action_profiles {
+  preamble {
+    id: 289544276
+    name: "FabricIngress.next.hashed_profile"
+    alias: "hashed_profile"
+  }
+  table_ids: 47960972
+  with_selector: true
+  size: 16
+  max_group_size: 16
+}
+counters {
+  preamble {
+    id: 309010261
+    name: "FabricIngress.filtering.fwd_type_counter"
+    alias: "fwd_type_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  size: 8
+}
+direct_counters {
+  preamble {
+    id: 333776332
+    name: "FabricIngress.stats.flow_counter"
+    alias: "FabricIngress.stats.flow_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 41243186
+}
+direct_counters {
+  preamble {
+    id: 326221069
+    name: "FabricIngress.filtering.ingress_port_vlan_counter"
+    alias: "ingress_port_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 43310977
+}
+direct_counters {
+  preamble {
+    id: 335473470
+    name: "FabricIngress.filtering.fwd_classifier_counter"
+    alias: "fwd_classifier_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 49718154
+}
+direct_counters {
+  preamble {
+    id: 330959985
+    name: "FabricIngress.forwarding.bridging_counter"
+    alias: "bridging_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 43623757
+}
+direct_counters {
+  preamble {
+    id: 318961579
+    name: "FabricIngress.forwarding.mpls_counter"
+    alias: "mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 37768578
+}
+direct_counters {
+  preamble {
+    id: 333425635
+    name: "FabricIngress.forwarding.routing_v4_counter"
+    alias: "routing_v4_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 41754650
+}
+direct_counters {
+  preamble {
+    id: 324042090
+    name: "FabricIngress.forwarding.routing_v6_counter"
+    alias: "routing_v6_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 49342721
+}
+direct_counters {
+  preamble {
+    id: 330020245
+    name: "FabricIngress.pre_next.next_mpls_counter"
+    alias: "next_mpls_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 36626242
+}
+direct_counters {
+  preamble {
+    id: 333692067
+    name: "FabricIngress.pre_next.next_vlan_counter"
+    alias: "next_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 48011802
+}
+direct_counters {
+  preamble {
+    id: 319194241
+    name: "FabricIngress.acl.acl_counter"
+    alias: "acl_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 44104738
+}
+direct_counters {
+  preamble {
+    id: 326633416
+    name: "FabricIngress.next.simple_counter"
+    alias: "simple_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 39142283
+}
+direct_counters {
+  preamble {
+    id: 322798228
+    name: "FabricIngress.next.hashed_counter"
+    alias: "hashed_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 47960972
+}
+direct_counters {
+  preamble {
+    id: 319194968
+    name: "FabricIngress.next.multicast_counter"
+    alias: "multicast_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 40619180
+}
+direct_counters {
+  preamble {
+    id: 334706097
+    name: "FabricIngress.slice_tc_classifier.classifier_stats"
+    alias: "classifier_stats"
+  }
+  spec {
+    unit: PACKETS
+  }
+  direct_table_id: 34606298
+}
+direct_counters {
+  preamble {
+    id: 327743278
+    name: "FabricIngress.qos.queues_stats"
+    alias: "queues_stats"
+  }
+  spec {
+    unit: PACKETS
+  }
+  direct_table_id: 36435258
+}
+direct_counters {
+  preamble {
+    id: 328581521
+    name: "FabricIngress.int_watchlist.watchlist_counter"
+    alias: "watchlist_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 40748488
+}
+direct_counters {
+  preamble {
+    id: 334508337
+    name: "FabricEgress.stats.flow_counter"
+    alias: "FabricEgress.stats.flow_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 43851059
+}
+direct_counters {
+  preamble {
+    id: 318892680
+    name: "FabricEgress.egress_next.egress_vlan_counter"
+    alias: "egress_vlan_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 49262446
+}
+direct_counters {
+  preamble {
+    id: 325056546
+    name: "FabricEgress.int_egress.report_counter"
+    alias: "report_counter"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 46071383
+}
+meters {
+  preamble {
+    id: 348573637
+    name: "FabricIngress.qos.slice_tc_meter"
+    alias: "slice_tc_meter"
+  }
+  spec {
+    unit: BYTES
+  }
+  size: 64
+}
+controller_packet_metadata {
+  preamble {
+    id: 81826293
+    name: "packet_in"
+    alias: "packet_in"
+    annotations: "@controller_header(\"packet_in\")"
+  }
+  metadata {
+    id: 1
+    name: "ingress_port"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+  metadata {
+    id: 2
+    name: "_pad0"
+    bitwidth: 7
+  }
+}
+controller_packet_metadata {
+  preamble {
+    id: 76689799
+    name: "packet_out"
+    alias: "packet_out"
+    annotations: "@controller_header(\"packet_out\")"
+  }
+  metadata {
+    id: 1
+    name: "pad0"
+    annotations: "@padding"
+    bitwidth: 7
+  }
+  metadata {
+    id: 2
+    name: "egress_port"
+    bitwidth: 9
+    type_name {
+      name: "FabricPortId_t"
+    }
+  }
+  metadata {
+    id: 3
+    name: "pad1"
+    annotations: "@padding"
+    bitwidth: 3
+  }
+  metadata {
+    id: 4
+    name: "queue_id"
+    bitwidth: 5
+  }
+  metadata {
+    id: 5
+    name: "pad2"
+    annotations: "@padding"
+    bitwidth: 5
+  }
+  metadata {
+    id: 6
+    name: "cpu_loopback_mode"
+    bitwidth: 2
+  }
+  metadata {
+    id: 7
+    name: "do_forwarding"
+    bitwidth: 1
+  }
+  metadata {
+    id: 8
+    name: "pad3"
+    annotations: "@padding"
+    bitwidth: 16
+  }
+  metadata {
+    id: 9
+    name: "pad4"
+    annotations: "@padding"
+    bitwidth: 48
+  }
+  metadata {
+    id: 10
+    name: "ether_type"
+    bitwidth: 16
+  }
+}
+registers {
+  preamble {
+    id: 376533241
+    name: "FabricEgress.int_egress.seq_number"
+    alias: "seq_number"
+    annotations: "@hidden"
+  }
+  type_spec {
+    bitstring {
+      bit {
+        bitwidth: 32
+      }
+    }
+  }
+  size: 1024
+}
+type_info {
+  serializable_enums {
+    key: "BridgedMdType_t"
+    value {
+      underlying_type {
+        bitwidth: 8
+      }
+      members {
+        name: "INVALID"
+        value: "\000"
+      }
+      members {
+        name: "INGRESS_TO_EGRESS"
+        value: "\001"
+      }
+      members {
+        name: "EGRESS_MIRROR"
+        value: "\002"
+      }
+      members {
+        name: "INGRESS_MIRROR"
+        value: "\003"
+      }
+      members {
+        name: "INT_INGRESS_DROP"
+        value: "\004"
+      }
+      members {
+        name: "DEFLECTED"
+        value: "\005"
+      }
+    }
+  }
+  serializable_enums {
+    key: "CpuLoopbackMode_t"
+    value {
+      underlying_type {
+        bitwidth: 2
+      }
+      members {
+        name: "DISABLED"
+        value: "\000"
+      }
+      members {
+        name: "DIRECT"
+        value: "\001"
+      }
+      members {
+        name: "INGRESS"
+        value: "\002"
+      }
+    }
+  }
+  serializable_enums {
+    key: "FabricMirrorType_t"
+    value {
+      underlying_type {
+        bitwidth: 3
+      }
+      members {
+        name: "INVALID"
+        value: "\000"
+      }
+      members {
+        name: "INT_REPORT"
+        value: "\001"
+      }
+      members {
+        name: "PACKET_IN"
+        value: "\002"
+      }
+    }
+  }
+  serializable_enums {
+    key: "PortType_t"
+    value {
+      underlying_type {
+        bitwidth: 2
+      }
+      members {
+        name: "UNKNOWN"
+        value: "\000"
+      }
+      members {
+        name: "EDGE"
+        value: "\001"
+      }
+      members {
+        name: "INFRA"
+        value: "\002"
+      }
+      members {
+        name: "INTERNAL"
+        value: "\003"
+      }
+    }
+  }
+  new_types {
+    key: "FabricPortId_t"
+    value {
+      original_type {
+        bitstring {
+          bit {
+            bitwidth: 9
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/src/tests/p4-int-routing-acl/run_test_01_bootstrap.sh b/src/tests/p4-int-routing-acl/run_test_01_bootstrap.sh
new file mode 100755
index 0000000000000000000000000000000000000000..76469ca55455aec65569a7c104f87e8d6673dec9
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/run_test_01_bootstrap.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+# make sure to source the following scripts:
+# - my_deploy.sh
+# - tfs_runtime_env_vars.sh
+
+source tfs_runtime_env_vars.sh
+python3 -m pytest --verbose src/tests/p4-int-routing-acl/test_functional_bootstrap.py
diff --git a/src/tests/p4-int-routing-acl/run_test_02_rules_provision.sh b/src/tests/p4-int-routing-acl/run_test_02_rules_provision.sh
new file mode 100755
index 0000000000000000000000000000000000000000..6709d66c62cae11ecc1e555bae81c680dfeaafc8
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/run_test_02_rules_provision.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+source tfs_runtime_env_vars.sh
+python3 -m pytest --verbose src/tests/p4-int-routing-acl/test_functional_rules_provision.py
diff --git a/src/tests/p4-int-routing-acl/run_test_03_rules_deprovision.sh b/src/tests/p4-int-routing-acl/run_test_03_rules_deprovision.sh
new file mode 100755
index 0000000000000000000000000000000000000000..3a67fad8a04520bc48c666b48d684b5ad7fe3d13
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/run_test_03_rules_deprovision.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+source tfs_runtime_env_vars.sh
+python3 -m pytest --verbose src/tests/p4-int-routing-acl/test_functional_rules_deprovision.py
diff --git a/src/tests/p4-int-routing-acl/run_test_04_cleanup.sh b/src/tests/p4-int-routing-acl/run_test_04_cleanup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..917a2af2dab0ab1b9d0d05ad272c6494486d9580
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/run_test_04_cleanup.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+source tfs_runtime_env_vars.sh
+python3 -m pytest --verbose src/tests/p4-int-routing-acl/test_functional_cleanup.py
diff --git a/src/tests/p4-int-routing-acl/setup.sh b/src/tests/p4-int-routing-acl/setup.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c771642769fe528fe1179909ab0b8edb768f7264
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/setup.sh
@@ -0,0 +1,22 @@
+#! /bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+
+export POD_NAME=$(kubectl get pods -n=tfs | grep device | awk '{print $1}')
+
+kubectl exec ${POD_NAME} -n=tfs -c=server -- mkdir -p /root/p4
+
+kubectl cp src/tests/p4-int-routing-acl/p4src/p4info.txt tfs/${POD_NAME}:/root/p4 -c=server
+kubectl cp src/tests/p4-int-routing-acl/p4src/bmv2.json tfs/${POD_NAME}:/root/p4 -c=server
diff --git a/src/tests/p4-int-routing-acl/test_common.py b/src/tests/p4-int-routing-acl/test_common.py
new file mode 100644
index 0000000000000000000000000000000000000000..8254eddc5bb5f2f2bbf4c0866a9409552872b2c8
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/test_common.py
@@ -0,0 +1,111 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import os
+from common.Constants import DEFAULT_CONTEXT_NAME
+from common.proto.context_pb2 import ContextId, DeviceOperationalStatusEnum
+from common.tools.object_factory.Context import json_context_id
+
+# Context info
+CONTEXT_NAME_P4 = DEFAULT_CONTEXT_NAME
+ADMIN_CONTEXT_ID = ContextId(**json_context_id(CONTEXT_NAME_P4))
+
+# Device and rule cardinality variables
+DEV_NB = 3
+CONNECTION_RULES = 3
+ENDPOINT_RULES = 2
+DATAPLANE_RULES_NB_INT_B1 = 5
+DATAPLANE_RULES_NB_INT_B2 = 6
+DATAPLANE_RULES_NB_INT_B3 = 8
+DATAPLANE_RULES_NB_RT_EDGE = 7
+DATAPLANE_RULES_NB_RT_CORP = 7
+DATAPLANE_RULES_NB_ACL = 1
+DATAPLANE_RULES_NB_TOT = \
+    DATAPLANE_RULES_NB_INT_B1 +\
+    DATAPLANE_RULES_NB_INT_B2 +\
+    DATAPLANE_RULES_NB_INT_B3 +\
+    DATAPLANE_RULES_NB_RT_EDGE +\
+    DATAPLANE_RULES_NB_RT_CORP +\
+    DATAPLANE_RULES_NB_ACL
+
+# Topology descriptor
+DESC_TOPO = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'topology.json'
+)
+
+# Rule insertion descriptors
+# The switch cannot digest all rules at once, hence we insert in batches
+DESC_FILE_RULES_INSERT_INT_B1 = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-int-b1.json'
+)
+DESC_FILE_RULES_INSERT_INT_B2 = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-int-b2.json'
+)
+DESC_FILE_RULES_INSERT_INT_B3 = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-int-b3.json'
+)
+DESC_FILE_RULES_INSERT_ROUTING_EDGE = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-routing-edge.json'
+)
+DESC_FILE_RULES_INSERT_ROUTING_CORP = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-routing-corp.json'
+)
+DESC_FILE_RULES_INSERT_ACL = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-insert-acl.json'
+)
+
+# Rule deletion descriptor
+DESC_FILE_RULES_DELETE_ALL = os.path.join(
+    os.path.dirname(
+        os.path.abspath(__file__)
+    ),
+    'descriptors', 'rules-remove.json'
+)
+
+def verify_number_of_rules(devices, desired_rules_nb):
+    # Iterate all devices
+    for device in devices:
+        # Skip non-P4 devices
+        if device.device_type != "p4-switch": continue
+
+        # We want the device to be active
+        assert \
+            device.device_operational_status == DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED
+
+        # Get the configuration rules of this device
+        config_rules = device.device_config.config_rules
+
+        # Expected rule cardinality
+        assert len(config_rules) == desired_rules_nb
diff --git a/src/tests/p4-int-routing-acl/test_functional_bootstrap.py b/src/tests/p4-int-routing-acl/test_functional_bootstrap.py
new file mode 100644
index 0000000000000000000000000000000000000000..b5b72cc331ea1c7bf6e57aefc484532d66cb8504
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/test_functional_bootstrap.py
@@ -0,0 +1,70 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import logging, time
+from common.proto.context_pb2 import DeviceOperationalStatusEnum, Empty
+from common.tools.descriptor.Loader import DescriptorLoader, \
+    check_descriptor_load_results, validate_empty_scenario
+from context.client.ContextClient import ContextClient
+from device.client.DeviceClient import DeviceClient
+from tests.Fixtures import context_client, device_client # pylint: disable=unused-import
+from test_common import *
+
+LOGGER = logging.getLogger(__name__)
+LOGGER.setLevel(logging.DEBUG)
+
+def test_scenario_bootstrap(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    """
+    This test assumes that the environment is in a clean state (empty)
+    before bootstrapping the P4 topology.
+    It loads the topology descriptor and verifies that no other services
+    or slices are created.
+    """
+    validate_empty_scenario(context_client)
+
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_TOPO, context_client=context_client, device_client=device_client)
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+    descriptor_loader.validate()
+
+    # Verify the scenario has no services/slices
+    response = context_client.GetContext(ADMIN_CONTEXT_ID)
+    assert len(response.service_ids) == 0
+    assert len(response.slice_ids) == 0
+
+def test_scenario_devices_enabled(
+    context_client : ContextClient  # pylint: disable=redefined-outer-name
+) -> None:
+    """
+    This test validates that the devices are enabled.
+    """
+    DEVICE_OP_STATUS_ENABLED = DeviceOperationalStatusEnum.DEVICEOPERATIONALSTATUS_ENABLED
+
+    num_devices = -1
+    num_devices_enabled, num_retry = 0, 0
+    while (num_devices != num_devices_enabled) and (num_retry < 10):
+        time.sleep(1.0)
+        response = context_client.ListDevices(Empty())
+        num_devices = len(response.devices)
+        num_devices_enabled = 0
+        for device in response.devices:
+            if device.device_operational_status != DEVICE_OP_STATUS_ENABLED: continue
+            num_devices_enabled += 1
+        LOGGER.info('Num Devices enabled: {:d}/{:d}'.format(num_devices_enabled, num_devices))
+        num_retry += 1
+    assert num_devices_enabled == num_devices
diff --git a/src/tests/p4-int-routing-acl/test_functional_cleanup.py b/src/tests/p4-int-routing-acl/test_functional_cleanup.py
new file mode 100644
index 0000000000000000000000000000000000000000..60c8684b098aa886fdd62db28a07a2d5c8adc125
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/test_functional_cleanup.py
@@ -0,0 +1,41 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import logging, os
+from common.Constants import DEFAULT_CONTEXT_NAME
+from common.proto.context_pb2 import ContextId
+from common.tools.descriptor.Loader import DescriptorLoader, validate_empty_scenario
+from context.client.ContextClient import ContextClient
+from device.client.DeviceClient import DeviceClient
+from tests.Fixtures import context_client, device_client # pylint: disable=unused-import
+from test_common import *
+
+LOGGER = logging.getLogger(__name__)
+LOGGER.setLevel(logging.DEBUG)
+
+def test_scenario_cleanup(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Verify the scenario has no services/slices
+    response = context_client.GetContext(ADMIN_CONTEXT_ID)
+    assert len(response.service_ids) == 0
+    assert len(response.slice_ids) == 0
+
+    # Unload topology and validate empty scenario
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_TOPO, context_client=context_client, device_client=device_client)
+    descriptor_loader.validate()
+    descriptor_loader.unload()
+    validate_empty_scenario(context_client)
diff --git a/src/tests/p4-int-routing-acl/test_functional_rules_deprovision.py b/src/tests/p4-int-routing-acl/test_functional_rules_deprovision.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d54ae9088600381a000722608bd39eb49483a03
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/test_functional_rules_deprovision.py
@@ -0,0 +1,93 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import logging
+from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results
+from common.tools.grpc.Tools import grpc_message_to_json_string
+from context.client.ContextClient import ContextClient
+from device.client.DeviceClient import DeviceClient
+from tests.Fixtures import context_client, device_client   # pylint: disable=unused-import
+from test_common import *
+
+LOGGER = logging.getLogger(__name__)
+LOGGER.setLevel(logging.DEBUG)
+
+def test_initial_context(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # Verify the scenario has 0 service and 0 slices
+    response = context_client.GetContext(ADMIN_CONTEXT_ID)
+    assert len(response.service_ids) == 0
+    assert len(response.slice_ids) == 0
+
+    # Check there are no slices
+    response = context_client.ListSlices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response)))
+    assert len(response.slices) == 0
+
+    # Check there is 0 service
+    response = context_client.ListServices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response)))
+    assert len(response.services) == 0
+
+    # Check there are 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+def test_rules_before_removal(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2 + \
+        DATAPLANE_RULES_NB_INT_B3 + \
+        DATAPLANE_RULES_NB_RT_EDGE + \
+        DATAPLANE_RULES_NB_RT_CORP + \
+        DATAPLANE_RULES_NB_ACL
+    assert desired_rules_nb == CONNECTION_RULES + ENDPOINT_RULES + DATAPLANE_RULES_NB_TOT
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_removal(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load dataplane rules for removal
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_DELETE_ALL, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_removal(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** removing all dataplane rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Only connection and endpoint rules must be in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES
+    verify_number_of_rules(response.devices, desired_rules_nb)
diff --git a/src/tests/p4-int-routing-acl/test_functional_rules_provision.py b/src/tests/p4-int-routing-acl/test_functional_rules_provision.py
new file mode 100644
index 0000000000000000000000000000000000000000..86a82d2129e495f3c3be9f9ea7b67b24d27a8db7
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/test_functional_rules_provision.py
@@ -0,0 +1,238 @@
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+import logging
+from common.tools.descriptor.Loader import DescriptorLoader, check_descriptor_load_results
+from common.tools.grpc.Tools import grpc_message_to_json_string
+from context.client.ContextClient import ContextClient
+from device.client.DeviceClient import DeviceClient
+from tests.Fixtures import context_client, device_client # pylint: disable=unused-import
+from test_common import *
+
+LOGGER = logging.getLogger(__name__)
+LOGGER.setLevel(logging.DEBUG)
+
+def test_initial_context(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # Verify the scenario has 0 service and 0 slices
+    response = context_client.GetContext(ADMIN_CONTEXT_ID)
+    assert len(response.service_ids) == 0
+    assert len(response.slice_ids) == 0
+
+    # Check there are no slices
+    response = context_client.ListSlices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Slices[{:d}] = {:s}'.format(len(response.slices), grpc_message_to_json_string(response)))
+    assert len(response.slices) == 0
+
+    # Check there is 0 service
+    response = context_client.ListServices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Services[{:d}] = {:s}'.format(len(response.services), grpc_message_to_json_string(response)))
+    assert len(response.services) == 0
+
+    # Check there are 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+def test_rules_before_insertion(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_int_batch_1(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load INT batch 1 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_INT_B1, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_int_batch_1(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 1 of INT rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_int_batch_2(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load INT batch 2 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_INT_B2, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_int_batch_2(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 2 of INT rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_int_batch_3(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load INT batch 3 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_INT_B3, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_int_batch_3(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 3 of INT rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2 + \
+        DATAPLANE_RULES_NB_INT_B3
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_routing_edge_batch_4(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load routing edge batch 4 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_ROUTING_EDGE, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_routing_edge_batch_4(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 4 of routing edge rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2 + \
+        DATAPLANE_RULES_NB_INT_B3 + \
+        DATAPLANE_RULES_NB_RT_EDGE
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_routing_corp_batch_5(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load routing corp batch 5 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_ROUTING_CORP, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_routing_corp_batch_5(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 5 of routing corp rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2 + \
+        DATAPLANE_RULES_NB_INT_B3 + \
+        DATAPLANE_RULES_NB_RT_EDGE + \
+        DATAPLANE_RULES_NB_RT_CORP
+    verify_number_of_rules(response.devices, desired_rules_nb)
+
+def test_rules_insertion_acl_batch_6(
+    context_client : ContextClient, # pylint: disable=redefined-outer-name
+    device_client : DeviceClient    # pylint: disable=redefined-outer-name
+) -> None:
+    # Load ACL batch 6 rules for insertion
+    descriptor_loader = DescriptorLoader(
+        descriptors_file=DESC_FILE_RULES_INSERT_ACL, context_client=context_client, device_client=device_client
+    )
+    results = descriptor_loader.process()
+    check_descriptor_load_results(results, descriptor_loader)
+
+def test_rules_after_insertion_acl_batch_6(
+    context_client : ContextClient # pylint: disable=redefined-outer-name
+) -> None:
+    # State **after** inserting batch 6 of ACL rules
+    # Still 3 devices
+    response = context_client.ListDevices(ADMIN_CONTEXT_ID)
+    LOGGER.warning('Devices[{:d}] = {:s}'.format(len(response.devices), grpc_message_to_json_string(response)))
+    assert len(response.devices) == DEV_NB
+
+    # Verify that the following rules are in place
+    desired_rules_nb = \
+        CONNECTION_RULES + \
+        ENDPOINT_RULES + \
+        DATAPLANE_RULES_NB_INT_B1 + \
+        DATAPLANE_RULES_NB_INT_B2 + \
+        DATAPLANE_RULES_NB_INT_B3 + \
+        DATAPLANE_RULES_NB_RT_EDGE + \
+        DATAPLANE_RULES_NB_RT_CORP + \
+        DATAPLANE_RULES_NB_ACL
+    assert desired_rules_nb == CONNECTION_RULES + ENDPOINT_RULES + DATAPLANE_RULES_NB_TOT
+    verify_number_of_rules(response.devices, desired_rules_nb)
diff --git a/src/tests/p4-int-routing-acl/topology/README.md b/src/tests/p4-int-routing-acl/topology/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..30d4d84bcf2771bb9732e9686a680de0a643fa79
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/README.md
@@ -0,0 +1,166 @@
+# P4 Topology
+
+This directory contains scripts for deploying a single software-based Stratum switch on a VM or bare metal machine.
+
+## Prerequisites
+
+The machine on which Stratum will be deployed must have at least 3 network interfaces as follows:
+
+- a management interface for the switch to communicate with the control plane (i.e., TFS controller and INT collector)
+- a west data plane interface towards a certain subnet (we call it edge subnet in this example)
+- an est data plane interface towards another subnet (we call it corporate subnet in this example)
+
+Also, due to Stratum's restrictions, the desired OS of the machine shall be `Ubuntu server 20.04 LTS`.
+
+To build Stratum on this machine, follow the steps [here](https://github.com/stratum/stratum/blob/main/stratum/hal/bin/bmv2/README.md).
+It is preferred to run Stratum as a binary.
+
+## Steps to setup the environment and deploy the Stratum switch
+
+We create a Linux namespace for Stratum to live in an isolated space from the rest of the system.
+The two data plane interfaces of the VM need to be enclosed into this namespace, while for this namespace to interact with the outside world (i.e., root namespace and outside the VM), a dedicated virtual interface pair is created.
+
+Follow the steps below to create the environment, deploy Stratum, and restore the VM to its previous state (cleanup).
+Prior to this take a look at the environment configuration file, where one can change the names of the interfaces, according to your network setup.
+
+```shell
+nano p4-switch-conf-common.sh
+
+HOST_IFACE_EXT="ens3"     # Interface towards TFS (management)
+SW_IFACE_DATA_EDGE="ens4" # Interface towards the edge subnet (data plane)
+SW_IFACE_DATA_CORP="ens5" # Interface towards the corporate subnet (data plane)
+
+...
+```
+
+### Step 1: Setup environment
+
+Edit the `setup` script to modify the subnets' information according to your network setup:
+
+```shell
+nano p4-switch-setup.sh
+
+# Subnets managed by the switch
+DOMAIN_EDGE_IP="10.158.72.0/24"  # Left-hand side subnet
+DOMAIN_CORP_IP="172.16.10.0/24"  # Right-hand side subnet
+```
+
+Once your network setup is applied, run the `setup` script as follows:
+
+```shell
+sudo bash p4-switch-setup.sh
+```
+
+To verify that the switch namespace is in place, issue the following command:
+
+```shell
+sudo ip netns exec ns-switch ip a
+```
+
+The output should show 4 network interfaces, i.e., a `loopback` interface, 2 data planes interfaces (e.g., `ens4`, `ens5` in this example), and a virtual interface for sending telemetry data out of the switch (i.e., `veth-int-sw` in this example).
+From this latter interface you can ping towards the other end of the virtual interface pair (i.e., `veth-int-host`):
+
+```shell
+sudo ip netns exec ns-switch ping 10.0.0.254
+```
+
+This ensures that telemetry data leaves the switch and ends up on the host VM.
+To dispatch this telemetry data towards TFS, the `p4-switch-setup.sh` implements packet mirroring from `veth-int-host` to the VM's management interface (i.e., `ens3` in this example).
+We assume that TFS is deployed on a machine that is accessible via the management interface (i.e., `ens3`) of this VM.
+
+### Step 2: Deploy Stratum in the namespace
+
+Now the namespace is ready to host the Stratum switch.
+
+First you need to configure the chassis configuration file with the correct network interfaces names.
+To do so, modify the `name` field changing `ens4`, `ens5`, and `ens3` to your desired interfaces.
+These interface names must agree with the ones you added in `p4-switch-conf-common.sh`.
+
+```shell
+cat p4-switch-three-port-chassis-config-phy.pb.txt
+
+# Copyright 2018-present Open Networking Foundation
+# SPDX-License-Identifier: Apache-2.0
+
+description: "Chassis configuration for a single Stratum bmv2 switch with 3 ports"
+chassis {
+  platform: PLT_P4_SOFT_SWITCH
+  name: "bmv2-switch"
+}
+nodes {
+  id: 1
+  slot: 1
+  index: 1
+}
+singleton_ports {
+  id: 1
+  name: "ens4"
+  slot: 1
+  port: 1
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
+singleton_ports {
+  id: 2
+  name: "ens5"
+  slot: 1
+  port: 2
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
+singleton_ports {
+  id: 3
+  name: "veth-int-sw"
+  slot: 1
+  port: 3
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
+```
+
+To deploy Stratum, do:
+
+```shell
+sudo bash run-stratum.sh
+```
+
+To run Stratum will verbose logging, open the `run-stratum.sh` and change:
+
+```shell
+LOG_LEVEL="debug"
+```
+
+Then, re-deploy Stratum as shown above.
+
+To verify that Stratum has been correctly deployed, you should see the following output:
+
+```
+<timestamp> config_monitoring_service.cc:94] Pushing the saved chassis config read from p4-switch-three-port-chassis-config-phy.pb.txt...
+<timestamp> bmv2_chassis_manager.cc:519] Registered port status callbacks successfully for node 1.
+<timestamp> bmv2_chassis_manager.cc:453] State of port 1 in node 1: UP.
+<timestamp> bmv2_chassis_manager.cc:453] State of port 2 in node 1: UP.
+<timestamp> bmv2_chassis_manager.cc:453] State of port 3 in node 1: UP.
+<timestamp> bmv2_switch.cc:74] P4-based forwarding pipeline config pushed successfully to node with ID 1.
+<timestamp> hal.cc:220] Stratum external facing services are listening to 0.0.0.0:50000, 0.0.0.0:50001, 0.0.0.0:50101...
+```
+
+### Step 3: Restore to the original setup
+
+When your tests with Stratum and TFS are over, you may want to restore your setup.
+To do so, execute the following script:
+
+```shell
+sudo bash p4-switch-tear-down.sh
+```
diff --git a/src/tests/p4-int-routing-acl/topology/p4-switch-conf-common.sh b/src/tests/p4-int-routing-acl/topology/p4-switch-conf-common.sh
new file mode 100644
index 0000000000000000000000000000000000000000..3ba84651e7e9550ef4b47d28f9ce3efa1f8fd2c8
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/p4-switch-conf-common.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+# Switch lives in a namespace
+SWITCH_NS="ns-switch"
+
+# Physical interfaces
+HOST_IFACE_EXT="ens3"     # Interface towards TFS (management)
+SW_IFACE_DATA_EDGE="ens4" # Interface towards the edge subnet (data plane)
+SW_IFACE_DATA_CORP="ens5" # Interface towards the corporate subnet (data plane)
+
+# Virtual interfaces for INT
+SW_IFACE_INT="veth-int-sw"
+HOST_IFACE_INT="veth-int-host"
+
+# IP subnet for INT
+TOPO_INT_NET="10.0.0.0/24"
+TOPO_INT_NET_IP="10.0.0.0"
+TOPO_INT_NET_MASK="255.255.255.0"
+
+# Transport port where the P4Runtime gRPC server is deployed on the switch
+SW_P4RT_GRPC_PORT="50001"
+
+# Transport port where the P4Runtime gNMI server is deployed on the switch
+SW_P4RT_GNMI_PORT="50000"
+
+# Transport port where Stratum listens to local calls
+SW_P4RT_LOCAL_PORT="50101"
diff --git a/src/tests/p4-int-routing-acl/topology/p4-switch-setup.sh b/src/tests/p4-int-routing-acl/topology/p4-switch-setup.sh
new file mode 100644
index 0000000000000000000000000000000000000000..1a5f37b2fbe2b1acd6c3ef69682d645591093f69
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/p4-switch-setup.sh
@@ -0,0 +1,134 @@
+#!bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+# You must run this script as root
+if [ "$EUID" -ne 0 ]; then
+    echo "Please run as root"
+    exit 1
+fi
+
+source "p4-switch-conf-common.sh"
+
+# MAC addresses of the virtual INT interfaces
+SW_INT_MAC="00:11:22:33:44:11"
+HOST_INT_MAC="00:11:22:33:44:22"
+
+# IP addresses of the virtual INT interfaces
+SWITCH_INT_IP="10.0.0.1"
+HOST_INT_IP="10.0.0.254"
+
+SWITCH_INT_IP_NET=${SWITCH_INT_IP}"/24"
+HOST_INT_IP_NET=${HOST_INT_IP}"/24"
+
+# Subnets managed by the switch
+DOMAIN_EDGE_IP="10.158.72.22/24" # Edge domain side IP address
+DOMAIN_CORP_IP="172.16.10.4/24"  # Corporate domain side IP address
+
+# INT subnet MTU
+MTU_LEN=9000
+
+kill_stratum() {
+    pkill stratum
+}
+
+create_namespaces() {
+    ip netns add ${SWITCH_NS}
+}
+
+create_virtual_interfaces() {
+    ip link add ${HOST_IFACE_INT} type veth peer name ${SW_IFACE_INT}
+}
+
+assign_virtual_interfaces() {
+    ip link set ${SW_IFACE_DATA_EDGE} netns ${SWITCH_NS}
+    ip link set ${SW_IFACE_DATA_CORP} netns ${SWITCH_NS}
+    ip link set ${SW_IFACE_INT} netns ${SWITCH_NS}
+}
+
+set_mac_addresses() {
+    ip netns exec ${SWITCH_NS} ifconfig ${SW_IFACE_INT} hw ether ${SW_INT_MAC}
+    ifconfig ${HOST_IFACE_INT} hw ether ${HOST_INT_MAC}
+}
+
+set_mtu() {
+    ip netns exec ${SWITCH_NS} ip link set dev ${SW_IFACE_INT} mtu ${MTU_LEN}
+    ip link set dev ${HOST_IFACE_INT} mtu ${MTU_LEN}
+}
+
+set_ip_addresses() {
+    ip -n ${SWITCH_NS} addr add ${DOMAIN_EDGE_IP} dev ${SW_IFACE_DATA_EDGE}
+    ip -n ${SWITCH_NS} addr add ${DOMAIN_CORP_IP} dev ${SW_IFACE_DATA_CORP}
+    ip -n ${SWITCH_NS} addr add ${SWITCH_INT_IP_NET} dev ${SW_IFACE_INT}
+    ifconfig ${HOST_IFACE_INT} ${HOST_INT_IP_NET}
+}
+
+bring_interfaces_up() {
+    ip -n ${SWITCH_NS} link set ${SW_IFACE_DATA_EDGE} up
+    ip -n ${SWITCH_NS} link set ${SW_IFACE_DATA_CORP} up
+    ip -n ${SWITCH_NS} link set ${SW_IFACE_INT} up
+    ifconfig ${HOST_IFACE_INT} up
+}
+
+disable_csum_offloading() {
+    ip netns exec ${SWITCH_NS} ethtool -K ${SW_IFACE_DATA_EDGE} rx off tx off
+    ip netns exec ${SWITCH_NS} ethtool -K ${SW_IFACE_DATA_CORP} rx off tx off
+}
+
+switch_default_gw() {
+    ip netns exec ${SWITCH_NS} ip route add default via ${HOST_INT_IP}
+}
+
+enable_ip_fwd() {
+    sysctl net.ipv4.ip_forward=1
+    sysctl net.ipv4.conf.${HOST_IFACE_EXT}.forwarding=1
+    sysctl net.ipv4.conf.${HOST_IFACE_INT}.forwarding=1
+}
+
+switch_access_to_internet() {
+    iptables -P FORWARD DROP
+    iptables -t nat -A POSTROUTING -s ${TOPO_INT_NET_IP}/${TOPO_INT_NET_MASK} -o ${HOST_IFACE_EXT} -j MASQUERADE
+    iptables -A FORWARD -i ${HOST_IFACE_EXT} -o ${HOST_IFACE_INT} -j ACCEPT
+    iptables -A FORWARD -o ${HOST_IFACE_EXT} -i ${HOST_IFACE_INT} -j ACCEPT
+}
+
+grpc_port_forwarding() {
+    iptables -t nat -A PREROUTING -p tcp -i ${HOST_IFACE_EXT} --dport ${SW_P4RT_GRPC_PORT} -j DNAT --to-destination ${SWITCH_INT_IP}:${SW_P4RT_GRPC_PORT}
+    iptables -A FORWARD -p tcp -d ${SWITCH_INT_IP} --dport ${SW_P4RT_GRPC_PORT} -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
+}
+
+int_packet_mirroring() {
+    sudo tc qdisc add dev ${HOST_IFACE_INT} ingress
+    sudo tc filter add dev ${HOST_IFACE_INT} parent ffff: \
+        protocol all prio 2 u32 \
+        match u32 0 0 flowid 1:1 \
+        action mirred egress mirror dev ${HOST_IFACE_EXT}
+}
+
+kill_stratum
+create_namespaces
+create_virtual_interfaces
+assign_virtual_interfaces
+set_mac_addresses
+set_mtu
+set_ip_addresses
+bring_interfaces_up
+disable_csum_offloading
+switch_default_gw
+enable_ip_fwd
+switch_access_to_internet
+grpc_port_forwarding
+int_packet_mirroring
+
+exit 0
diff --git a/src/tests/p4-int-routing-acl/topology/p4-switch-tear-down.sh b/src/tests/p4-int-routing-acl/topology/p4-switch-tear-down.sh
new file mode 100644
index 0000000000000000000000000000000000000000..9d79343a37e8b65167992e53f7c3e54944adfb1a
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/p4-switch-tear-down.sh
@@ -0,0 +1,84 @@
+#!bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+# You must run this script as root
+if [ "$EUID" -ne 0 ]; then
+    echo "Please run as root"
+    exit 1
+fi
+
+source "p4-switch-conf-common.sh"
+
+kill_stratum() {
+    pkill stratum
+}
+
+delete_virtual_interfaces() {
+    ip netns exec ${SWITCH_NS} ip link delete ${SW_IFACE_INT}
+}
+
+delete_namespaces() {
+    ip netns del ${SWITCH_NS}
+}
+
+bring_interfaces_up() {
+    ifconfig ${SW_IFACE_DATA_EDGE} up
+    ifconfig ${SW_IFACE_DATA_CORP} up
+}
+
+cleanup_iptables() {
+    # gRPC entries
+    entry_no=$(iptables --line-numbers -nvL | grep ${HOST_IFACE_INT} | cut -d " " -f 1 | head -1)
+    iptables -D FORWARD ${entry_no}
+    entry_no=$(iptables --line-numbers -nvL | grep ${HOST_IFACE_INT} | cut -d " " -f 1)
+    iptables -D FORWARD ${entry_no}
+    entry_no=$(iptables --line-numbers -nvL | grep ${SW_P4RT_GRPC_PORT} | cut -d " " -f 1)
+    iptables -D FORWARD ${entry_no}
+
+    entry_no=$(iptables -t nat --line-numbers -nvL | grep ${SW_P4RT_GRPC_PORT} | cut -d " " -f 1)
+    iptables -t nat -D PREROUTING ${entry_no}
+
+    entry_no=$(iptables -t nat --line-numbers -nvL | grep ${TOPO_INT_NET} | cut -d " " -f 1)
+    iptables -t nat -D POSTROUTING ${entry_no}
+
+    # Check new state
+    echo "Forwarding tables"
+    iptables --line-numbers -nvL
+    echo -e ""
+    echo "NAT tables"
+    iptables -t nat --line-numbers -nvL
+}
+
+cleanup_tc() {
+    sudo tc filter del dev ${HOST_IFACE_INT} parent ffff: \
+        protocol all prio 2 u32 \
+        match u32 0 0 flowid 1:1 \
+        action mirred egress mirror dev ${HOST_IFACE_EXT}
+    sudo tc qdisc del dev ${HOST_IFACE_INT} ingress
+
+    # Check new state
+    echo -e ""
+    echo -e "Linux tc status"
+    tc qdisc show
+}
+
+kill_stratum
+delete_virtual_interfaces
+delete_namespaces
+# bring_interfaces_up
+cleanup_iptables
+cleanup_tc
+
+exit 0
diff --git a/src/tests/p4-int-routing-acl/topology/p4-switch-three-port-chassis-config-phy.pb.txt b/src/tests/p4-int-routing-acl/topology/p4-switch-three-port-chassis-config-phy.pb.txt
new file mode 100644
index 0000000000000000000000000000000000000000..038d3626960e252a318edd5419ed887e2682a4b5
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/p4-switch-three-port-chassis-config-phy.pb.txt
@@ -0,0 +1,63 @@
+# Copyright 2018-present Open Networking Foundation
+# SPDX-License-Identifier: Apache-2.0
+
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+description: "Chassis configuration for a single Stratum bmv2 switch with 3 ports"
+chassis {
+  platform: PLT_P4_SOFT_SWITCH
+  name: "bmv2-switch"
+}
+nodes {
+  id: 1
+  slot: 1
+  index: 1
+}
+singleton_ports {
+  id: 1
+  name: "ens4"
+  slot: 1
+  port: 1
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
+singleton_ports {
+  id: 2
+  name: "ens5"
+  slot: 1
+  port: 2
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
+singleton_ports {
+  id: 3
+  name: "veth-int-sw"
+  slot: 1
+  port: 3
+  channel: 1
+  speed_bps: 100000000000
+  config_params {
+    admin_state: ADMIN_STATE_ENABLED
+  }
+  node: 1
+}
diff --git a/src/tests/p4-int-routing-acl/topology/run-stratum.sh b/src/tests/p4-int-routing-acl/topology/run-stratum.sh
new file mode 100644
index 0000000000000000000000000000000000000000..29e4647793c79084dbc740d73af454cda16ac9d1
--- /dev/null
+++ b/src/tests/p4-int-routing-acl/topology/run-stratum.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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.
+
+# You must run this script as root
+if [ "$EUID" -ne 0 ]; then
+    echo "Please run as root"
+    exit 1
+fi
+
+source "p4-switch-conf-common.sh"
+
+LOG_FILE_DIR="/var/log/stratum/"
+
+sudo mkdir -p "${LOG_FILE_DIR}"
+
+LOG_LEVEL="info"
+READ_LOGS_FILE_PATH=${LOG_FILE_DIR}"p4_reads.pb.txt"
+WRITE_LOGS_FILE_PATH=${LOG_FILE_DIR}"p4_writes.pb.txt"
+CHASSIS_CONFIG="p4-switch-three-port-chassis-config-phy.pb.txt"
+
+[ -f ${CHASSIS_CONFIG} ] || { echo "$CHASSIS_CONFIG not found!" ; exit 1 ;}
+
+touch "${READ_LOGS_FILE_PATH}"
+touch "${WRITE_LOGS_FILE_PATH}"
+
+ip netns exec ns-switch stratum_bmv2 \
+        -chassis_config_file=${CHASSIS_CONFIG} \
+        -read_req_log_file=${READ_LOGS_FILE_PATH} \
+        -write_req_log_file=${WRITE_LOGS_FILE_PATH} \
+        -external_stratum_urls="0.0.0.0:"${SW_P4RT_GNMI_PORT}",0.0.0.0:"${SW_P4RT_GRPC_PORT} \
+        -local_stratum_url="0.0.0.0:"${SW_P4RT_LOCAL_PORT} \
+        -bmv2_log_level=${LOG_LEVEL}
+
+exit 0
diff --git a/src/vnt_manager/service/VNTManagerService.py b/src/vnt_manager/service/VNTManagerService.py
index b95ad089a454e9d73e99d9f14cbe525a6c9ca8cb..3f44c4a510245fc2ab145e35b8ff1f35e4ac0f78 100644
--- a/src/vnt_manager/service/VNTManagerService.py
+++ b/src/vnt_manager/service/VNTManagerService.py
@@ -12,19 +12,15 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import logging
-
 from common.Constants import ServiceNameEnum
-from common.proto.vnt_manager_pb2_grpc import add_VNTManagerServiceServicer_to_server
 from common.Settings import get_service_port_grpc
+from common.proto.vnt_manager_pb2 import DESCRIPTOR as VNT_MANAGER_DESCRIPTOR
+from common.proto.vnt_manager_pb2_grpc import add_VNTManagerServiceServicer_to_server
 from common.tools.service.GenericGrpcService import GenericGrpcService
 from .VNTManagerServiceServicerImpl import VNTManagerServiceServicerImpl
 
-LOGGER = logging.getLogger(__name__)
-
-
 class VNTManagerService(GenericGrpcService):
-    def __init__(self, cls_name: str = __name__):
+    def __init__(self, cls_name: str = __name__) -> None:
         port = get_service_port_grpc(ServiceNameEnum.VNTMANAGER)
         super().__init__(port, cls_name=cls_name)
         self.vntmanager_servicer = VNTManagerServiceServicerImpl()
@@ -33,3 +29,5 @@ class VNTManagerService(GenericGrpcService):
         add_VNTManagerServiceServicer_to_server(
             self.vntmanager_servicer, self.server
         )
+
+        self.add_reflection_service_name(VNT_MANAGER_DESCRIPTOR, 'VNTManagerService')
diff --git a/src/webui/service/device/routes.py b/src/webui/service/device/routes.py
index f3896bdd8f80ddcbcc55f91707caa5e462801cab..16b86c769c5af1b69db4b669f5689043d03536bd 100644
--- a/src/webui/service/device/routes.py
+++ b/src/webui/service/device/routes.py
@@ -13,10 +13,14 @@
 # limitations under the License.
 
 import json
-from flask import current_app, render_template, Blueprint, flash, session, redirect, url_for
+from flask import (
+    current_app, render_template, Blueprint, flash, session, redirect, url_for
+)
 from common.DeviceTypes import DeviceTypeEnum
 from common.proto.context_pb2 import (
-    ConfigActionEnum, Device, DeviceDriverEnum, DeviceId, DeviceList, DeviceOperationalStatusEnum, Empty)
+    ConfigActionEnum, Device, DeviceDriverEnum, DeviceId, DeviceList,
+    DeviceOperationalStatusEnum, Empty
+)
 from common.tools.context_queries.Device import get_device
 from common.tools.context_queries.Topology import get_topology
 from context.client.ContextClient import ContextClient
diff --git a/src/webui/service/link/routes.py b/src/webui/service/link/routes.py
index dacf77534711c97237ca1afd54c3646fe9809a28..42f5984a3c0957a0740690ad6e37bed7438449b7 100644
--- a/src/webui/service/link/routes.py
+++ b/src/webui/service/link/routes.py
@@ -13,8 +13,10 @@
 # limitations under the License.
 
 
-from flask import current_app, render_template, Blueprint, flash, session, redirect, url_for
-from common.proto.context_pb2 import Empty, Link, LinkId, LinkList
+from flask import (
+    current_app, render_template, Blueprint, flash, session, redirect, url_for
+)
+from common.proto.context_pb2 import Empty, Link, LinkId, LinkList, LinkTypeEnum
 from common.tools.context_queries.EndPoint import get_endpoint_names
 from common.tools.context_queries.Link import get_link
 from common.tools.context_queries.Topology import get_topology
@@ -50,7 +52,10 @@ def home():
         device_names, endpoints_data = get_endpoint_names(context_client, endpoint_ids)
     context_client.close()
 
-    return render_template('link/home.html', links=links, device_names=device_names, endpoints_data=endpoints_data)
+    return render_template(
+        'link/home.html', links=links, device_names=device_names,
+        endpoints_data=endpoints_data, lte=LinkTypeEnum
+    )
 
 
 @link.route('detail/<path:link_uuid>', methods=('GET', 'POST'))
@@ -64,7 +69,10 @@ def detail(link_uuid: str):
     else:
         device_names, endpoints_data = get_endpoint_names(context_client, link_obj.link_endpoint_ids)
     context_client.close()
-    return render_template('link/detail.html',link=link_obj, device_names=device_names, endpoints_data=endpoints_data)
+    return render_template(
+        'link/detail.html', link=link_obj, device_names=device_names,
+        endpoints_data=endpoints_data, lte=LinkTypeEnum
+    )
 
 @link.get('<path:link_uuid>/delete')
 def delete(link_uuid):
diff --git a/src/webui/service/templates/link/detail.html b/src/webui/service/templates/link/detail.html
index 7c5f732e33a209b6acbd36b4982da90d7f148f38..775e5392d3dad06eaf13414cda2c9cde2586fe12 100644
--- a/src/webui/service/templates/link/detail.html
+++ b/src/webui/service/templates/link/detail.html
@@ -39,6 +39,7 @@
     <div class="col-sm-4">
         <b>UUID: </b>{{ link.link_id.link_uuid.uuid }}<br>
         <b>Name: </b>{{ link.name }}<br>
+        <b>Type: </b>{{ lte.Name(link.link_type).replace('LINKTYPE_', '') }}<br>
     </div>
     <div class="col-sm-8">
         <table class="table table-striped table-hover">
diff --git a/src/webui/service/templates/link/home.html b/src/webui/service/templates/link/home.html
index d96da78147d344533bf94fcc1adecbecf8fe8dd2..6632898793c8601bf30f8d824e9090e3a2f7552e 100644
--- a/src/webui/service/templates/link/home.html
+++ b/src/webui/service/templates/link/home.html
@@ -12,87 +12,89 @@
     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.
-   -->
-   
-   {% extends 'base.html' %}
-   
-   {% block content %}
-       <h1>Links</h1>
-   
-       <div class="row">
-           <div class="col">
-               <!-- <a href="#" class="btn btn-primary" style="margin-bottom: 10px;">
-                   <i class="bi bi-plus"></i>
-                   Add New Link
-               </a> -->
-           </div>
-           <div class="col">
-               {{ links | length }} links found in context <i>{{ session['context_uuid'] }}</i>
-           </div>
-           <!-- <div class="col">
-               <form>
-                   <div class="input-group">
-                       <input type="text" aria-label="Search" placeholder="Search..." class="form-control"/>
-                       <button type="submit" class="btn btn-primary">Search</button>
-                     </div>
-               </form>
-           </div> -->
-       </div>
-   
-       <table class="table table-striped table-hover">
-           <thead>
-             <tr>
-               <th scope="col">UUID</th>
-               <th scope="col">Name</th>
-               <th scope="col">Endpoints</th>
-               <th scope="col"></th>
-             </tr>
-           </thead>
-           <tbody>
-               {% if links %}
-                   {% for link in links %}
-                   <tr>
-                       <td>
+-->
+
+{% extends 'base.html' %}
+
+{% block content %}
+    <h1>Links</h1>
+
+    <div class="row">
+        <div class="col">
+            <!-- <a href="#" class="btn btn-primary" style="margin-bottom: 10px;">
+                <i class="bi bi-plus"></i>
+                Add New Link
+            </a> -->
+        </div>
+        <div class="col">
+            {{ links | length }} links found in context <i>{{ session['context_uuid'] }}</i>
+        </div>
+        <!-- <div class="col">
+            <form>
+                <div class="input-group">
+                    <input type="text" aria-label="Search" placeholder="Search..." class="form-control"/>
+                    <button type="submit" class="btn btn-primary">Search</button>
+                </div>
+            </form>
+        </div> -->
+    </div>
+
+    <table class="table table-striped table-hover">
+        <thead>
+            <tr>
+                <th scope="col">UUID</th>
+                <th scope="col">Name</th>
+                <th scope="col">Type</th>
+                <th scope="col">Endpoints</th>
+                <th scope="col"></th>
+            </tr>
+        </thead>
+        <tbody>
+            {% if links %}
+                {% for link in links %}
+                    <tr>
+                        <td>
                             {{ link.link_id.link_uuid.uuid }}
-                       </td>
-                       <td>
+                        </td>
+                        <td>
                             {{ link.name }}
                         </td>
-
-                       <td>
-                           <ul>
-                               {% for endpoint in link.link_endpoint_ids %}
-                               <li>
-                                   {{ endpoints_data.get(endpoint.endpoint_uuid.uuid, (endpoint.endpoint_uuid.uuid, ''))[0] }} / 
-                                   Device: 
-                                   <a href="{{ url_for('device.detail', device_uuid=endpoint.device_id.device_uuid.uuid) }}">
-                                       {{ device_names.get(endpoint.device_id.device_uuid.uuid, endpoint.device_id.device_uuid.uuid) }}
-                                       <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
-                                           <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
-                                           <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
-                                       </svg>
-                                   </a>
-                               </li>
-                               {% endfor %}
-                           </ul>
-                       </td>
+                        <td>
+                            {{ lte.Name(link.link_type).replace('LINKTYPE_', '') }}
+                        </td>
+                        <td>
+                            <ul>
+                                {% for endpoint in link.link_endpoint_ids %}
+                                <li>
+                                    {{ endpoints_data.get(endpoint.endpoint_uuid.uuid, (endpoint.endpoint_uuid.uuid, ''))[0] }} / 
+                                    Device: 
+                                    <a href="{{ url_for('device.detail', device_uuid=endpoint.device_id.device_uuid.uuid) }}">
+                                        {{ device_names.get(endpoint.device_id.device_uuid.uuid, endpoint.device_id.device_uuid.uuid) }}
+                                        <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
+                                            <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
+                                            <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
+                                        </svg>
+                                    </a>
+                                </li>
+                                {% endfor %}
+                            </ul>
+                        </td>
    
-                       <td> 
+                        <td> 
                             <a href="{{ url_for('link.detail', link_uuid=link.link_id.link_uuid.uuid) }}">
-                               <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
-                                   <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
-                                   <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
-                               </svg> 
-                           </a>
-                       </td>
-                   </tr>
-                   {% endfor %}
-               {% else %}
-                   <tr>
-                       <td colspan="7">No links found</td>
-                   </tr>
-               {% endif %}
-           </tbody>
-       </table>
-   
-   {% endblock %}
\ No newline at end of file
+                                <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-eye" viewBox="0 0 16 16">
+                                    <path d="M16 8s-3-5.5-8-5.5S0 8 0 8s3 5.5 8 5.5S16 8 16 8zM1.173 8a13.133 13.133 0 0 1 1.66-2.043C4.12 4.668 5.88 3.5 8 3.5c2.12 0 3.879 1.168 5.168 2.457A13.133 13.133 0 0 1 14.828 8c-.058.087-.122.183-.195.288-.335.48-.83 1.12-1.465 1.755C11.879 11.332 10.119 12.5 8 12.5c-2.12 0-3.879-1.168-5.168-2.457A13.134 13.134 0 0 1 1.172 8z"/>
+                                    <path d="M8 5.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5zM4.5 8a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0z"/>
+                                </svg> 
+                            </a>
+                        </td>
+                    </tr>
+                {% endfor %}
+            {% else %}
+                <tr>
+                    <td colspan="7">No links found</td>
+                </tr>
+            {% endif %}
+        </tbody>
+    </table>
+{% endblock %}