Starting work on virtual network subsystem implementation.

Change-Id: Ic702ce425d68fa5c1af5c6d55cad5940665ac562
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkAdminService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkAdminService.java
index 1e3648b..07c399c 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkAdminService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/virtual/VirtualNetworkAdminService.java
@@ -16,14 +16,11 @@
 package org.onosproject.incubator.net.virtual;
 
 import com.google.common.annotations.Beta;
-import org.onosproject.incubator.net.tunnel.Tunnel;
+import org.onosproject.incubator.net.tunnel.TunnelId;
 import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
-import org.onosproject.net.device.DeviceDescription;
-import org.onosproject.net.device.PortDescription;
-import org.onosproject.net.link.LinkDescription;
 
 import java.util.Set;
 
@@ -76,12 +73,12 @@
      * Creates a new virtual device within the specified network. The device id
      * must be unique within the bounds of the network.
      *
-     * @param networkId   network identifier
-     * @param description device description
+     * @param networkId network identifier
+     * @param deviceId  device identifier
      * @return newly created device
      * @throws org.onlab.util.ItemNotFoundException if no such network found
      */
-    VirtualDevice createVirtualDevice(NetworkId networkId, DeviceDescription description);
+    VirtualDevice createVirtualDevice(NetworkId networkId, DeviceId deviceId);
 
     /**
      * Removes the specified virtual device and all its ports and affiliated links.
@@ -96,14 +93,16 @@
     /**
      * Creates a new virtual link within the specified network.
      *
-     * @param networkId   network identifier
-     * @param description link description
-     * @param realizedBy  tunnel using which this link is realized
+     * @param networkId  network identifier
+     * @param src        source connection point
+     * @param dst        destination connection point
+     * @param realizedBy identifier of the tunnel using which this link is realized
      * @return newly created virtual link
      * @throws org.onlab.util.ItemNotFoundException if no such network found
      */
-    VirtualLink createVirtualLink(NetworkId networkId, LinkDescription description,
-                                  Tunnel realizedBy);
+    VirtualLink createVirtualLink(NetworkId networkId,
+                                  ConnectPoint src, ConnectPoint dst,
+                                  TunnelId realizedBy);
 
     // TODO: Discuss whether we should provide an alternate createVirtualLink
     // which is backed by a Path instead; I'm leaning towards not doing that.
@@ -119,20 +118,17 @@
     void removeVirtualLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst);
 
     /**
-     * Creates a new virtual port on the specified device. Note that the port
-     * description can only request the resources which the underlying port
-     * port is capable of providing. It is, however, permissible to request
-     * only portion of those resources.
+     * Creates a new virtual port on the specified device.
      *
-     * @param networkId   network identifier
-     * @param deviceId    device identifier
-     * @param description port description
-     * @param realizedBy  underlying port using which this virtual port is realized
+     * @param networkId  network identifier
+     * @param deviceId   device identifier
+     * @param portNumber port number
+     * @param realizedBy underlying port using which this virtual port is realized
      * @return newly created port
      * @throws org.onlab.util.ItemNotFoundException if no such network or device found
      */
     VirtualPort createVirtualPort(NetworkId networkId, DeviceId deviceId,
-                                  PortDescription description, Port realizedBy);
+                                  PortNumber portNumber, Port realizedBy);
 
     /**
      * Removes the specified virtual port.