Skip to content
Snippets Groups Projects
Commit d230e509 authored by Shudong Zhou's avatar Shudong Zhou
Browse files

Downgrade packet parsing error message to trace

parent 0f77b289
No related branches found
No related tags found
No related merge requests found
......@@ -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());
......
......@@ -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));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment