Feed kubevirt port info from K8S port, add a CLI to query port info
Change-Id: Id791fbae66b72cbb8908687463355ecb62ef8543
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
index 0ff5fec..c0afe45 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/Constants.java
@@ -53,6 +53,7 @@
// flow rule priority
public static final int PRIORITY_SWITCHING_RULE = 30000;
+ public static final int PRIORITY_DHCP_RULE = 42000;
// CLI item length
public static final int CLI_ID_LENGTH = 30;
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtPort.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtPort.java
index 4fe0125..992eb90 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtPort.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/DefaultKubevirtPort.java
@@ -82,23 +82,34 @@
}
@Override
- public KubevirtPort updatePortNumber(PortNumber portNumber) {
+ public KubevirtPort updateIpAddress(IpAddress updateIpAddress) {
return new Builder()
.networkId(networkId)
.macAddress(macAddress)
- .ipAddress(ipAddress)
+ .ipAddress(updateIpAddress)
.deviceId(deviceId)
.portNumber(portNumber)
.build();
}
@Override
- public KubevirtPort updateDeviceId(DeviceId deviceId) {
+ public KubevirtPort updatePortNumber(PortNumber updatedPortNumber) {
return new Builder()
.networkId(networkId)
.macAddress(macAddress)
.ipAddress(ipAddress)
.deviceId(deviceId)
+ .portNumber(updatedPortNumber)
+ .build();
+ }
+
+ @Override
+ public KubevirtPort updateDeviceId(DeviceId updatedDeviceId) {
+ return new Builder()
+ .networkId(networkId)
+ .macAddress(macAddress)
+ .ipAddress(ipAddress)
+ .deviceId(updatedDeviceId)
.portNumber(portNumber)
.build();
}
@@ -161,7 +172,6 @@
public KubevirtPort build() {
checkArgument(networkId != null, NOT_NULL_MSG, "networkId");
checkArgument(macAddress != null, NOT_NULL_MSG, "macAddress");
- checkArgument(ipAddress != null, NOT_NULL_MSG, "ipAddress");
return new DefaultKubevirtPort(networkId, macAddress, ipAddress,
deviceId, portNumber);
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetworkAdminService.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetworkAdminService.java
index f0fa716..aeabd84 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetworkAdminService.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtNetworkAdminService.java
@@ -15,6 +15,8 @@
*/
package org.onosproject.kubevirtnetworking.api;
+import org.onlab.packet.IpAddress;
+
public interface KubevirtNetworkAdminService extends KubevirtNetworkService {
/**
@@ -38,5 +40,21 @@
*/
void removeNetwork(String networkId);
+ /**
+ * Allocate an IP address.
+ *
+ * @param networkId network identifier
+ * @return IP address
+ */
+ IpAddress allocateIp(String networkId);
+
+ /**
+ * Release the existing IP address.
+ *
+ * @param networkId network identifier
+ * @param ip IP address to be released
+ */
+ void releaseIp(String networkId, IpAddress ip);
+
void clear();
}
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtPort.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtPort.java
index a7ae75e..850ac6f 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtPort.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtPort.java
@@ -61,20 +61,28 @@
PortNumber portNumber();
/**
- * Returns new port instance with the given port number.
+ * Returns new port instance with the given IP address.
*
- * @param portNumber updated port number
+ * @param updatedIpAddress updated ip address
* @return updated port
*/
- KubevirtPort updatePortNumber(PortNumber portNumber);
+ KubevirtPort updateIpAddress(IpAddress updatedIpAddress);
+
+ /**
+ * Returns new port instance with the given port number.
+ *
+ * @param updatedPortNumber updated port number
+ * @return updated port
+ */
+ KubevirtPort updatePortNumber(PortNumber updatedPortNumber);
/**
* Returns new port instance with the given device ID.
*
- * @param deviceId device identifier
+ * @param updatedDeviceId device identifier
* @return updated port
*/
- KubevirtPort updateDeviceId(DeviceId deviceId);
+ KubevirtPort updateDeviceId(DeviceId updatedDeviceId);
/**
* Builder of new port.