[ONOS-3520] Add L3 codes for VTNManager class.

Change-Id: I86b5b6e2b863fa78759272e1c8c212017b6a696f
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/VirtualPortService.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/VirtualPortService.java
index 0a3ea2c..19548db 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/VirtualPortService.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/VirtualPortService.java
@@ -17,6 +17,7 @@
 
 import java.util.Collection;
 
+import org.onlab.packet.IpAddress;
 import org.onosproject.net.DeviceId;
 import org.onosproject.vtnrsc.FixedIp;
 import org.onosproject.vtnrsc.TenantId;
@@ -53,6 +54,15 @@
     VirtualPort getPort(FixedIp fixedIP);
 
     /**
+     * Returns the virtualPort associated with the networkId and ip.
+     *
+     * @param networkId   the TenantNetworkId identifier
+     * @param ip   the ip identifier
+     * @return virtualPort.
+     */
+    VirtualPort getPort(TenantNetworkId networkId, IpAddress ip);
+
+    /**
      * Returns the collection of the currently known virtualPort.
      * @return collection of VirtualPort.
      */
diff --git a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
index daec783..9639e08 100644
--- a/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
+++ b/apps/vtn/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
@@ -72,6 +72,7 @@
     private static final String NETWORKID_NOT_NULL = "NetworkId  cannot be null";
     private static final String DEVICEID_NOT_NULL = "DeviceId  cannot be null";
     private static final String FIXEDIP_NOT_NULL = "FixedIp  cannot be null";
+    private static final String IP_NOT_NULL = "Ip  cannot be null";
 
     protected Map<VirtualPortId, VirtualPort> vPortStore;
     protected ApplicationId appId;
@@ -148,6 +149,27 @@
     }
 
     @Override
+    public VirtualPort getPort(TenantNetworkId networkId, IpAddress ip) {
+        checkNotNull(networkId, NETWORKID_NOT_NULL);
+        checkNotNull(ip, IP_NOT_NULL);
+        List<VirtualPort> vPorts = new ArrayList<>();
+        vPortStore.values().stream().filter(p -> p.networkId().equals(networkId))
+                .forEach(p -> {
+                    Iterator<FixedIp> fixedIps = p.fixedIps().iterator();
+                    while (fixedIps.hasNext()) {
+                        if (fixedIps.next().ip().equals(ip)) {
+                            vPorts.add(p);
+                            break;
+                        }
+                    }
+                });
+        if (vPorts.size() == 0) {
+            return null;
+        }
+        return vPorts.get(0);
+    }
+
+    @Override
     public Collection<VirtualPort> getPorts() {
         return Collections.unmodifiableCollection(vPortStore.values());
     }