diff --git a/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpdu.java b/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpdu.java
index fb67401..b76bc9b 100644
--- a/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpdu.java
+++ b/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpdu.java
@@ -28,13 +28,13 @@
 public class EAPOLMkpdu extends BasePacket {
 
     // Parameter Sets.
-    protected Map<Byte, IPacket> parameterSets = new LinkedHashMap<>();
+    private Map<Byte, IPacket> parameterSets = new LinkedHashMap<>();
 
     /*
      * Parameter Serialization Order.
      * IEEE 802.1x Clause 11.11.3.
      */
-    public static byte[] parametersetSerializerKeyList = new byte[]{
+    private static byte[] parametersetSerializerKeyList = new byte[]{
             EAPOLMkpduParameterSet.PARAMETERSET_TYPE_BASIC,
             EAPOLMkpduParameterSet.PARAMETERSET_TYPE_LIVE_PEER_LIST,
             EAPOLMkpduParameterSet.PARAMETERSET_TYPE_POTENTIAL_PEER_LIST,
@@ -47,7 +47,7 @@
 
      // Various Parameter Set Deserializers.
 
-    public static final Map<Byte, Deserializer<? extends IPacket>> PARAMETERSET_DESERIALIZER_MAP =
+    private static final Map<Byte, Deserializer<? extends IPacket>> PARAMETERSET_DESERIALIZER_MAP =
             new LinkedHashMap<>();
 
     static {
diff --git a/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpduPeerListParameterSet.java b/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpduPeerListParameterSet.java
index 793b638..32c549f 100644
--- a/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpduPeerListParameterSet.java
+++ b/utils/misc/src/main/java/org/onlab/packet/EAPOLMkpduPeerListParameterSet.java
@@ -47,12 +47,12 @@
     }
 
     // Peer List Types
-    public static byte peerListTypeLive = 1;
-    public static byte peerListTypePotential = 2;
+    private static final byte PEER_LIST_TYPE_LIVE = 1;
+    private static final byte PEER_LIST_TYPE_POTENTIAL = 2;
 
     // Type for distinguishing Live & Potential Lists.
-    protected byte peerListType = 1;
-    protected short bodyLength;
+    private byte peerListType = 1;
+    private short bodyLength;
 
     //Members
     protected List<MemberDetails> members = new ArrayList<>();
@@ -146,8 +146,8 @@
      *                     and potential peer lists
      */
     public void setPeerListType(byte peerListType) {
-        if ((peerListType != EAPOLMkpduPeerListParameterSet.peerListTypeLive) &&
-                (peerListType != EAPOLMkpduPeerListParameterSet.peerListTypePotential)) {
+        if ((peerListType != EAPOLMkpduPeerListParameterSet.PEER_LIST_TYPE_LIVE) &&
+                (peerListType != EAPOLMkpduPeerListParameterSet.PEER_LIST_TYPE_POTENTIAL)) {
             throw new IllegalArgumentException("Unknown PeerList Type specified.");
         }
         this.peerListType = peerListType;
