diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAppDataLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAppDataLcafAddress.java
index b1b6fda..284ebe4 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAppDataLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAppDataLcafAddress.java
@@ -18,6 +18,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.nio.ByteBuffer;
 import java.util.Objects;
@@ -364,4 +365,29 @@
             return buffer.getInt();
         }
     }
+
+    /**
+     * Application data LCAF address writer class.
+     */
+    public static class AppDataLcafAddressWriter
+            implements LispAddressWriter<LispAppDataLcafAddress> {
+
+        @Override
+        public void writeTo(ByteBuf byteBuf, LispAppDataLcafAddress address)
+                throws LispWriterException {
+
+            LispLcafAddress.serializeCommon(byteBuf, address);
+
+            // TODO: need to handle TOS
+
+            byteBuf.writeByte(address.getProtocol());
+            byteBuf.writeShort(address.getLocalPortLow());
+            byteBuf.writeShort(address.getLocalPortHigh());
+            byteBuf.writeShort(address.getRemotePortLow());
+            byteBuf.writeShort(address.getRemotePortHigh());
+
+            AfiAddressWriter writer = new LispAfiAddress.AfiAddressWriter();
+            writer.writeTo(byteBuf, address.getAddress());
+        }
+    }
 }
