[ONOS-4718] Initial implementation of LISP address serializer
Change-Id: I71e1923f6daf1abdf2bf9798a9e421c81926a45c
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispDistinguishedNameAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispDistinguishedNameAddress.java
index e0d631f..77f1c08 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispDistinguishedNameAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispDistinguishedNameAddress.java
@@ -17,6 +17,7 @@
import io.netty.buffer.ByteBuf;
import org.onosproject.lisp.msg.exceptions.LispParseError;
+import org.onosproject.lisp.msg.exceptions.LispWriterException;
import java.util.Objects;
@@ -92,4 +93,20 @@
return new LispDistinguishedNameAddress(sb.toString());
}
}
+
+ /**
+ * Distinguished name address writer class.
+ */
+ public static class DistinguishedNameAddressWriter
+ implements LispAddressWriter<LispDistinguishedNameAddress> {
+
+ @Override
+ public void writeTo(ByteBuf byteBuf, LispDistinguishedNameAddress address) throws LispWriterException {
+ String distinguishedName = address.getDistinguishedName();
+ byte[] nameBytes = distinguishedName.getBytes();
+ for (int i = 0; i < nameBytes.length; i++) {
+ byteBuf.writeChar(nameBytes[i]);
+ }
+ }
+ }
}