Inter-connect k8s external and openstack integration bridge

Change-Id: Ibd889e9fd4a10a06056b823d6c01254429d5cdc4
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/Constants.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/Constants.java
index 59a5715..b928b5f 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/Constants.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/Constants.java
@@ -38,8 +38,10 @@
     public static final String ROUTER = "router";
     public static final String INTEGRATION_TO_TUN_BRIDGE = "int-tun";
     public static final String TUN_TO_INTEGRATION_BRIDGE = "tun-int";
-    public static final String OS_TO_K8S_BRIDGE = "os-k8s";
-    public static final String K8S_TO_OS_BRIDGE = "k8s-os";
+    public static final String OS_TO_K8S_INTEGRATION_BRIDGE = "os-k8s-int";
+    public static final String K8S_INTEGRATION_TO_OS_BRIDGE = "k8s-int-os";
+    public static final String OS_TO_K8S_EXTERNAL_BRIDGE = "os-k8s-ext";
+    public static final String K8S_EXTERNAL_TO_OS_BRIDGE = "k8s-ext-os";
     public static final String VXLAN_TUNNEL = "vxlan";
     public static final String GRE_TUNNEL = "gre";
     public static final String GENEVE_TUNNEL = "geneve";
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 09f4097..88cec08 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
@@ -43,10 +43,12 @@
 import static org.onosproject.k8snode.api.Constants.INTEGRATION_TO_EXTERNAL_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.INTEGRATION_TO_LOCAL_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.INTEGRATION_TO_TUN_BRIDGE;
-import static org.onosproject.k8snode.api.Constants.K8S_TO_OS_BRIDGE;
+import static org.onosproject.k8snode.api.Constants.K8S_EXTERNAL_TO_OS_BRIDGE;
+import static org.onosproject.k8snode.api.Constants.K8S_INTEGRATION_TO_OS_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.LOCAL_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.LOCAL_TO_INTEGRATION_BRIDGE;
-import static org.onosproject.k8snode.api.Constants.OS_TO_K8S_BRIDGE;
+import static org.onosproject.k8snode.api.Constants.OS_TO_K8S_EXTERNAL_BRIDGE;
+import static org.onosproject.k8snode.api.Constants.OS_TO_K8S_INTEGRATION_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.PHYSICAL_EXTERNAL_BRIDGE;
 import static org.onosproject.k8snode.api.Constants.ROUTER;
 import static org.onosproject.k8snode.api.Constants.ROUTER_TO_EXTERNAL;
@@ -592,7 +594,7 @@
     @Override
     public String intgEntryPortName() {
         if (mode == PASSTHROUGH) {
-            return k8sToOsIntgPatchPortName();
+            return k8sIntgToOsPatchPortName();
         } else {
             return intgBridgeName();
         }
@@ -601,7 +603,7 @@
     @Override
     public PortNumber intgEntryPortNum() {
         if (mode == PASSTHROUGH) {
-            return portNumber(intgBridge, k8sToOsIntgPatchPortName());
+            return portNumber(intgBridge, k8sIntgToOsPatchPortName());
         } else {
             return intgBridgePortNum();
         }
@@ -725,20 +727,38 @@
     }
 
     @Override
-    public String k8sToOsIntgPatchPortName() {
+    public String k8sIntgToOsPatchPortName() {
         if (mode == PASSTHROUGH) {
-            return K8S_TO_OS_BRIDGE + "-" + uniqueString(5);
+            return K8S_INTEGRATION_TO_OS_BRIDGE + "-" + uniqueString(5);
         } else {
-            return K8S_TO_OS_BRIDGE;
+            return K8S_INTEGRATION_TO_OS_BRIDGE;
+        }
+    }
+
+    @Override
+    public String k8sExtToOsPatchPortName() {
+        if (mode == PASSTHROUGH) {
+            return K8S_EXTERNAL_TO_OS_BRIDGE + "-" + uniqueString(5);
+        } else {
+            return K8S_EXTERNAL_TO_OS_BRIDGE;
         }
     }
 
     @Override
     public String osToK8sIntgPatchPortName() {
         if (mode == PASSTHROUGH) {
-            return OS_TO_K8S_BRIDGE + "-" + uniqueString(5);
+            return OS_TO_K8S_INTEGRATION_BRIDGE + "-" + uniqueString(5);
         } else {
-            return OS_TO_K8S_BRIDGE;
+            return OS_TO_K8S_INTEGRATION_BRIDGE;
+        }
+    }
+
+    @Override
+    public String osToK8sExtPatchPortName() {
+        if (mode == PASSTHROUGH) {
+            return OS_TO_K8S_EXTERNAL_BRIDGE + "-" + uniqueString(5);
+        } else {
+            return OS_TO_K8S_EXTERNAL_BRIDGE;
         }
     }
 
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 9b695eb..6631e55 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
@@ -354,7 +354,14 @@
      *
      * @return kubernetes to openstack integration patch port name
      */
-    String k8sToOsIntgPatchPortName();
+    String k8sIntgToOsPatchPortName();
+
+    /**
+     * Returns kubernetes external to openstack patch port name.
+     *
+     * @return kubernetes external to openstack patch port name
+     */
+    String k8sExtToOsPatchPortName();
 
     /**
      * Returns openstack to kubernetes integration patch port name.
@@ -364,6 +371,13 @@
     String osToK8sIntgPatchPortName();
 
     /**
+     * Returns openstack to kubernetes external patch port name.
+     *
+     * @return openstack to kubernetes external patch port name
+     */
+    String osToK8sExtPatchPortName();
+
+    /**
      * Returns router to external bridge patch port name.
      *
      * @return router to external bridge patch port name