[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]);
+            }
+        }
+    }
 }