diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/BGPLSNlri.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/BGPLSNlri.java
index 189edb8..201285d 100644
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/BGPLSNlri.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/BGPLSNlri.java
@@ -16,7 +16,7 @@
 package org.onosproject.bgpio.protocol;
 
 import org.onosproject.bgpio.exceptions.BGPParseException;
-import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.PROTOCOLTYPE;
+import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.ProtocolType;
 import org.onosproject.bgpio.types.RouteDistinguisher;
 
 /**
@@ -43,7 +43,7 @@
      * @return Protocol Id in Nlri
      * @throws BGPParseException while getting protocol ID
      */
-    PROTOCOLTYPE getProtocolId() throws BGPParseException;
+    ProtocolType getProtocolId() throws BGPParseException;
 
     /**
      * Returns Route distinguisher in Nlri.
diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPNodeLSNlriVer4.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPNodeLSNlriVer4.java
index 54837ee..d338975 100644
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPNodeLSNlriVer4.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPNodeLSNlriVer4.java
@@ -61,8 +61,8 @@
     /**
      * Enum to provide PROTOCOLTYPE.
      */
-    public enum PROTOCOLTYPE {
-        ISIS_LevelOne(1), ISIS_LevelTwo(2), OSPFv2(3), Direct(4), Static_Configuration(5), OSPFv3(6);
+    public enum ProtocolType {
+        ISIS_LEVEL_ONE(1), ISIS_LEVEL_TWO(2), OSPF_V2(3), DIRECT(4), STATIC_CONFIGURATION(5), OSPF_V3(6);
         int value;
 
         /**
@@ -70,7 +70,7 @@
          *
          * @param val protocol type
          */
-        PROTOCOLTYPE(int val) {
+        ProtocolType(int val) {
             value = val;
         }
 
@@ -180,20 +180,20 @@
     }
 
     @Override
-    public PROTOCOLTYPE getProtocolId() throws BGPParseException {
+    public ProtocolType getProtocolId() throws BGPParseException {
         switch (protocolId) {
         case Constants.ISIS_LEVELONE:
-            return PROTOCOLTYPE.ISIS_LevelOne;
+            return ProtocolType.ISIS_LEVEL_ONE;
         case Constants.ISIS_LEVELTWO:
-            return PROTOCOLTYPE.ISIS_LevelTwo;
+            return ProtocolType.ISIS_LEVEL_TWO;
         case Constants.OSPFV2:
-            return PROTOCOLTYPE.OSPFv2;
+            return ProtocolType.OSPF_V2;
         case Constants.DIRECT:
-            return PROTOCOLTYPE.Direct;
+            return ProtocolType.DIRECT;
         case Constants.STATIC_CONFIGURATION:
-            return PROTOCOLTYPE.Static_Configuration;
+            return ProtocolType.STATIC_CONFIGURATION;
         case Constants.OSPFV3:
-            return PROTOCOLTYPE.OSPFv3;
+            return ProtocolType.OSPF_V3;
         default:
             throw new BGPParseException(BGPErrorType.UPDATE_MESSAGE_ERROR, (byte) 0, null);
         }
diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPPrefixIPv4LSNlriVer4.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPPrefixIPv4LSNlriVer4.java
index 6d6f48b..854551f 100644
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPPrefixIPv4LSNlriVer4.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BGPPrefixIPv4LSNlriVer4.java
@@ -21,7 +21,7 @@
 import org.onosproject.bgpio.exceptions.BGPParseException;
 import org.onosproject.bgpio.protocol.BGPPrefixLSNlri;
 import org.onosproject.bgpio.protocol.NlriType;
-import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.PROTOCOLTYPE;
+import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.ProtocolType;
 import org.onosproject.bgpio.types.BGPValueType;
 import org.onosproject.bgpio.types.RouteDistinguisher;
 import org.onosproject.bgpio.util.Constants;
@@ -145,20 +145,20 @@
     }
 
     @Override
-    public PROTOCOLTYPE getProtocolId() throws BGPParseException {
+    public ProtocolType getProtocolId() throws BGPParseException {
         switch (protocolId) {
         case Constants.ISIS_LEVELONE:
-            return PROTOCOLTYPE.ISIS_LevelOne;
+            return ProtocolType.ISIS_LEVEL_ONE;
         case Constants.ISIS_LEVELTWO:
-            return PROTOCOLTYPE.ISIS_LevelTwo;
+            return ProtocolType.ISIS_LEVEL_TWO;
         case Constants.OSPFV2:
-            return PROTOCOLTYPE.OSPFv2;
+            return ProtocolType.OSPF_V2;
         case Constants.DIRECT:
-            return PROTOCOLTYPE.Direct;
+            return ProtocolType.DIRECT;
         case Constants.STATIC_CONFIGURATION:
-            return PROTOCOLTYPE.Static_Configuration;
+            return ProtocolType.STATIC_CONFIGURATION;
         case Constants.OSPFV3:
-            return PROTOCOLTYPE.OSPFv3;
+            return ProtocolType.OSPF_V3;
         default:
             throw new BGPParseException("protocol id not valid");
         }
diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpLinkLsNlriVer4.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpLinkLsNlriVer4.java
index 6455945..f7ab2e0 100755
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpLinkLsNlriVer4.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/BgpLinkLsNlriVer4.java
@@ -21,7 +21,7 @@
 import org.onosproject.bgpio.exceptions.BGPParseException;
 import org.onosproject.bgpio.protocol.BgpLinkLsNlri;
 import org.onosproject.bgpio.protocol.NlriType;
-import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.PROTOCOLTYPE;
+import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.ProtocolType;
 import org.onosproject.bgpio.types.BGPErrorType;
 import org.onosproject.bgpio.types.BGPValueType;
 import org.onosproject.bgpio.types.RouteDistinguisher;
@@ -140,20 +140,20 @@
     }
 
     @Override
-    public PROTOCOLTYPE getProtocolId() throws BGPParseException {
+    public ProtocolType getProtocolId() throws BGPParseException {
         switch (protocolId) {
         case Constants.ISIS_LEVELONE:
-            return PROTOCOLTYPE.ISIS_LevelOne;
+            return ProtocolType.ISIS_LEVEL_ONE;
         case Constants.ISIS_LEVELTWO:
-            return PROTOCOLTYPE.ISIS_LevelTwo;
+            return ProtocolType.ISIS_LEVEL_TWO;
         case Constants.OSPFV2:
-            return PROTOCOLTYPE.OSPFv2;
+            return ProtocolType.OSPF_V2;
         case Constants.DIRECT:
-            return PROTOCOLTYPE.Direct;
+            return ProtocolType.DIRECT;
         case Constants.STATIC_CONFIGURATION:
-            return PROTOCOLTYPE.Static_Configuration;
+            return ProtocolType.STATIC_CONFIGURATION;
         case Constants.OSPFV3:
-            return PROTOCOLTYPE.OSPFv3;
+            return ProtocolType.OSPF_V3;
         default:
             throw new BGPParseException(BGPErrorType.UPDATE_MESSAGE_ERROR, (byte) 0, null);
         }
@@ -207,4 +207,4 @@
                 .add("linkLSIdentifier", linkLSIdentifier)
                 .toString();
     }
-}
\ No newline at end of file
+}
diff --git a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/PathAttrNlriDetails.java b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/PathAttrNlriDetails.java
index f0f6b85..76d533f 100755
--- a/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/PathAttrNlriDetails.java
+++ b/bgp/bgpio/src/main/java/org/onosproject/bgpio/protocol/linkstate/PathAttrNlriDetails.java
@@ -19,7 +19,7 @@
 import java.util.List;
 import java.util.Objects;
 
-import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.PROTOCOLTYPE;
+import org.onosproject.bgpio.protocol.linkstate.BGPNodeLSNlriVer4.ProtocolType;
 import org.onosproject.bgpio.types.BGPValueType;
 
 import com.google.common.base.MoreObjects;
@@ -29,7 +29,7 @@
  */
 public class PathAttrNlriDetails {
     private List<BGPValueType> pathAttributes;
-    private PROTOCOLTYPE protocolID;
+    private ProtocolType protocolID;
     private long identifier;
 
     /**
@@ -55,7 +55,7 @@
      *
      * @param protocolID in linkstate nlri
      */
-    public void setProtocolID(PROTOCOLTYPE protocolID) {
+    public void setProtocolID(ProtocolType protocolID) {
         this.protocolID = protocolID;
     }
 
@@ -64,7 +64,7 @@
      *
      * @return protocolID
      */
-    public PROTOCOLTYPE protocolID() {
+    public ProtocolType protocolID() {
         return this.protocolID;
     }
 
@@ -132,4 +132,4 @@
                 .add("pathAttributes", pathAttributes)
                 .toString();
     }
-}
\ No newline at end of file
+}
