Support to inject hostRoutes and DNS info inside DHCP reply message
Change-Id: Ic88f98b6fca88aa69a23c6a576d4d0a6ac4b8f99
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtDhcpHandler.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtDhcpHandler.java
index e3b9469..983a5bb 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtDhcpHandler.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtDhcpHandler.java
@@ -474,28 +474,25 @@
option.setCode(OptionCode_DomainServer.getValue());
- option.setLength((byte) DHCP_OPTION_DNS_LENGTH);
- ByteBuffer dnsByteBuf = ByteBuffer.allocate(DHCP_OPTION_DNS_LENGTH);
- dnsByteBuf.put(DEFAULT_PRIMARY_DNS.toOctets());
- dnsByteBuf.put(DEFAULT_SECONDARY_DNS.toOctets());
+ if (network.dnses().isEmpty()) {
+ option.setLength((byte) DHCP_OPTION_DNS_LENGTH);
+ ByteBuffer dnsByteBuf = ByteBuffer.allocate(DHCP_OPTION_DNS_LENGTH);
+ dnsByteBuf.put(DEFAULT_PRIMARY_DNS.toOctets());
+ dnsByteBuf.put(DEFAULT_SECONDARY_DNS.toOctets());
- option.setData(dnsByteBuf.array());
+ option.setData(dnsByteBuf.array());
+ } else {
+ int dnsLength = 4 * network.dnses().size();
- // TODO: need to customize the DNS server list
-// if (dnsServers.isEmpty()) {
-//
-// } else {
-// int dnsLength = 4 * dnsServers.size();
-//
-// option.setLength((byte) dnsLength);
-//
-// ByteBuffer dnsByteBuf = ByteBuffer.allocate(DHCP_OPTION_DNS_LENGTH);
-//
-// for (String dnsServer : dnsServers) {
-// dnsByteBuf.put(IpAddress.valueOf(dnsServer).toOctets());
-// }
-// option.setData(dnsByteBuf.array());
-// }
+ option.setLength((byte) dnsLength);
+
+ ByteBuffer dnsByteBuf = ByteBuffer.allocate(DHCP_OPTION_DNS_LENGTH);
+
+ for (IpAddress dnsServer : network.dnses()) {
+ dnsByteBuf.put(dnsServer.toOctets());
+ }
+ option.setData(dnsByteBuf.array());
+ }
return option;
}