Implement k8s service IP to pod IP translation using Nicira load ext

Change-Id: I147a9adb68b2bf597c1876a64bf77dedca9698b3
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
index 2647d70..7325976 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/util/K8sNetworkingUtil.java
@@ -20,6 +20,7 @@
 import com.fasterxml.jackson.databind.JsonMappingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
 import io.fabric8.kubernetes.client.ConfigBuilder;
 import io.fabric8.kubernetes.client.DefaultKubernetesClient;
 import io.fabric8.kubernetes.client.KubernetesClient;
@@ -48,6 +49,7 @@
 import java.util.stream.Collectors;
 
 import static org.onosproject.k8snetworking.api.Constants.PORT_NAME_PREFIX_CONTAINER;
+import static org.onosproject.k8snetworking.api.Constants.SHIFTED_IP_PREFIX;
 
 /**
  * An utility that used in kubernetes networking app.
@@ -284,4 +286,24 @@
 
         return ipMap;
     }
+
+    /**
+     * Returns a set of unshifted IP addresses.
+     *
+     * @param ipAddress     shifted IP address
+     * @param service       kubernetes network service
+     * @return unshifted IP addresses
+     */
+    public static Set<String> unshiftIpDomain(String ipAddress, K8sNetworkService service) {
+
+        Set<String> unshiftedIps = Sets.newConcurrentHashSet();
+
+        service.networks().forEach(n -> {
+            String cidr = n.cidr();
+            String origIpPrefix = cidr.split("\\.")[0] + "." + cidr.split("\\.")[1];
+            unshiftedIps.add(StringUtils.replace(ipAddress, SHIFTED_IP_PREFIX, origIpPrefix));
+        });
+
+        return unshiftedIps;
+    }
 }