[ONOS-3804] [ONOS-3805] Initial L3 flowrules setup for Compute/Gateway nodes and PNAT Handler for OpenstackRouting

 - Performs app refactoring (openstackrouting and openstackswitching)
 - Implements L3 REST call corresponding openstackRouter and openstackRouterInterface.
 - Implements initail L3 rules population to compute/gateway node.
 - Implements PNAT rules population corresponding packet-in event.
 - Fixs comments and javadocs.
 - Rebases on master.

Change-Id: I5ad68810f50dc977737d30c43150c892b978b7cb
diff --git a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackExternalGateway.java b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackExternalGateway.java
index 8f1e741..4005f88 100644
--- a/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackExternalGateway.java
+++ b/apps/openstacknetworking/api/src/main/java/org/onosproject/openstacknetworking/OpenstackExternalGateway.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.openstacknetworking;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import org.onlab.packet.Ip4Address;
 import java.util.Map;
@@ -60,7 +61,7 @@
      * @return External fixed IP informations
      */
     public Map<String, Ip4Address> externalFixedIps() {
-        return externalFixedIps;
+        return ImmutableMap.copyOf(externalFixedIps);
     }
 
     @Override
@@ -137,7 +138,7 @@
          * @return OpenstackExternalGateway object
          */
         public OpenstackExternalGateway build() {
-            return new OpenstackExternalGateway(networkId, enablePnat, externalFixedIps);
+            return new OpenstackExternalGateway(networkId, enablePnat, ImmutableMap.copyOf(externalFixedIps));
         }
     }