Fix: configure the correct ethernet address of ARP reply for k8s
Change-Id: Ia217ab5250a498ae83b32388d2db56941f0e6f01
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
index 8313b81..9986760 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingArpHandler.java
@@ -124,7 +124,7 @@
IpAddress spa = Ip4Address.valueOf(arp.getSenderProtocolAddress());
MacAddress sha = MacAddress.valueOf(arp.getSenderHardwareAddress());
- log.info("ARP reply from external gateway ip: {}, mac: {}", spa, sha);
+ log.info("ARP reply from ip: {}, mac: {}", spa, sha);
Set<IpAddress> gatewayIps = k8sNodeService.completeNodes().stream()
.map(K8sNode::extGatewayIp).collect(Collectors.toSet());
@@ -133,6 +133,8 @@
return;
}
+ log.info("ARP reply from external gateway ip: {}, mac: {}", spa, sha);
+
k8sNodeService.completeNodes().stream()
.filter(n -> n.extGatewayMac() == null)
.forEach(n -> {
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
index fccbaaf..f16bdda 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sRoutingSnatHandler.java
@@ -287,8 +287,9 @@
.extension(buildMoveEthSrcToDstExtension(device), device.id())
.extension(buildMoveArpShaToThaExtension(device), device.id())
.extension(buildMoveArpSpaToTpaExtension(device), device.id())
- .setArpSpa(Ip4Address.valueOf(k8sNode.extBridgeIp().toString()))
+ .setEthSrc(k8sNode.extBridgeMac())
.setArpSha(k8sNode.extBridgeMac())
+ .setArpSpa(Ip4Address.valueOf(k8sNode.extBridgeIp().toString()))
.setOutput(PortNumber.IN_PORT)
.build();