[ONOS-3946] Implement IcmpHandler for OpenstackRoutingService
- Process Icmp packet sent from Host to external network for OpenstackGateway Node
- Process Arp packet sent from physical  router to gateway

Change-Id: Ifcde71a9ca10180682811c9e1bcf58f991b36443
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
index 0ab8681..d23f5f3 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackPortInfo.java
@@ -27,12 +27,13 @@
 /**
  * Contains OpenstackPort Information.
  */
-public class OpenstackPortInfo {
+public final class OpenstackPortInfo {
     private final Ip4Address hostIp;
     private final MacAddress hostMac;
     private final DeviceId deviceId;
     private final long vni;
     private final Ip4Address gatewayIP;
+    private final String networkId;
     private final Collection<String> securityGroups;
 
     /**
@@ -46,12 +47,13 @@
      * @param securityGroups security group list
      */
     public OpenstackPortInfo(Ip4Address hostIp, MacAddress hostMac, DeviceId deviceId, long vni,
-                             Ip4Address gatewayIP, Collection<String> securityGroups) {
+                             Ip4Address gatewayIP, String networkId, Collection<String> securityGroups) {
         this.hostIp = hostIp;
         this.hostMac = hostMac;
         this.deviceId = deviceId;
         this.vni = vni;
         this.gatewayIP = gatewayIP;
+        this.networkId = networkId;
         this.securityGroups = securityGroups;
     }
 
@@ -101,6 +103,15 @@
     }
 
     /**
+     * Returns network ID.
+     *
+     * @return network ID
+     */
+    public String networkId() {
+        return  networkId;
+    }
+
+    /**
      * Returns Security Group ID list.
      *
      * @return list of Security Group ID
@@ -129,11 +140,12 @@
         private long vni;
         private Ip4Address gatewayIP;
         private Collection<String> securityGroups;
+        private String networkId;
 
         /**
          * Sets the IP address of the port.
          *
-         * @param gatewayIP
+         * @param gatewayIP gateway IP
          * @return Builder reference
          */
         public Builder setGatewayIP(Ip4Address gatewayIP) {
@@ -142,6 +154,17 @@
         }
 
         /**
+         * Sets the network ID.
+         *
+         * @param networkId network id
+         * @return Builder reference
+         */
+        public Builder setNetworkId(String networkId) {
+            this.networkId = checkNotNull(networkId, "networkId cannot be null");
+            return this;
+        }
+
+        /**
          * Sets the host IP address of the port.
          *
          * @param hostIp host IP address
@@ -202,16 +225,7 @@
          * @return OpenstackPortInfo reference
          */
         public OpenstackPortInfo build() {
-            return new OpenstackPortInfo(this);
+            return new OpenstackPortInfo(hostIp, hostMac, deviceId, vni, gatewayIP, networkId, securityGroups);
         }
     }
-
-    private OpenstackPortInfo(Builder builder) {
-        hostIp = builder.hostIp;
-        hostMac = builder.hostMac;
-        deviceId = builder.deviceId;
-        vni = builder.vni;
-        gatewayIP = builder.gatewayIP;
-        securityGroups = builder.securityGroups;
-    }
 }