diff --git a/src/main/java/net/floodlightcontroller/packet/Ethernet.java b/src/main/java/net/floodlightcontroller/packet/Ethernet.java
index 41f6e56752c1ce0084a638999a02de8f6b2bd91e..4fc2380762a5c71e019886cb6c0da82e6b84fc19 100644
--- a/src/main/java/net/floodlightcontroller/packet/Ethernet.java
+++ b/src/main/java/net/floodlightcontroller/packet/Ethernet.java
@@ -22,7 +22,6 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
-import net.floodlightcontroller.core.annotations.LogMessageDoc;
 import net.floodlightcontroller.util.MACAddress;
 import org.openflow.util.HexString;
 
@@ -229,12 +228,6 @@ public class Ethernet extends BasePacket {
         return data;
     }
 
-    @LogMessageDoc(level="INFO",
-            message="Failed to parse ethernet packet payload",
-            explanation="Was unable to parse ethernet payload, often caused " +
-                    "by packet truncation. Packet is forwarded as a plain " +
-                    "ethernet packet.",
-            recommendation=LogMessageDoc.GENERIC_ACTION)
     @Override
     public IPacket deserialize(byte[] data, int offset, int length) {
         if (length <= 16)  // Ethernet packet minium should be 60, this is reasonable
@@ -270,12 +263,13 @@ public class Ethernet extends BasePacket {
                 payload = clazz.newInstance();
                 this.payload = payload.deserialize(data, bb.position(), bb.limit()-bb.position());
             } catch (Exception e) {
-                log.info("Failed to parse ethernet packet {}->{} payload as {}," +
-                         " treat as plain ethernet packet",
-                         new Object[] {this.sourceMACAddress, this.destinationMACAddress,
-                                       clazz.getClass().getName()});
-                if (log.isDebugEnabled()) {
-                    log.debug("Exception from parsing {}", e);
+                if (log.isTraceEnabled()) {
+                    log.trace("Failed to parse ethernet packet {}->{}" +
+                            " payload as {}, treat as plain ethernet packet",
+                            new Object[] {this.sourceMACAddress,
+                                          this.destinationMACAddress,
+                                          clazz.getClass().getName()});
+                    log.trace("Exception from parsing {}", e);
                 }
                 payload = new Data();
                 this.payload = payload.deserialize(data, bb.position(), bb.limit()-bb.position());
diff --git a/src/main/java/net/floodlightcontroller/packet/IPv4.java b/src/main/java/net/floodlightcontroller/packet/IPv4.java
index 461d24df972f84a1b6bd3e1d26bb1e4689f327b7..507cef88cb408c8af5c4301c3b5f925177061814 100644
--- a/src/main/java/net/floodlightcontroller/packet/IPv4.java
+++ b/src/main/java/net/floodlightcontroller/packet/IPv4.java
@@ -26,8 +26,6 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
-import net.floodlightcontroller.core.annotations.LogMessageDoc;
-
 /**
  * @author David Erickson (daviderickson@cs.stanford.edu)
  *
@@ -60,6 +58,7 @@ public class IPv4 extends BasePacket {
     protected byte[] options;
 
     protected boolean isTruncated;
+    protected boolean isFragment;
 
     /**
      * Default constructor that sets the version to 4.
@@ -68,6 +67,7 @@ public class IPv4 extends BasePacket {
         super();
         this.version = 4;
         isTruncated = false;
+        isFragment = false;
     }
 
     /**
@@ -129,6 +129,14 @@ public class IPv4 extends BasePacket {
         this.isTruncated = isTruncated;
     }
 
+    public boolean isFragment() {
+        return isFragment;
+    }
+
+    public void setFragment(boolean isFrag) {
+        this.isFragment = isFrag;
+    }
+
     /**
      * @param identification the identification to set
      */
@@ -336,11 +344,6 @@ public class IPv4 extends BasePacket {
         return data;
     }
 
-    @LogMessageDoc(level="INFO",
-            message="IP fragment detected",
-            explanation="Packet in is an IP fragment. Controller forwards " +
-                    "it using IP header only. Transport headers are ignored.",
-            recommendation=LogMessageDoc.GENERIC_ACTION)
     @Override
     public IPacket deserialize(byte[] data, int offset, int length) {
         ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
@@ -368,8 +371,8 @@ public class IPv4 extends BasePacket {
         }
 
         IPacket payload;
-        boolean is_frag = ((this.flags & 0x1) != 0) || (this.fragmentOffset != 0);
-        if (!is_frag && IPv4.protocolClassMap.containsKey(this.protocol)) {
+        isFragment = ((this.flags & 0x1) != 0) || (this.fragmentOffset != 0);
+        if (!isFragment && IPv4.protocolClassMap.containsKey(this.protocol)) {
             Class<? extends IPacket> clazz = IPv4.protocolClassMap.get(this.protocol);
             try {
                 payload = clazz.newInstance();
@@ -377,8 +380,8 @@ public class IPv4 extends BasePacket {
                 throw new RuntimeException("Error parsing payload for IPv4 packet", e);
             }
         } else {
-            if (is_frag) {
-                log.info("IPv4 fragment detected {}->{}, forward using IP header only",
+            if (log.isTraceEnabled() && isFragment) {
+                log.trace("IPv4 fragment detected {}->{}, forward using IP header only",
                         fromIPv4Address(this.sourceAddress),
                         fromIPv4Address(this.destinationAddress));
             }