diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
index 3f204fb..645a86d 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/impl/InstancePortManager.java
@@ -45,6 +45,7 @@
 import org.onosproject.openstacknetworking.api.InstancePortService;
 import org.onosproject.openstacknetworking.api.InstancePortStore;
 import org.onosproject.openstacknetworking.api.InstancePortStoreDelegate;
+import org.onosproject.openstacknetworking.api.OpenstackRouterService;
 import org.slf4j.Logger;
 
 import java.util.Objects;
@@ -101,6 +102,9 @@
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected HostService hostService;
 
+    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    protected OpenstackRouterService routerService;
+
     private final InstancePortStoreDelegate
                             delegate = new InternalInstancePortStoreDelegate();
     private final InternalHostListener
@@ -224,6 +228,17 @@
         return ImmutableSet.copyOf(ports);
     }
 
+    @Override
+    public IpAddress floatingIp(String osPortId) {
+        checkNotNull(osPortId, ERR_NULL_INSTANCE_PORT_ID);
+
+        return routerService.floatingIps().stream()
+                .filter(fip -> osPortId.equals(fip.getPortId()))
+                .filter(fip -> fip.getFloatingIpAddress() != null)
+                .map(fip -> IpAddress.valueOf(fip.getFloatingIpAddress()))
+                .findFirst().orElse(null);
+    }
+
     private boolean isInstancePortInUse(String portId) {
         // TODO add checking logic
         return false;
