Fix: retrieve port bridge port MAC from deviceService rather via ovsdb

1. Derive gateway IP address from POD subnet CIDR.
2. Remove the logic of injecting gateway IP address.

Change-Id: Ice44c1c4b41bc1689954041aee6441a379e5bacd
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/codec/K8sNetworkCodec.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/codec/K8sNetworkCodec.java
index b9984bf..07e85da 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/codec/K8sNetworkCodec.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/codec/K8sNetworkCodec.java
@@ -15,8 +15,8 @@
  */
 package org.onosproject.k8snetworking.codec;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import org.onlab.packet.IpAddress;
 import org.onosproject.codec.CodecContext;
 import org.onosproject.codec.JsonCodec;
 import org.onosproject.k8snetworking.api.DefaultK8sNetwork;
@@ -39,7 +39,6 @@
     private static final String TYPE = "type";
     private static final String MTU = "mtu";
     private static final String SEGMENT_ID = "segmentId";
-    private static final String GATEWAY_IP = "gatewayIp";
     private static final String CIDR = "cidr";
 
     private static final String MISSING_MESSAGE = " is required in K8sNetwork";
@@ -51,11 +50,16 @@
         ObjectNode result = context.mapper().createObjectNode()
                 .put(NETWORK_ID, network.networkId())
                 .put(NAME, network.name())
-                .put(TYPE, network.type().name())
-                .put(SEGMENT_ID, network.segmentId())
-                .put(GATEWAY_IP, network.gatewayIp().toString())
                 .put(CIDR, network.cidr());
 
+        if (network.type() != null) {
+            result.put(TYPE, network.type().name());
+        }
+
+        if (network.segmentId() != null) {
+            result.put(SEGMENT_ID, network.segmentId());
+        }
+
         if (network.mtu() != null) {
             result.put(MTU, network.mtu());
         }
@@ -73,23 +77,25 @@
                 NETWORK_ID + MISSING_MESSAGE);
         String name = nullIsIllegal(json.get(NAME).asText(),
                 NAME + MISSING_MESSAGE);
-        String type = nullIsIllegal(json.get(TYPE).asText(),
-                TYPE + MISSING_MESSAGE);
-        String segmentId = nullIsIllegal(json.get(SEGMENT_ID).asText(),
-                SEGMENT_ID + MISSING_MESSAGE);
-        String gatewayIp = nullIsIllegal(json.get(GATEWAY_IP).asText(),
-                GATEWAY_IP + MISSING_MESSAGE);
         String cidr = nullIsIllegal(json.get(CIDR).asText(),
                 CIDR + MISSING_MESSAGE);
 
+        JsonNode type = json.get(TYPE);
+        JsonNode segmentId = json.get(SEGMENT_ID);
+
         DefaultK8sNetwork.Builder networkBuilder = DefaultK8sNetwork.builder()
                 .networkId(networkId)
                 .name(name)
-                .type(K8sNetwork.Type.valueOf(type))
-                .segmentId(segmentId)
-                .gatewayIp(IpAddress.valueOf(gatewayIp))
                 .cidr(cidr);
 
+        if (type != null) {
+            networkBuilder.type(K8sNetwork.Type.valueOf(type.asText()));
+        }
+
+        if (segmentId != null) {
+            networkBuilder.segmentId(segmentId.asText());
+        }
+
         if (json.get(MTU) != null) {
             networkBuilder.mtu(json.get(MTU).asInt());
         }