Skip to content
Snippets Groups Projects
Commit e37e4de9 authored by AndreMantas's avatar AndreMantas
Browse files

Update OFMessageUtils.java

Added private void writePacketOutForPacketIn(IOFSwitch sw, OFPacketIn packetInMessage, OFPort egressPort) from net.floodlightcontroller.learningswitch.LearningSwitch
parent 31bf08a3
No related branches found
No related tags found
No related merge requests found
......@@ -37,4 +37,41 @@ public class OFMessageUtils {
OFMessage.Builder mb = b.createBuilder().setXid(a.getXid());
return a.equals(mb.build());
}
/**
* Writes an OFPacketOut message to a switch.
*
* @param sw
* The switch to write the PacketOut to.
* @param packetInMessage
* The corresponding PacketIn.
* @param egressPort
* The switchport to output the PacketOut.
*/
private void writePacketOutForPacketIn(IOFSwitch sw,
OFPacketIn packetInMessage, OFPort egressPort) {
OFPacketOut.Builder pob = sw.getOFFactory().buildPacketOut();
// Set buffer_id, in_port, actions_len
pob.setBufferId(packetInMessage.getBufferId());
pob.setInPort(packetInMessage.getVersion().compareTo(OFVersion.OF_12) < 0 ? packetInMessage
.getInPort() : packetInMessage.getMatch().get(
MatchField.IN_PORT));
// set actions
List<OFAction> actions = new ArrayList<OFAction>(1);
actions.add(sw.getOFFactory().actions().buildOutput()
.setPort(egressPort).setMaxLen(0xffFFffFF).build());
pob.setActions(actions);
// set data - only if buffer_id == -1
if (packetInMessage.getBufferId() == OFBufferId.NO_BUFFER) {
byte[] packetData = packetInMessage.getData();
pob.setData(packetData);
}
// and write it out
sw.write(pob.build());
}
}
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