[ONOS-5623] Enhance map server to handle Info-Request control msg
Change-Id: If5f68041fbef786e912fc17e33a0e296df73cd3d
diff --git a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispChannelHandler.java b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispChannelHandler.java
index 1b14a2f..1041370 100644
--- a/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispChannelHandler.java
+++ b/protocols/lisp/ctl/src/main/java/org/onosproject/lisp/ctl/LispChannelHandler.java
@@ -21,6 +21,8 @@
import io.netty.handler.timeout.IdleStateEvent;
import io.netty.util.ReferenceCountUtil;
import org.onosproject.lisp.msg.protocols.LispEncapsulatedControl;
+import org.onosproject.lisp.msg.protocols.LispInfoReply;
+import org.onosproject.lisp.msg.protocols.LispInfoRequest;
import org.onosproject.lisp.msg.protocols.LispMapNotify;
import org.onosproject.lisp.msg.protocols.LispMapRegister;
import org.onosproject.lisp.msg.protocols.LispMapRequest;
@@ -64,6 +66,16 @@
} finally {
ReferenceCountUtil.release(msg);
}
+
+ if (msg instanceof LispInfoRequest) {
+ LispMapServer mapServer = new LispMapServer();
+ LispInfoReply infoReply = mapServer.processInfoRequest((LispInfoRequest) msg);
+
+ // try to remove the received info-request message from buffer
+ ReferenceCountUtil.release(msg);
+
+ ctx.writeAndFlush(infoReply);
+ }
}
@Override