diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
index 56039b5..4e430a3 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
@@ -396,6 +396,16 @@
     }
 
     @Override
+    public PortNumber intgToTunPortNum() {
+        return portNumber(intgBridge, intgToTunPatchPortName());
+    }
+
+    @Override
+    public PortNumber tunToIntgPortNum() {
+        return portNumber(tunBridge, tunToIntgPatchPortName());
+    }
+
+    @Override
     public PortNumber extBridgePortNum() {
         if (this.extIntf == null) {
             return null;
@@ -519,6 +529,15 @@
     }
 
     @Override
+    public String tunBridgePortName() {
+        if (mode == PASSTHROUGH) {
+            return TUNNEL_BRIDGE + "-" + uniqueString(5);
+        } else {
+            return TUNNEL_BRIDGE;
+        }
+    }
+
+    @Override
     public String intgToExtPatchPortName() {
         if (mode == PASSTHROUGH) {
             return INTEGRATION_TO_EXTERNAL_BRIDGE + "-" + uniqueString(5);
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
index 8931b45..e443880 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/K8sNode.java
@@ -287,6 +287,13 @@
     String localBridgePortName();
 
     /**
+     * Returns tunnel bridge port name.
+     *
+     * @return tunnel bridge port name
+     */
+    String tunBridgePortName();
+
+    /**
      * Returns integration to external patch port name.
      *
      * @return integration to external patch port name
@@ -385,6 +392,20 @@
     PortNumber extToIntgPatchPortNum();
 
     /**
+     * Returns the integration to tunnel patch port number.
+     *
+     * @return patch port number
+     */
+    PortNumber intgToTunPortNum();
+
+    /**
+     * Returns the tunnel to integration patch port number.
+     *
+     * @return patch port number
+     */
+    PortNumber tunToIntgPortNum();
+
+    /**
      * Returns the external bridge to router port number.
      *
      * @return port number, null if the port does not exist
