[ONOS-3948] Seperate mgmt and data network in OpenstackSwitching/RoutingService

- Supports the seperation of management and data network

Change-Id: I178dbe2af241123c5181f94a7b46fc15b4cb37c7
diff --git a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackPort.java b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackPort.java
index 49b77e2..6594e61 100644
--- a/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackPort.java
+++ b/apps/openstackinterface/api/src/main/java/org/onosproject/openstackinterface/OpenstackPort.java
@@ -15,13 +15,13 @@
  */
 package org.onosproject.openstackinterface;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.IpAddress;
 import org.onlab.packet.MacAddress;
 
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.Map;
 
 import static com.google.common.base.Preconditions.checkNotNull;
@@ -40,31 +40,31 @@
 
     private PortStatus status;
     private String name;
-    private Map<IpAddress, MacAddress> allowedAddressPairs;
+    private ImmutableMap<IpAddress, MacAddress> allowedAddressPairs;
     private boolean adminStateUp;
     private String networkId;
     private String tenantId;
     private String deviceOwner;
     private MacAddress macAddress;
     // <subnet id, ip address>
-    private HashMap<String, Ip4Address> fixedIps;
+    private ImmutableMap<String, Ip4Address> fixedIps;
     private String id;
     private Collection<String> securityGroups;
     private String deviceId;
 
     private OpenstackPort(PortStatus status, String name, Map<IpAddress, MacAddress> allowedAddressPairs,
                           boolean adminStateUp, String networkId, String tenantId,
-                          String deviceOwner, MacAddress macAddress, HashMap fixedIps,
+                          String deviceOwner, MacAddress macAddress, Map<String, Ip4Address> fixedIps,
                           String id, Collection<String> securityGroups, String deviceId) {
         this.status = status;
         this.name = name;
-        this.allowedAddressPairs = checkNotNull(allowedAddressPairs);
+        this.allowedAddressPairs = checkNotNull(ImmutableMap.copyOf(allowedAddressPairs));
         this.adminStateUp = adminStateUp;
         this.networkId = checkNotNull(networkId);
         this.tenantId = checkNotNull(tenantId);
         this.deviceOwner = deviceOwner;
         this.macAddress = checkNotNull(macAddress);
-        this.fixedIps = checkNotNull(fixedIps);
+        this.fixedIps = checkNotNull(ImmutableMap.copyOf(fixedIps));
         this.id = checkNotNull(id);
         this.securityGroups = securityGroups;
         this.deviceId = deviceId;
@@ -149,7 +149,7 @@
      *
      * @return fixed IP info
      */
-    public HashMap fixedIps() {
+    public Map<String, Ip4Address> fixedIps() {
         return fixedIps;
     }
 
@@ -194,7 +194,7 @@
         private String deviceOwner;
         private MacAddress macAddress;
         // list  of hash map <subnet id, ip address>
-        private HashMap<String, Ip4Address> fixedIps;
+        private Map<String, Ip4Address> fixedIps;
         private String id;
         private Collection<String> securityGroups;
         private String deviceId;
@@ -305,7 +305,7 @@
          * @param fixedIpList Fixed IP info
          * @return Builder object
          */
-        public Builder fixedIps(HashMap<String, Ip4Address> fixedIpList) {
+        public Builder fixedIps(Map<String, Ip4Address> fixedIpList) {
             fixedIps.putAll(fixedIpList);
 
             return this;