Listen on k8s port event to create instance port and host

Change-Id: I59ab1f5f422ce2ba8f5432279ceec6d77cd96f06
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/Constants.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/Constants.java
index 3588414..db6583a 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/Constants.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/Constants.java
@@ -56,13 +56,21 @@
     public static final String DEFAULT_SERVICE_IP_CIDR = "10.96.0.0/12";
     public static final String DEFAULT_SERVICE_IP_NONE = "none";
 
-    public static final String PORT_NAME_PREFIX_CONTAINER = "veth";
+    public static final String NORMAL_PORT_NAME_PREFIX_CONTAINER = "veth";
+    public static final String PT_PORT_NAME_PREFIX_CONTAINER = "tap";
+    public static final int NORMAL_PORT_PREFIX_LENGTH = 4;
+    public static final int PT_PORT_PREFIX_LENGTH = 3;
 
     public static final String ANNOTATION_NETWORK_ID = "networkId";
     public static final String ANNOTATION_PORT_ID = "portId";
     public static final String ANNOTATION_CREATE_TIME = "createTime";
     public static final String ANNOTATION_SEGMENT_ID = "segId";
 
+    // network type
+    public static final String VXLAN = "VXLAN";
+    public static final String GRE = "GRE";
+    public static final String GENEVE = "GENEVE";
+
     public static final long DEFAULT_METADATA_MASK = 0xffffffffffffffffL;
     public static final int DEFAULT_NAMESPACE_HASH = 0xffffffff;
 
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sPort.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sPort.java
index 4d2b906..a779a87 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sPort.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sPort.java
@@ -114,6 +114,19 @@
     }
 
     @Override
+    public K8sPort updateDeviceId(DeviceId deviceId) {
+        return new Builder()
+                .networkId(networkId)
+                .portId(portId)
+                .macAddress(macAddress)
+                .ipAddress(ipAddress)
+                .deviceId(deviceId)
+                .portNumber(portNumber)
+                .state(state)
+                .build();
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPort.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPort.java
index f25a725..633de51 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPort.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPort.java
@@ -107,6 +107,14 @@
     K8sPort updatePortNumber(PortNumber portNumber);
 
     /**
+     * Returns new port instance with the given device ID.
+     *
+     * @param deviceId device identifier
+     * @return updated port
+     */
+    K8sPort updateDeviceId(DeviceId deviceId);
+
+    /**
      * Builder of new port.
      */
     interface Builder {