Fix: Store mapping information when receives MapRegister
Change-Id: I6d09d4afd92ae2327063845bb07b1a2f0d286fbc
diff --git a/providers/lisp/mapping/src/main/java/org/onosproject/provider/lisp/mapping/impl/LispMappingProvider.java b/providers/lisp/mapping/src/main/java/org/onosproject/provider/lisp/mapping/impl/LispMappingProvider.java
index 0eacc60..eb985c3 100644
--- a/providers/lisp/mapping/src/main/java/org/onosproject/provider/lisp/mapping/impl/LispMappingProvider.java
+++ b/providers/lisp/mapping/src/main/java/org/onosproject/provider/lisp/mapping/impl/LispMappingProvider.java
@@ -26,6 +26,7 @@
import org.onosproject.lisp.ctl.LispRouterListener;
import org.onosproject.lisp.msg.protocols.LispMapNotify;
import org.onosproject.lisp.msg.protocols.LispMapRecord;
+import org.onosproject.lisp.msg.protocols.LispMapRegister;
import org.onosproject.lisp.msg.protocols.LispMapReply;
import org.onosproject.lisp.msg.protocols.LispMessage;
import org.onosproject.mapping.MappingEntry;
@@ -131,13 +132,33 @@
@Override
public void handleIncomingMessage(LispRouterId routerId, LispMessage msg) {
+ if (providerService == null) {
+ log.warn("provider service has not been initialized");
+ return;
+ }
+ DeviceId deviceId = DeviceId.deviceId(routerId.toString());
+ switch (msg.getType()) {
+
+ case LISP_MAP_REQUEST:
+ log.warn("LISP mapping query feature will be added when " +
+ "provider service supports it.");
+ break;
+
+ case LISP_MAP_REGISTER:
+ LispMapRegister register = (LispMapRegister) msg;
+ processMappings(deviceId, register.getMapRecords(), MAP_DATABASE);
+ break;
+
+ default:
+ log.warn("Unhandled message type: {}", msg.getType());
+ }
}
@Override
public void handleOutgoingMessage(LispRouterId routerId, LispMessage msg) {
if (providerService == null) {
- // We are shutting down, nothing to be done
+ log.warn("provider service has not been initialized");
return;
}