blob: 09da5a6255d188c3dfda3fe89451dca8e03cd2c6 [file] [log] [blame]
xinwud6a402f2014-04-22 15:43:58 -07001package org.projectfloodlight.openflow.util;
2
3import java.util.Set;
4
5import org.projectfloodlight.openflow.protocol.OFBsnPktinFlag;
6import org.projectfloodlight.openflow.protocol.OFPacketIn;
7import org.projectfloodlight.openflow.protocol.OFVersion;
8import org.projectfloodlight.openflow.protocol.match.MatchField;
9import org.projectfloodlight.openflow.protocol.ver13.OFBsnPktinFlagSerializerVer13;
10import org.projectfloodlight.openflow.types.OFMetadata;
11
12public class MultiplePktInReasonUtil {
13 private MultiplePktInReasonUtil() {}
14
15 public static Set<OFBsnPktinFlag> getOFBsnPktinFlags(OFPacketIn pktIn) {
16 if(pktIn.getVersion() != OFVersion.OF_13) {
17 throw new IllegalArgumentException("multiple pkt in reasons are "
18 + "only supported by BVS using "
19 + "openflow 1.3");
20 }
21 OFMetadata metaData = pktIn.getMatch().get(MatchField.METADATA);
22 return OFBsnPktinFlagSerializerVer13.ofWireValue(metaData.getValue()
23 .getValue());
24 }
25}