add java doc
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/util/MultiplePktInReasonUtil.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/util/MultiplePktInReasonUtil.java
index 09da5a6..a919f62 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/util/MultiplePktInReasonUtil.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/util/MultiplePktInReasonUtil.java
@@ -2,24 +2,45 @@
import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+
+import org.projectfloodlight.openflow.types.U64;
import org.projectfloodlight.openflow.protocol.OFBsnPktinFlag;
import org.projectfloodlight.openflow.protocol.OFPacketIn;
import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.protocol.match.MatchField;
+import org.projectfloodlight.openflow.protocol.match.Match;
import org.projectfloodlight.openflow.protocol.ver13.OFBsnPktinFlagSerializerVer13;
import org.projectfloodlight.openflow.types.OFMetadata;
+
public class MultiplePktInReasonUtil {
private MultiplePktInReasonUtil() {}
+ /**
+ * This function is used in BVS T5/6 to decode the multiple packet in
+ * reasons in Match.MetaData field.
+ * */
public static Set<OFBsnPktinFlag> getOFBsnPktinFlags(OFPacketIn pktIn) {
if(pktIn.getVersion() != OFVersion.OF_13) {
throw new IllegalArgumentException("multiple pkt in reasons are "
+ "only supported by BVS using "
+ "openflow 1.3");
}
- OFMetadata metaData = pktIn.getMatch().get(MatchField.METADATA);
- return OFBsnPktinFlagSerializerVer13.ofWireValue(metaData.getValue()
- .getValue());
+
+ Match match = pktIn.getMatch();
+ if(match == null) {
+ return ImmutableSet.<OFBsnPktinFlag>of();
+ }
+ OFMetadata metaData = match.get(MatchField.METADATA);
+ if(metaData == null) {
+ return ImmutableSet.<OFBsnPktinFlag>of();
+ }
+ U64 metaDataValue = metaData.getValue();
+ if(metaDataValue == null) {
+ return ImmutableSet.<OFBsnPktinFlag>of();
+ }
+ return OFBsnPktinFlagSerializerVer13.ofWireValue(metaDataValue
+ .getValue());
}
}