VOL-2343: Remove DHCP Allocations upon OLT Removal
Change-Id: I2f0dcfdac53930a7e7f1226bdfbf7a8d4726eaef
diff --git a/app/src/main/java/org/opencord/dhcpl2relay/impl/DhcpL2Relay.java b/app/src/main/java/org/opencord/dhcpl2relay/impl/DhcpL2Relay.java
index 411d763..2cd4f88 100755
--- a/app/src/main/java/org/opencord/dhcpl2relay/impl/DhcpL2Relay.java
+++ b/app/src/main/java/org/opencord/dhcpl2relay/impl/DhcpL2Relay.java
@@ -1088,6 +1088,20 @@
private class InnerDeviceListener implements DeviceListener {
@Override
public void event(DeviceEvent event) {
+ switch (event.type()) {
+ case DEVICE_AVAILABILITY_CHANGED:
+ log.info("Device Avail Changed {}", event.subject().id());
+ DeviceId deviceId = event.subject().id();
+ if (!deviceService.isAvailable(deviceId)) {
+ log.warn("Device {} is not available ", deviceId);
+ allocationMap.entrySet().removeIf(entry -> deviceId.equals(entry.getValue().
+ location().deviceId()));
+ log.info("Device {} is removed from DHCP allocationmap ", deviceId);
+ }
+ break;
+ default:
+ break;
+ }
if (log.isTraceEnabled() &&
!event.type().equals(DeviceEvent.Type.PORT_STATS_UPDATED)) {
log.trace("Device Event received for {} event {}",