[ONOS-7926] Implement IPAM service to allocate IP for Kubernetes POD
Change-Id: I32fd1fffb41ec728d0be092ac5a8f555179e7a9e
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
index f34421a..d8752f8 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sIpamAdminService.java
@@ -17,6 +17,8 @@
import org.onlab.packet.IpAddress;
+import java.util.Set;
+
/**
* IP Address Management admin service for kubernetes network.
*/
@@ -31,10 +33,26 @@
IpAddress allocateIp(String networkId);
/**
- * Leases the IP address from the given network.
+ * Releases the IP address from the given network.
*
* @param networkId network identifier
- * @return leased IP address
+ * @param ipAddress IP address
+ * @return true if the given IP was successfully released, false otherwise
*/
- IpAddress leaseIp(String networkId);
+ boolean releaseIp(String networkId, IpAddress ipAddress);
+
+ /**
+ * Initializes IP address pool.
+ *
+ * @param networkId network identifier
+ * @param ipAddresses a set of IP addresses contained in this IP pool
+ */
+ void initializeIpPool(String networkId, Set<IpAddress> ipAddresses);
+
+ /**
+ * Purges the existing IP address pool of the given network identifier.
+ *
+ * @param networkId network identifier
+ */
+ void purgeIpPool(String networkId);
}