Skip to content
Snippets Groups Projects
Commit 09d91df4 authored by Ryan Izard's avatar Ryan Izard
Browse files

Ignore packet-in messages in the WaitFeaturesReplyState.

parent 0e1b242b
No related branches found
No related tags found
No related merge requests found
...@@ -46,7 +46,9 @@ import org.projectfloodlight.openflow.protocol.OFHello; ...@@ -46,7 +46,9 @@ import org.projectfloodlight.openflow.protocol.OFHello;
import org.projectfloodlight.openflow.protocol.OFHelloElem; import org.projectfloodlight.openflow.protocol.OFHelloElem;
import org.projectfloodlight.openflow.protocol.OFHelloElemVersionbitmap; import org.projectfloodlight.openflow.protocol.OFHelloElemVersionbitmap;
import org.projectfloodlight.openflow.protocol.OFMessage; import org.projectfloodlight.openflow.protocol.OFMessage;
import org.projectfloodlight.openflow.protocol.OFPacketIn;
import org.projectfloodlight.openflow.protocol.OFPortStatus; import org.projectfloodlight.openflow.protocol.OFPortStatus;
import org.projectfloodlight.openflow.protocol.OFType;
import org.projectfloodlight.openflow.protocol.OFVersion; import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.protocol.ver13.OFHelloElemTypeSerializerVer13; import org.projectfloodlight.openflow.protocol.ver13.OFHelloElemTypeSerializerVer13;
import org.projectfloodlight.openflow.protocol.ver14.OFHelloElemTypeSerializerVer14; import org.projectfloodlight.openflow.protocol.ver14.OFHelloElemTypeSerializerVer14;
...@@ -122,7 +124,7 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { ...@@ -122,7 +124,7 @@ class OFChannelHandler extends IdleStateAwareChannelHandler {
// we only expect features reply in the WAIT_FEATURES_REPLY state // we only expect features reply in the WAIT_FEATURES_REPLY state
illegalMessageReceived(m); illegalMessageReceived(m);
} }
void processOFPortStatus(OFPortStatus m) { void processOFPortStatus(OFPortStatus m) {
unhandledMessageReceived(m); unhandledMessageReceived(m);
} }
...@@ -419,7 +421,7 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { ...@@ -419,7 +421,7 @@ class OFChannelHandler extends IdleStateAwareChannelHandler {
super.processOFHello(m); /* Versions don't match as they should; abort */ super.processOFHello(m); /* Versions don't match as they should; abort */
} }
} }
@Override @Override
void processOFPortStatus(OFPortStatus m) { void processOFPortStatus(OFPortStatus m) {
log.warn("Ignoring PORT_STATUS message from {} during OpenFlow channel establishment. Ports will be explicitly queried in a later state.", channel.getRemoteAddress()); log.warn("Ignoring PORT_STATUS message from {} during OpenFlow channel establishment. Ports will be explicitly queried in a later state.", channel.getRemoteAddress());
...@@ -429,6 +431,15 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { ...@@ -429,6 +431,15 @@ class OFChannelHandler extends IdleStateAwareChannelHandler {
void enterState() throws IOException { void enterState() throws IOException {
sendFeaturesRequest(); sendFeaturesRequest();
} }
@Override
void processOFMessage(OFMessage m) throws IOException {
if (m.getType().equals(OFType.PACKET_IN)) {
log.warn("Ignoring PACKET_IN message from {} during OpenFlow channel establishment.", channel.getRemoteAddress());
} else {
super.processOFMessage(m);
}
}
}; };
/** /**
...@@ -856,8 +867,8 @@ class OFChannelHandler extends IdleStateAwareChannelHandler { ...@@ -856,8 +867,8 @@ class OFChannelHandler extends IdleStateAwareChannelHandler {
// Send initial hello message // Send initial hello message
List<OFHelloElem> he = new ArrayList<OFHelloElem>(); List<OFHelloElem> he = new ArrayList<OFHelloElem>();
he.add(factory.buildHelloElemVersionbitmap() he.add(factory.buildHelloElemVersionbitmap()
.setBitmaps(ofBitmaps) .setBitmaps(ofBitmaps)
.build()); .build());
OFHello.Builder builder = factory.buildHello() OFHello.Builder builder = factory.buildHello()
.setXid(handshakeTransactionIds--) .setXid(handshakeTransactionIds--)
.setElements(he); .setElements(he);
......
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