diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OfdpaGroupHandlerUtility.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OfdpaGroupHandlerUtility.java
index 7b8d8b2..f9cf3d0 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OfdpaGroupHandlerUtility.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/OfdpaGroupHandlerUtility.java
@@ -65,28 +65,28 @@
      * L2 Flood Groups have <4bits-4><12bits-vlanId><16bits-index>
      * L3 VPN Groups have <4bits-9><4bits-2><24bits-index>
      */
-    protected static final int L2_INTERFACE_TYPE = 0x00000000;
-    protected static final int L3_INTERFACE_TYPE = 0x50000000;
-    protected static final int L3_UNICAST_TYPE = 0x20000000;
-    protected static final int L3_MULTICAST_TYPE = 0x60000000;
-    protected static final int MPLS_INTERFACE_TYPE = 0x90000000;
-    protected static final int MPLS_L3VPN_SUBTYPE = 0x92000000;
-    protected static final int L3_ECMP_TYPE = 0x70000000;
-    protected static final int L2_FLOOD_TYPE = 0x40000000;
+    static final int L2_INTERFACE_TYPE = 0x00000000;
+    static final int L3_INTERFACE_TYPE = 0x50000000;
+    static final int L3_UNICAST_TYPE = 0x20000000;
+    static final int L3_MULTICAST_TYPE = 0x60000000;
+    static final int MPLS_INTERFACE_TYPE = 0x90000000;
+    static final int MPLS_L3VPN_SUBTYPE = 0x92000000;
+    static final int L3_ECMP_TYPE = 0x70000000;
+    static final int L2_FLOOD_TYPE = 0x40000000;
 
-    protected static final int TYPE_MASK = 0x0fffffff;
-    protected static final int SUBTYPE_MASK = 0x00ffffff;
-    protected static final int TYPE_VLAN_MASK = 0x0000ffff;
+    static final int TYPE_MASK = 0x0fffffff;
+    static final int SUBTYPE_MASK = 0x00ffffff;
+    static final int TYPE_VLAN_MASK = 0x0000ffff;
 
-    protected static final int THREE_BIT_MASK = 0x0fff;
-    protected static final int FOUR_BIT_MASK = 0xffff;
-    protected static final int PORT_LEN = 16;
+    static final int THREE_BIT_MASK = 0x0fff;
+    static final int FOUR_BIT_MASK = 0xffff;
+    static final int PORT_LEN = 16;
 
-    protected static final int PORT_LOWER_BITS_MASK = 0x3f;
-    protected static final long PORT_HIGHER_BITS_MASK = ~PORT_LOWER_BITS_MASK;
+    static final int PORT_LOWER_BITS_MASK = 0x3f;
+    static final long PORT_HIGHER_BITS_MASK = ~PORT_LOWER_BITS_MASK;
 
-    protected static final String HEX_PREFIX = "0x";
-    protected static final Logger log = getLogger(OfdpaGroupHandlerUtility.class);
+    static final String HEX_PREFIX = "0x";
+    private static final Logger log = getLogger(OfdpaGroupHandlerUtility.class);
 
     private OfdpaGroupHandlerUtility() {
         // Utility classes should not have a public or default constructor.
@@ -98,7 +98,7 @@
      * @param tt the treatment
      * @return the PortNumber for the outport or null
      */
-    protected static PortNumber readOutPortFromTreatment(TrafficTreatment tt) {
+    static PortNumber readOutPortFromTreatment(TrafficTreatment tt) {
         for (Instruction ins : tt.allInstructions()) {
             if (ins.type() == Instruction.Type.OUTPUT) {
                 return ((Instructions.OutputInstruction) ins).port();
@@ -113,7 +113,7 @@
      * @param tt the traffic treatment
      * @return an integer representing the MPLS label-id, or -1 if not found
      */
-    protected static int readLabelFromTreatment(TrafficTreatment tt) {
+    static int readLabelFromTreatment(TrafficTreatment tt) {
         for (Instruction ins : tt.allInstructions()) {
             if (ins.type() == Instruction.Type.L2MODIFICATION) {
                 L2ModificationInstruction insl2 = (L2ModificationInstruction) ins;
@@ -295,7 +295,7 @@
      * @param bucketType group bucket type
      * @return list of group bucket generate from group information
      */
-    protected static List<GroupBucket> generateNextGroupBuckets(List<GroupInfo> groupInfos,
+    static List<GroupBucket> generateNextGroupBuckets(List<GroupInfo> groupInfos,
                                                        GroupDescription.Type bucketType) {
         List<GroupBucket> newBuckets = Lists.newArrayList();
 
@@ -525,7 +525,7 @@
     }
 
     public static class GroupChecker implements Runnable {
-        protected final Logger log = getLogger(getClass());
+        final Logger log = getLogger(getClass());
         private Ofdpa2GroupHandler groupHandler;
 
         public GroupChecker(Ofdpa2GroupHandler groupHandler) {
diff --git a/drivers/juniper/src/main/java/org/onosproject/drivers/juniper/JuniperUtils.java b/drivers/juniper/src/main/java/org/onosproject/drivers/juniper/JuniperUtils.java
index 89ec2e3..f8fb3e4 100644
--- a/drivers/juniper/src/main/java/org/onosproject/drivers/juniper/JuniperUtils.java
+++ b/drivers/juniper/src/main/java/org/onosproject/drivers/juniper/JuniperUtils.java
@@ -531,7 +531,7 @@
     /**
      * Device representation of the adjacency at the IP Layer.
      */
-    protected static final class LinkAbstraction {
+    static final class LinkAbstraction {
         protected String localPortName;
         protected ChassisId remoteChassisId;
         protected long remotePortIndex;
@@ -543,7 +543,7 @@
         }
     }
 
-    protected enum OperationType {
+    enum OperationType {
         ADD,
         REMOVE,
     }
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAppDataAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAppDataAddressCodec.java
index c82b98f..d2482fd 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAppDataAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAppDataAddressCodec.java
@@ -28,13 +28,13 @@
  */
 public final class LispAppDataAddressCodec extends JsonCodec<LispAppDataAddress> {
 
-    protected static final String PROTOCOL = "protocol";
-    protected static final String IP_TOS = "ipTos";
-    protected static final String LOCAL_PORT_LOW = "localPortLow";
-    protected static final String LOCAL_PORT_HIGH = "localPortHigh";
-    protected static final String REMOTE_PORT_LOW = "remotePortLow";
-    protected static final String REMOTE_PORT_HIGH = "remotePortHigh";
-    protected static final String ADDRESS = "address";
+    static final String PROTOCOL = "protocol";
+    static final String IP_TOS = "ipTos";
+    static final String LOCAL_PORT_LOW = "localPortLow";
+    static final String LOCAL_PORT_HIGH = "localPortHigh";
+    static final String REMOTE_PORT_LOW = "remotePortLow";
+    static final String REMOTE_PORT_HIGH = "remotePortHigh";
+    static final String ADDRESS = "address";
 
     @Override
     public ObjectNode encode(LispAppDataAddress address, CodecContext context) {
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAsAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAsAddressCodec.java
index 3e5739a..ca78cb7 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAsAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispAsAddressCodec.java
@@ -29,8 +29,8 @@
  */
 public final class LispAsAddressCodec extends JsonCodec<LispAsAddress> {
 
-    protected static final String AS_NUMBER = "asNumber";
-    protected static final String ADDRESS = "address";
+    static final String AS_NUMBER = "asNumber";
+    static final String ADDRESS = "address";
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispAsAddress";
 
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispGcAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispGcAddressCodec.java
index cbec44c..4baaa80 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispGcAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispGcAddressCodec.java
@@ -29,16 +29,16 @@
  */
 public final class LispGcAddressCodec extends JsonCodec<LispGcAddress> {
 
-    protected static final String NORTH = "north";
-    protected static final String LATITUDE_DEGREE = "latitudeDegree";
-    protected static final String LATITUDE_MINUTE = "latitudeMinute";
-    protected static final String LATITUDE_SECOND = "latitudeSecond";
-    protected static final String EAST = "east";
-    protected static final String LONGITUDE_DEGREE = "longitudeDegree";
-    protected static final String LONGITUDE_MINUTE = "longitudeMinute";
-    protected static final String LONGITUDE_SECOND = "longitudeSecond";
-    protected static final String ALTITUDE = "altitude";
-    protected static final String ADDRESS = "address";
+    static final String NORTH = "north";
+    static final String LATITUDE_DEGREE = "latitudeDegree";
+    static final String LATITUDE_MINUTE = "latitudeMinute";
+    static final String LATITUDE_SECOND = "latitudeSecond";
+    static final String EAST = "east";
+    static final String LONGITUDE_DEGREE = "longitudeDegree";
+    static final String LONGITUDE_MINUTE = "longitudeMinute";
+    static final String LONGITUDE_SECOND = "longitudeSecond";
+    static final String ALTITUDE = "altitude";
+    static final String ADDRESS = "address";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispGcAddress";
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNatAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNatAddressCodec.java
index 4ee2fe1..8fac849 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNatAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNatAddressCodec.java
@@ -34,12 +34,12 @@
  */
 public final class LispNatAddressCodec extends JsonCodec<LispNatAddress> {
 
-    protected static final String MS_UDP_PORT_NUMBER = "msUdpPortNumber";
-    protected static final String ETR_UDP_PORT_NUMBER = "etrUdpPortNumber";
-    protected static final String GLOBAL_ETR_RLOC_ADDRESS = "globalEtrRlocAddress";
-    protected static final String MS_RLOC_ADDRESS = "msRlocAddress";
-    protected static final String PRIVATE_ETR_RLOC_ADDRESS = "privateEtrRlocAddress";
-    protected static final String RTR_RLOC_ADDRESSES = "rtrRlocAddresses";
+    static final String MS_UDP_PORT_NUMBER = "msUdpPortNumber";
+    static final String ETR_UDP_PORT_NUMBER = "etrUdpPortNumber";
+    static final String GLOBAL_ETR_RLOC_ADDRESS = "globalEtrRlocAddress";
+    static final String MS_RLOC_ADDRESS = "msRlocAddress";
+    static final String PRIVATE_ETR_RLOC_ADDRESS = "privateEtrRlocAddress";
+    static final String RTR_RLOC_ADDRESSES = "rtrRlocAddresses";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispListAddress";
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNonceAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNonceAddressCodec.java
index 0c84628..54449c1 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNonceAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispNonceAddressCodec.java
@@ -29,8 +29,8 @@
  */
 public final class LispNonceAddressCodec extends JsonCodec<LispNonceAddress> {
 
-    protected static final String NONCE = "nonce";
-    protected static final String ADDRESS = "address";
+    static final String NONCE = "nonce";
+    static final String ADDRESS = "address";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispGcAddress";
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSegmentAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSegmentAddressCodec.java
index be8a5f1..b760991 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSegmentAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSegmentAddressCodec.java
@@ -29,8 +29,8 @@
  */
 public final class LispSegmentAddressCodec extends JsonCodec<LispSegmentAddress> {
 
-    protected static final String INSTANCE_ID = "instanceId";
-    protected static final String ADDRESS = "address";
+    static final String INSTANCE_ID = "instanceId";
+    static final String ADDRESS = "address";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispSegmentAddress";
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSrcDstAddressCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSrcDstAddressCodec.java
index 07a0fca..e9b54a8 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSrcDstAddressCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispSrcDstAddressCodec.java
@@ -29,10 +29,10 @@
  */
 public final class LispSrcDstAddressCodec extends JsonCodec<LispSrcDstAddress> {
 
-    protected static final String SRC_MASK_LENGTH = "srcMaskLength";
-    protected static final String DST_MASK_LENGTH = "dstMaskLength";
-    protected static final String SRC_PREFIX = "srcPrefix";
-    protected static final String DST_PREFIX = "dstPrefix";
+    static final String SRC_MASK_LENGTH = "srcMaskLength";
+    static final String DST_MASK_LENGTH = "dstMaskLength";
+    static final String SRC_PREFIX = "srcPrefix";
+    static final String DST_PREFIX = "dstPrefix";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispSrcDstAddress";
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispTeRecordCodec.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispTeRecordCodec.java
index dd60b2e..237a404 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispTeRecordCodec.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/codec/LispTeRecordCodec.java
@@ -29,10 +29,10 @@
  */
 public final class LispTeRecordCodec extends JsonCodec<LispTeAddress.TeRecord> {
 
-    protected static final String LOOKUP = "lookup";
-    protected static final String RLOC_PROBE = "rlocProbe";
-    protected static final String STRICT = "strict";
-    protected static final String ADDRESS = "address";
+    static final String LOOKUP = "lookup";
+    static final String RLOC_PROBE = "rlocProbe";
+    static final String STRICT = "strict";
+    static final String ADDRESS = "address";
 
     private static final String MISSING_MEMBER_MESSAGE =
                                 " member is required in LispTeRecord";
