Support to inject hostRoutes and DNS info inside DHCP reply message
Change-Id: Ic88f98b6fca88aa69a23c6a576d4d0a6ac4b8f99
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
index 970c0eb..79c535d 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtNetwork.java
@@ -19,6 +19,7 @@
import com.google.common.collect.ImmutableSet;
import org.onlab.packet.IpAddress;
+import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
@@ -41,6 +42,7 @@
private final String cidr;
private final Set<KubevirtHostRoute> hostRoutes;
private final KubevirtIpPool ipPool;
+ private final Set<IpAddress> dnses;
/**
* Default constructor.
@@ -54,11 +56,12 @@
* @param cidr CIDR of network
* @param hostRoutes a set of host routes
* @param ipPool IP pool
+ * @param dnses a set of DNSes
*/
public DefaultKubevirtNetwork(String networkId, Type type, String name,
Integer mtu, String segmentId, IpAddress gatewayIp,
String cidr, Set<KubevirtHostRoute> hostRoutes,
- KubevirtIpPool ipPool) {
+ KubevirtIpPool ipPool, Set<IpAddress> dnses) {
this.networkId = networkId;
this.type = type;
this.name = name;
@@ -68,6 +71,7 @@
this.cidr = cidr;
this.hostRoutes = hostRoutes;
this.ipPool = ipPool;
+ this.dnses = dnses;
}
@Override
@@ -120,6 +124,15 @@
}
@Override
+ public Set<IpAddress> dnses() {
+ if (dnses == null || dnses.size() == 0) {
+ return ImmutableSet.of();
+ } else {
+ return ImmutableSet.copyOf(dnses);
+ }
+ }
+
+ @Override
public boolean equals(Object o) {
if (this == o) {
return true;
@@ -132,13 +145,14 @@
name.equals(that.name) && mtu.equals(that.mtu) &&
gatewayIp.equals(that.gatewayIp) &&
cidr.equals(that.cidr) && hostRoutes.equals(that.hostRoutes) &&
- ipPool.equals(that.ipPool);
+ ipPool.equals(that.ipPool) &&
+ dnses.equals(that.dnses);
}
@Override
public int hashCode() {
return Objects.hash(networkId, type, name, mtu, segmentId, gatewayIp,
- cidr, hostRoutes, ipPool);
+ cidr, hostRoutes, ipPool, dnses);
}
@Override
@@ -153,6 +167,7 @@
.add("cidr", cidr)
.add("hostRouts", hostRoutes)
.add("ipPool", ipPool)
+ .add("dnses", dnses)
.toString();
}
@@ -176,6 +191,7 @@
private String cidr;
private Set<KubevirtHostRoute> hostRouts;
private KubevirtIpPool ipPool;
+ private Set<IpAddress> dnses;
@Override
public KubevirtNetwork build() {
@@ -191,8 +207,12 @@
checkArgument(segmentId != null, NOT_NULL_MSG, "segmentId");
}
+ if (dnses == null) {
+ dnses = new HashSet<>();
+ }
+
return new DefaultKubevirtNetwork(networkId, type, name, mtu, segmentId,
- gatewayIp, cidr, hostRouts, ipPool);
+ gatewayIp, cidr, hostRouts, ipPool, dnses);
}
@Override
@@ -248,5 +268,11 @@
this.hostRouts = hostRoutes;
return this;
}
+
+ @Override
+ public KubevirtNetwork.Builder dnses(Set<IpAddress> dnses) {
+ this.dnses = dnses;
+ return this;
+ }
}
}