blob: 41c8adcd7038dc87a2fc3969842e34f01ed3879f [file] [log] [blame]
alshabibc4901cd2014-09-05 16:50:40 -07001package org.onlab.onos.of.controller;
2
3import org.onlab.packet.Ethernet;
4import org.projectfloodlight.openflow.protocol.OFPacketIn;
5import org.projectfloodlight.openflow.protocol.OFPacketOut;
6import org.projectfloodlight.openflow.types.OFPort;
7
alshabib638dc712014-09-05 18:03:45 -07008public final class DefaultPacketContext implements PacketContext {
alshabibc4901cd2014-09-05 16:50:40 -07009
10 private boolean free = true;
11 private boolean isBuilt = false;
12 private final OpenFlowSwitch sw;
13 private final OFPacketIn pktin;
14 private final OFPacketOut pktout = null;
15
16 private DefaultPacketContext(OpenFlowSwitch s, OFPacketIn pkt) {
17 this.sw = s;
18 this.pktin = pkt;
19 }
20
21 @Override
22 public void block() {
23 free = false;
24 }
25
26 @Override
27 public void send() {
28 if (free && isBuilt) {
29 sw.sendMsg(pktout);
30 }
31
32 }
33
34 @Override
35 public void build(OFPort outPort) {
36 isBuilt = true;
37
38 }
39
40 @Override
41 public void build(Ethernet ethFrame, OFPort outPort) {
42 // TODO Auto-generated method stub
43
44 }
45
46 @Override
47 public Ethernet parsed() {
48 // TODO Auto-generated method stub
49 return null;
50 }
51
52 @Override
53 public Dpid dpid() {
54 // TODO Auto-generated method stub
55 return null;
56 }
57
alshabib638dc712014-09-05 18:03:45 -070058 public static PacketContext packetContextFromPacketIn(OpenFlowSwitch s, OFPacketIn pkt) {
alshabibc4901cd2014-09-05 16:50:40 -070059 return new DefaultPacketContext(s, pkt);
60 }
61
62}