[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/LispListLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispListLcafAddress.java
index fd33119..3552b45 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispListLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispListLcafAddress.java
@@ -19,6 +19,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.exceptions.LispWriterException;
 
 import java.util.List;
 import java.util.Objects;
@@ -134,4 +135,22 @@
                                            lcafAddress.getFlag(), ImmutableList.of(ipv4, ipv6));
         }
     }
+
+    /**
+     * List LCAF address writer class.
+     */
+    public static class ListLcafAddressWriter implements LispAddressWriter<LispListLcafAddress> {
+
+        @Override
+        public void writeTo(ByteBuf byteBuf, LispListLcafAddress address) throws LispWriterException {
+
+            LispLcafAddress.serializeCommon(byteBuf, address);
+
+            LispIpv4Address.Ipv4AddressWriter v4Writer = new LispIpv4Address.Ipv4AddressWriter();
+            LispIpv6Address.Ipv6AddressWriter v6Writer = new LispIpv6Address.Ipv6AddressWriter();
+
+            v4Writer.writeTo(byteBuf, (LispIpv4Address) address.getAddresses().get(0));
+            v6Writer.writeTo(byteBuf, (LispIpv6Address) address.getAddresses().get(1));
+        }
+    }
 }