[ONOS-7444] Optimize SONA gw doesn't use vrouter app and quagga anymore
- Done: Deriving MAC address from external peer router and simple SNAT functionality
- Todo: SNAT, Floating IP-based routing

Change-Id: Ib1a5784a7304c44b28d7b2c9891b98fd13000db1
diff --git a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
index f1e2bc5..2ecfefe 100644
--- a/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
+++ b/apps/openstacknode/api/src/main/java/org/onosproject/openstacknode/api/OpenstackNode.java
@@ -151,6 +151,13 @@
     String uplinkPort();
 
     /**
+     * Returns the uplink port number.
+     *
+     * @return uplink port number
+     */
+    PortNumber uplinkPortNum();
+
+    /**
      * Returns new openstack node instance with given state.
      *
      * @param newState updated state
diff --git a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
index 6650be6..f208529 100644
--- a/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
+++ b/apps/openstacknode/app/src/main/java/org/onosproject/openstacknode/impl/DefaultOpenstackNode.java
@@ -122,6 +122,21 @@
     }
 
     @Override
+    public PortNumber uplinkPortNum() {
+        if (uplinkPort == null) {
+            return null;
+        }
+
+        DeviceService deviceService = DefaultServiceDirectory.getService(DeviceService.class);
+        Port port = deviceService.getPorts(intgBridge).stream()
+                .filter(p -> p.isEnabled() &&
+                        Objects.equals(p.annotations().value(PORT_NAME), uplinkPort))
+                .findAny().orElse(null);
+
+        return port != null ? port.number() : null;
+
+    }
+    @Override
     public PortNumber tunnelPortNum() {
         if (dataIp == null) {
             return null;