Refactor LISP package to separate ctrl interface and impl classes

Change-Id: I4e94ff54299e886cd0e8b3ce38591b0900290f54
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/authentication/LispMacAuthentication.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/authentication/LispMacAuthentication.java
index 166a88e..ced2d2d 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/authentication/LispMacAuthentication.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/authentication/LispMacAuthentication.java
@@ -23,9 +23,6 @@
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 
-import static org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum.SHA1;
-import static org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum.SHA256;
-
 /**
  * LISP MAC authentication utility class.
  */
@@ -46,7 +43,7 @@
      */
     LispMacAuthentication(LispAuthenticationKeyEnum authType) {
 
-        if (authType == SHA1 || authType == SHA256) {
+        if (authType == LispAuthenticationKeyEnum.SHA1 || authType == LispAuthenticationKeyEnum.SHA256) {
             algorithm = authType.getName();
         } else {
             log.warn(NOT_SUPPORT_ALGORITHM_MSG, authType.getName());
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoReply.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoReply.java
index 650d765..25827a0 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoReply.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoReply.java
@@ -18,12 +18,12 @@
 import com.google.common.base.Objects;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+import org.onosproject.lisp.msg.types.LispAfiAddress;
 import org.onosproject.lisp.msg.authentication.LispAuthenticationFactory;
 import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
-import org.onosproject.lisp.msg.types.LispAfiAddress;
 import org.onosproject.lisp.msg.types.LispLcafAddress.LcafAddressReader;
 import org.onosproject.lisp.msg.types.LispLcafAddress.LcafAddressWriter;
 import org.onosproject.lisp.msg.types.LispNatLcafAddress;
@@ -244,7 +244,7 @@
 
         @Override
         public LispInfoReply readFrom(ByteBuf byteBuf) throws LispParseError, LispReaderException {
-            LispInfo lispInfo = DefaultLispInfo.deserialize(byteBuf);
+            LispInfo lispInfo = deserialize(byteBuf);
 
             LispNatLcafAddress natLcafAddress = (LispNatLcafAddress)
                     new LcafAddressReader().readFrom(byteBuf);
@@ -266,7 +266,7 @@
 
         @Override
         public void writeTo(ByteBuf byteBuf, LispInfoReply message) throws LispWriterException {
-            DefaultLispInfo.serialize(byteBuf, message);
+            serialize(byteBuf, message);
 
             new LcafAddressWriter().writeTo(byteBuf, message.getNatLcafAddress());
         }
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoRequest.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoRequest.java
index f0dbba4..13e36a0 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoRequest.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispInfoRequest.java
@@ -19,12 +19,12 @@
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.onosproject.lisp.msg.authentication.LispAuthenticationFactory;
-import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
 import org.onosproject.lisp.msg.types.LispAfiAddress;
 import org.onosproject.lisp.msg.types.LispNoAddress;
+import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -237,7 +237,7 @@
         public LispInfoRequest readFrom(ByteBuf byteBuf)
                 throws LispParseError, LispReaderException {
 
-            LispInfo lispInfo = DefaultLispInfo.deserialize(byteBuf);
+            LispInfo lispInfo = deserialize(byteBuf);
 
             return new DefaultInfoRequestBuilder()
                     .withIsInfoReply(lispInfo.isInfoReply())
@@ -261,7 +261,7 @@
         public void writeTo(ByteBuf byteBuf, LispInfoRequest message)
                 throws LispWriterException {
 
-            DefaultLispInfo.serialize(byteBuf, message);
+            serialize(byteBuf, message);
 
             //Fill AFI=0, no address
             new LispAfiAddress.AfiAddressWriter()
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecord.java
index e242a5d..e7e63fb 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispLocatorRecord.java
@@ -22,10 +22,11 @@
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
 import org.onosproject.lisp.msg.types.LispAfiAddress;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 /**
  * Default implementation of LispLocatorRecord.
@@ -262,7 +263,7 @@
             // routed flag -> 1 bit
             boolean routed = ByteOperator.getBit(flags, ROUTED_INDEX);
 
-            LispAfiAddress address = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress address = new AfiAddressReader().readFrom(byteBuf);
 
             return new DefaultLocatorRecordBuilder()
                         .withPriority(priority)
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotify.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotify.java
index d6a27fb..5cb5877 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotify.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapNotify.java
@@ -21,11 +21,13 @@
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.onlab.util.ImmutableByteSequence;
-import org.onosproject.lisp.msg.authentication.LispAuthenticationFactory;
-import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
+import org.onosproject.lisp.msg.authentication.LispAuthenticationFactory;
+import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +36,6 @@
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum.valueOf;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
 
 /**
  * Default LISP map notify message class.
@@ -279,7 +280,7 @@
 
             List<LispMapRecord> mapRecords = Lists.newArrayList();
             for (int i = 0; i < recordCount; i++) {
-                mapRecords.add(new DefaultLispMapRecord.MapRecordReader().readFrom(byteBuf));
+                mapRecords.add(new MapRecordReader().readFrom(byteBuf));
             }
 
             return new DefaultNotifyBuilder()
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
index d18e238..ced7306 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRecord.java
@@ -21,15 +21,16 @@
 import io.netty.buffer.ByteBuf;
 import org.onlab.util.ByteOperator;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
+import org.onosproject.lisp.msg.protocols.DefaultLispLocatorRecord.LocatorRecordReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
-import org.onosproject.lisp.msg.types.LispAfiAddress;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import java.util.List;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 import static org.onosproject.lisp.msg.protocols.DefaultLispLocatorRecord.LocatorRecordWriter;
 
 /**
@@ -263,7 +264,7 @@
 
             List<LispLocatorRecord> locators = Lists.newArrayList();
             for (int i = 0; i < locatorCount; i++) {
-                locators.add(new DefaultLispLocatorRecord.LocatorRecordReader().readFrom(byteBuf));
+                locators.add(new LocatorRecordReader().readFrom(byteBuf));
             }
 
             return new DefaultMapRecordBuilder()
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
index 3171d2e..a75d72d 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRegister.java
@@ -23,10 +23,11 @@
 import org.onlab.util.ByteOperator;
 import org.onlab.util.ImmutableByteSequence;
 import org.onosproject.lisp.msg.authentication.LispAuthenticationFactory;
-import org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -35,9 +36,6 @@
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static org.onosproject.lisp.msg.authentication.LispAuthenticationKeyEnum.valueOf;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
-
 
 /**
  * Default LISP map register message class.
@@ -255,7 +253,7 @@
             if (authData == null) {
                 LispAuthenticationFactory factory = LispAuthenticationFactory.getInstance();
 
-                authDataLength = LispAuthenticationKeyEnum.valueOf(keyId).getHashLength();
+                authDataLength = valueOf(keyId).getHashLength();
                 byte[] tmpAuthData = new byte[authDataLength];
                 Arrays.fill(tmpAuthData, (byte) 0);
                 authData = tmpAuthData;
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
index fea7f52..d82c4be 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapReply.java
@@ -23,11 +23,12 @@
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
 
 import java.util.List;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRecord.MapRecordWriter;
 
 /**
  * Default LISP map reply message class.
@@ -230,7 +231,7 @@
 
             List<LispMapRecord> mapRecords = Lists.newArrayList();
             for (int i = 0; i < recordCount; i++) {
-                mapRecords.add(new DefaultLispMapRecord.MapRecordReader().readFrom(byteBuf));
+                mapRecords.add(new MapRecordReader().readFrom(byteBuf));
             }
 
             return new DefaultReplyBuilder()
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
index 21b0c38..9055e409 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/DefaultLispMapRequest.java
@@ -20,17 +20,19 @@
 import com.google.common.collect.Lists;
 import io.netty.buffer.ByteBuf;
 import org.onlab.util.ByteOperator;
+import org.onosproject.lisp.msg.protocols.LispEidRecord.EidRecordReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress;
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
-import org.onosproject.lisp.msg.types.LispAfiAddress;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import java.util.List;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkArgument;
 import static org.onosproject.lisp.msg.protocols.LispEidRecord.EidRecordWriter;
-import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 /**
  * Default LISP map request message class.
@@ -339,18 +341,18 @@
             // nonce -> 64 bits
             long nonce = byteBuf.readLong();
 
-            LispAfiAddress sourceEid = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress sourceEid = new AfiAddressReader().readFrom(byteBuf);
 
             // deserialize a collection of RLOC addresses
             List<LispAfiAddress> itrRlocs = Lists.newArrayList();
             for (int i = 0; i < irc + 1; i++) {
-                itrRlocs.add(new LispAfiAddress.AfiAddressReader().readFrom(byteBuf));
+                itrRlocs.add(new AfiAddressReader().readFrom(byteBuf));
             }
 
             // deserialize a collection of EID records
             List<LispEidRecord> eidRecords = Lists.newArrayList();
             for (int i = 0; i < recordCount; i++) {
-                eidRecords.add(new LispEidRecord.EidRecordReader().readFrom(byteBuf));
+                eidRecords.add(new EidRecordReader().readFrom(byteBuf));
             }
 
             return new DefaultRequestBuilder()
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 d933783..41d7583 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
@@ -21,10 +21,11 @@
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
 import org.onosproject.lisp.msg.types.LispAfiAddress;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 /**
  * LISP EID record section which is part of LISP map request message.
@@ -108,7 +109,7 @@
             // mask length -> 8 bits
             short maskLength = byteBuf.readUnsignedByte();
 
-            LispAfiAddress prefix = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress prefix = new AfiAddressReader().readFrom(byteBuf);
 
             return new LispEidRecord((byte) maskLength, prefix);
         }
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispLocatorRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispLocatorRecord.java
index e96a2af..a38527b 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispLocatorRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispLocatorRecord.java
@@ -16,8 +16,8 @@
 package org.onosproject.lisp.msg.protocols;
 
 import io.netty.buffer.ByteBuf;
-import org.onosproject.lisp.msg.exceptions.LispWriterException;
 import org.onosproject.lisp.msg.types.LispAfiAddress;
+import org.onosproject.lisp.msg.exceptions.LispWriterException;
 
 /**
  * LISP locator record section which is part of LISP map record.
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
index 6a33720..814760b 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/protocols/LispMessageReaderFactory.java
@@ -17,14 +17,13 @@
 
 import io.netty.buffer.ByteBuf;
 import org.onlab.util.ByteOperator;
-
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapReply.ReplyReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapNotify.NotifyReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRegister.RegisterReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispMapRequest.RequestReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispEncapsulatedControl.EcmReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispInfoRequest.InfoRequestReader;
-import static org.onosproject.lisp.msg.protocols.DefaultLispInfoReply.InfoReplyReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispEncapsulatedControl.EcmReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispInfoReply.InfoReplyReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispInfoRequest.InfoRequestReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapNotify.NotifyReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRegister.RegisterReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapReply.ReplyReader;
+import org.onosproject.lisp.msg.protocols.DefaultLispMapRequest.RequestReader;
 
 /**
  * A factory class which helps to instantiate LISP reader class.
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
index 0942431..c333236 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispAfiAddress.java
@@ -22,7 +22,13 @@
 
 import java.util.Objects;
 
-import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.*;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.IP4;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.IP6;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.NO_ADDRESS;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.DISTINGUISHED_NAME;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.MAC;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.LCAF;
+import static org.onosproject.lisp.msg.types.AddressFamilyIdentifierEnum.AS;
 
 /**
  * LISP Locator address typed by Address Family Identifier (AFI).
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 eb86b65..08326a5 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
@@ -20,6 +20,8 @@
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.types.LispIpv4Address.Ipv4AddressWriter;
+import org.onosproject.lisp.msg.types.LispIpv6Address.Ipv6AddressWriter;
 
 import java.util.List;
 import java.util.Objects;
@@ -189,8 +191,8 @@
             int lcafIndex = byteBuf.writerIndex();
             LispLcafAddress.serializeCommon(byteBuf, address);
 
-            LispIpv4Address.Ipv4AddressWriter v4Writer = new LispIpv4Address.Ipv4AddressWriter();
-            LispIpv6Address.Ipv6AddressWriter v6Writer = new LispIpv6Address.Ipv6AddressWriter();
+            Ipv4AddressWriter v4Writer = new Ipv4AddressWriter();
+            Ipv6AddressWriter v6Writer = new Ipv6AddressWriter();
 
             LispAfiAddress ipv4 = address.getAddresses().get(IPV4_ADDRESS_INDEX);
             LispAfiAddress ipv6 = address.getAddresses().get(IPV6_ADDRESS_INDEX);
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispNatLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispNatLcafAddress.java
index 7ce4e7a..bc2a6b4 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispNatLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispNatLcafAddress.java
@@ -277,7 +277,7 @@
         public LispNatLcafAddress readFrom(ByteBuf byteBuf)
                 throws LispParseError, LispReaderException {
 
-            LispLcafAddress lcafAddress = LispLcafAddress.deserializeCommon(byteBuf);
+            LispLcafAddress lcafAddress = deserializeCommon(byteBuf);
 
             short msUdpPortNumber = (short) byteBuf.readUnsignedShort();
             short etrUdpPortNumber = (short) byteBuf.readUnsignedShort();
@@ -288,7 +288,7 @@
 
             List<LispAfiAddress> rtrRlocAddresses = Lists.newArrayList();
 
-            while (byteBuf.readerIndex() - LispLcafAddress.COMMON_HEADER_SIZE < lcafAddress.getLength()) {
+            while (byteBuf.readerIndex() - COMMON_HEADER_SIZE < lcafAddress.getLength()) {
                 rtrRlocAddresses.add(new AfiAddressReader().readFrom(byteBuf));
             }
 
@@ -317,7 +317,7 @@
                 throws LispWriterException {
 
             int lcafIndex = byteBuf.writerIndex();
-            LispLcafAddress.serializeCommon(byteBuf, address);
+            serializeCommon(byteBuf, address);
 
             byteBuf.writeShort(address.getMsUdpPortNumber());
             byteBuf.writeShort(address.getEtrUdpPortNumber());
@@ -333,7 +333,7 @@
                 writer.writeTo(byteBuf, rtrRlocAddresses.get(i));
             }
 
-            LispLcafAddress.updateLength(lcafIndex, byteBuf);
+            updateLength(lcafIndex, byteBuf);
         }
     }
 }
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSegmentLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSegmentLcafAddress.java
index f6a715a..b38319f 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSegmentLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSegmentLcafAddress.java
@@ -19,6 +19,7 @@
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
 
 import java.util.Objects;
 
@@ -205,7 +206,7 @@
             byte idMaskLength = lcafAddress.getReserved2();
 
             int instanceId = (int) byteBuf.readUnsignedInt();
-            LispAfiAddress address = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress address = new AfiAddressReader().readFrom(byteBuf);
 
             return new SegmentAddressBuilder()
                     .withReserved1(lcafAddress.getReserved1())
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSourceDestLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSourceDestLcafAddress.java
index dd21127..d36b591 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSourceDestLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispSourceDestLcafAddress.java
@@ -19,6 +19,8 @@
 import org.onosproject.lisp.msg.exceptions.LispParseError;
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import java.util.Objects;
 
@@ -267,14 +269,14 @@
         @Override
         public LispSourceDestLcafAddress readFrom(ByteBuf byteBuf) throws LispParseError, LispReaderException {
 
-            LispLcafAddress lcafAddress = LispLcafAddress.deserializeCommon(byteBuf);
+            LispLcafAddress lcafAddress = deserializeCommon(byteBuf);
 
             short reserved = byteBuf.readShort();
             byte srcMaskLength = (byte) byteBuf.readUnsignedByte();
             byte dstMaskLength = (byte) byteBuf.readUnsignedByte();
 
-            LispAfiAddress srcPrefix = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
-            LispAfiAddress dstPrefix = new LispAfiAddress.AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress srcPrefix = new AfiAddressReader().readFrom(byteBuf);
+            LispAfiAddress dstPrefix = new AfiAddressReader().readFrom(byteBuf);
 
             return new SourceDestAddressBuilder()
                     .withReserved1(lcafAddress.getReserved1())
@@ -301,16 +303,16 @@
                 throws LispWriterException {
 
             int lcafIndex = byteBuf.writerIndex();
-            LispLcafAddress.serializeCommon(byteBuf, address);
+            serializeCommon(byteBuf, address);
 
             byteBuf.writeShort(address.getReserved());
             byteBuf.writeByte(address.getSrcMaskLength());
             byteBuf.writeByte(address.getDstMaskLength());
-            AfiAddressWriter writer = new LispAfiAddress.AfiAddressWriter();
+            AfiAddressWriter writer = new AfiAddressWriter();
             writer.writeTo(byteBuf, address.getSrcPrefix());
             writer.writeTo(byteBuf, address.getDstPrefix());
 
-            LispLcafAddress.updateLength(lcafIndex, byteBuf);
+            updateLength(lcafIndex, byteBuf);
         }
     }
 }
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
index 6a64c64..b944652 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeLcafAddress.java
@@ -27,6 +27,7 @@
 import java.util.Objects;
 
 import static com.google.common.base.MoreObjects.toStringHelper;
+import static org.onosproject.lisp.msg.types.LispLcafAddress.COMMON_HEADER_SIZE;
 
 /**
  * Traffic Engineering (TE) type LCAF address class.
@@ -134,7 +135,7 @@
             LispLcafAddress lcafAddress = LispLcafAddress.deserializeCommon(byteBuf);
 
             List<LispTeRecord> teRecords = Lists.newArrayList();
-            while (byteBuf.readerIndex() - LispLcafAddress.COMMON_HEADER_SIZE < lcafAddress.getLength()) {
+            while (byteBuf.readerIndex() - COMMON_HEADER_SIZE < lcafAddress.getLength()) {
                 teRecords.add(new LispTeRecord.TeRecordReader().readFrom(byteBuf));
             }
 
diff --git a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeRecord.java b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeRecord.java
index 63eb838..3a496d6 100644
--- a/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeRecord.java
+++ b/protocols/lisp/msg/src/main/java/org/onosproject/lisp/msg/types/LispTeRecord.java
@@ -21,6 +21,7 @@
 import org.onosproject.lisp.msg.exceptions.LispReaderException;
 import org.onosproject.lisp.msg.exceptions.LispWriterException;
 import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressReader;
+import org.onosproject.lisp.msg.types.LispAfiAddress.AfiAddressWriter;
 
 import java.util.Objects;
 
@@ -256,7 +257,7 @@
             byteBuf.writeByte((byte) (lookup + rlocProbe + strict));
 
             // RTR RLOC address
-            LispAfiAddress.AfiAddressWriter writer = new LispAfiAddress.AfiAddressWriter();
+            AfiAddressWriter writer = new AfiAddressWriter();
             writer.writeTo(byteBuf, record.rtrRlocAddress);
         }
     }