[ONOS-6186] Implement VLAN based virtual network provisioning and logical switching

Change-Id: I1dcee5377b3d4d9ec5fc3d6bc851a90a016074dc
diff --git a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeManager.java b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeManager.java
index 0bf78bf..643678a 100644
--- a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeManager.java
+++ b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeManager.java
@@ -344,6 +344,17 @@
     }
 
     @Override
+    public Optional<PortNumber> vlanPort(DeviceId intBridgeId) {
+        Optional<String> vlanPortName = nodeByDeviceId(intBridgeId).vlanPort();
+
+        return deviceService.getPorts(intBridgeId).stream()
+                .filter(p -> p.annotations().value(PORT_NAME).equals(vlanPortName.get()) &&
+                        p.isEnabled())
+                .map(Port::number).findFirst();
+
+    }
+
+    @Override
     public Optional<DeviceId> routerBridge(DeviceId intBridgeId) {
         OpenstackNode node = nodeByDeviceId(intBridgeId);
         if (node == null || node.type().equals(NodeType.COMPUTE)) {
diff --git a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeService.java b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeService.java
index 0fb6e77..7362893 100644
--- a/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeService.java
+++ b/apps/openstacknode/src/main/java/org/onosproject/openstacknode/OpenstackNodeService.java
@@ -112,6 +112,14 @@
     Optional<PortNumber> tunnelPort(DeviceId intBridgeId);
 
     /**
+     * Returns vlan port number of a given integration bridge device.
+     *
+     * @param intBridgeId integration bridge device id
+     * @return port number; or empty value
+     */
+    Optional<PortNumber> vlanPort(DeviceId intBridgeId);
+
+    /**
      * Returns router bridge device ID connected to a given integration bridge.
      * It returns valid value only if the node type is GATEWAY.
      *
@@ -128,6 +136,7 @@
      * @return port number; or empty value
      */
     Optional<PortNumber> externalPort(DeviceId intBridgeId);
+
     /**
      * Returns gateway node with the given device identifier.
      *