[ONOS-4718] Deserialize addresses from LISP control message class
With this commit, we try to deserilize all LispAfiAddress from
all LISP control message classes.
Change-Id: Iaf911bff90c45a70859285e426dc1649c3e6db32
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispEidRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispEidRecord.java
index 498ce13..1e79d19 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispEidRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispEidRecord.java
@@ -17,6 +17,7 @@
import io.netty.buffer.ByteBuf;
import org.onosproject.lisp.msg.exceptions.LispParseError;
+import org.onosproject.lisp.msg.exceptions.LispReaderException;
import org.onosproject.lisp.msg.types.LispAfiAddress;
/**
@@ -59,20 +60,19 @@
/**
* A private LISP message reader for EidRecord portion.
*/
- private static class EidRecordReader implements LispMessageReader<LispEidRecord> {
+ public static class EidRecordReader implements LispMessageReader<LispEidRecord> {
private static final int RESERVED_SKIP_LENGTH = 1;
@Override
- public LispEidRecord readFrom(ByteBuf byteBuf) throws LispParseError {
+ public LispEidRecord readFrom(ByteBuf byteBuf) throws LispParseError, LispReaderException {
// let's skip the reserved field
byteBuf.skipBytes(RESERVED_SKIP_LENGTH);
short maskLength = (short) byteBuf.readUnsignedShort();
- // TODO: need to de-serialize AFI address
- LispAfiAddress prefix = null;
+ LispAfiAddress prefix = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
return new LispEidRecord((byte) maskLength, prefix);
}