Support distributed virtual router (DVR) at kubernetes
Change-Id: I6dfa1ad0d2161443e37fa80901d5ababbec6f74e
diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
index 8793c46..4cc6609 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/codec/K8sNodeCodec.java
@@ -19,6 +19,7 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.apache.commons.lang.StringUtils;
import org.onlab.packet.IpAddress;
+import org.onlab.packet.MacAddress;
import org.onosproject.codec.CodecContext;
import org.onosproject.codec.JsonCodec;
import org.onosproject.k8snode.api.DefaultK8sNode;
@@ -54,6 +55,7 @@
private static final String EXTERNAL_INTF = "externalInterface";
private static final String EXTERNAL_BRIDGE_IP = "externalBridgeIp";
private static final String EXTERNAL_GATEWAY_IP = "externalGatewayIp";
+ private static final String EXTERNAL_GATEWAY_MAC = "externalGatewayMac";
private static final String MISSING_MESSAGE = " is required in K8sNode";
@@ -101,6 +103,10 @@
result.put(EXTERNAL_GATEWAY_IP, node.extGatewayIp().toString());
}
+ if (node.extGatewayMac() != null) {
+ result.put(EXTERNAL_GATEWAY_MAC, node.extGatewayMac().toString());
+ }
+
return result;
}
@@ -176,6 +182,11 @@
nodeBuilder.extGatewayIp(IpAddress.valueOf(extGatewayIpJson.asText()));
}
+ JsonNode extGatewayMacJson = json.get(EXTERNAL_GATEWAY_MAC);
+ if (extGatewayMacJson != null) {
+ nodeBuilder.extGatewayMac(MacAddress.valueOf(extGatewayMacJson.asText()));
+ }
+
log.trace("node is {}", nodeBuilder.build().toString());
return nodeBuilder.build();