import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ProtocolNumberMatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ProtocolNumberMatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PseudoFieldMatchEntry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PseudoFieldMatchEntry.PseudoField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.PseudoFieldMatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TcMatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.TcMatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidMatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.VlanVidMatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.StandardMatchType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ArpOp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.UdpSrc;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanPcp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.VlanVid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntries;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.MatchEntriesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.Match;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.match.grouping.MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntries;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.fields.grouping.MatchEntriesBuilder;
import com.google.common.base.Joiner;
break;
case 13:
matchEntriesBuilder.setOxmMatchField(TcpSrc.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 14:
matchEntriesBuilder.setOxmMatchField(TcpDst.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 15:
matchEntriesBuilder.setOxmMatchField(UdpSrc.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 16:
matchEntriesBuilder.setOxmMatchField(UdpDst.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 17:
matchEntriesBuilder.setOxmMatchField(SctpSrc.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 18:
matchEntriesBuilder.setOxmMatchField(SctpDst.class);
- addPortAugmentation(null, in);
+ addPortAugmentation(matchEntriesBuilder, in);
break;
case 19:
matchEntriesBuilder.setOxmMatchField(Icmpv4Type.class);
final Boolean HOP = ((bitmap) & (1<<6)) != 0;
final Boolean UNREP = ((bitmap) & (1<<7)) != 0;
final Boolean UNSEQ = ((bitmap) & (1<<8)) != 0;
- pseudoBuilder.setPseudoField(new PseudoField(AUTH, DEST, ESP, FRAG, HOP, NONEXT, ROUTER, UNREP, UNSEQ));
+ pseudoBuilder.setPseudoField(new Ipv6ExthdrFlags(AUTH, DEST, ESP, FRAG, HOP, NONEXT, ROUTER, UNREP, UNSEQ));
matchEntriesBuilder.addAugmentation(PseudoFieldMatchEntry.class, pseudoBuilder.build());
if (hasMask) {
addMaskAugmentation(matchEntriesBuilder, in, EncodeConstants.SIZE_OF_SHORT_IN_BYTES);
return matchEntriesList;
}
+ /** Decodes oxm ids
+ * @param in input ByteBuf
+ * @param matchLength match entries length
+ * @return list of match ids
+ */
+ public static List<MatchEntries> createMatchIds(ByteBuf in, int matchLength) {
+ return MatchIdsDeserializer.createOxmIds(in, matchLength);
+ }
+
private static void addMaskAugmentation(MatchEntriesBuilder builder, ByteBuf in, int matchEntryLength) {
MaskMatchEntryBuilder maskBuilder = new MaskMatchEntryBuilder();
byte[] mask = new byte[matchEntryLength];
private static void addMetadataAugmentation(MatchEntriesBuilder builder, ByteBuf in) {
MetadataMatchEntryBuilder metadata = new MetadataMatchEntryBuilder();
- byte[] metadataBytes = new byte[Long.SIZE/Byte.SIZE];
+ byte[] metadataBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
in.readBytes(metadataBytes);
metadata.setMetadata(metadataBytes);
builder.addAugmentation(MetadataMatchEntry.class, metadata.build());