*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
+import static java.util.Objects.requireNonNull;
+
import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
*/
public abstract class AbstractOxmMatchEntryDeserializer
implements HeaderDeserializer<MatchEntry>, OFDeserializer<MatchEntry> {
+ private final @NonNull Class<? extends OxmClassBase> oxmClass;
+ private final @NonNull Class<? extends MatchField> oxmField;
+
+ protected AbstractOxmMatchEntryDeserializer(final Class<? extends OxmClassBase> oxmClass,
+ final Class<? extends MatchField> oxmField) {
+ this.oxmClass = requireNonNull(oxmClass);
+ this.oxmField = requireNonNull(oxmField);
+ }
+
+ protected AbstractOxmMatchEntryDeserializer(final Class<? extends MatchField> oxmField) {
+ this(OpenflowBasicClass.class, oxmField);
+ }
+
@Override
- public MatchEntry deserializeHeader(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
+ public final MatchEntry deserialize(final ByteBuf input) {
+ final MatchEntryBuilder builder = processHeader(input);
+ deserialize(input, builder);
return builder.build();
}
- /**
- * Returns the oxm_field class.
- */
- protected abstract Class<? extends MatchField> getOxmField();
+ protected abstract void deserialize(ByteBuf input, MatchEntryBuilder builder);
- /**
- * Returns the oxm_class class.
- */
- protected abstract Class<? extends OxmClassBase> getOxmClass();
+ @Override
+ public final MatchEntry deserializeHeader(final ByteBuf input) {
+ return processHeader(input).build();
+ }
/**
* Prepares match entry header - sets oxm_class, oxm_field, hasMask
* + sets the buffer.readerIndex() to the end of match entry
* - where augmentation starts.
*
- * @param oxmClass oxm class type
- * @param oxmField oxm field type
* @param input input bytebuf
* @return MatchEntriesBuilder which can be filled with MatchEntry augmentation
*/
- protected MatchEntryBuilder processHeader(final Class<? extends OxmClassBase> oxmClass,
- final Class<? extends MatchField> oxmField, final ByteBuf input) {
- MatchEntryBuilder builder = new MatchEntryBuilder();
- builder.setOxmClass(oxmClass);
+ protected final MatchEntryBuilder processHeader(final ByteBuf input) {
// skip oxm_class (provided)
input.skipBytes(Short.BYTES);
- builder.setOxmMatchField(oxmField);
- boolean hasMask = (input.readUnsignedByte() & 1) != 0;
- builder.setHasMask(hasMask);
+ final MatchEntryBuilder builder = new MatchEntryBuilder().setOxmClass(oxmClass).setOxmMatchField(oxmField)
+ .setHasMask((input.readUnsignedByte() & 1) != 0);
// skip match entry length - not needed
input.skipBytes(Byte.BYTES);
return builder;
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpOp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpOpCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.op._case.ArpOpBuilder;
* @author michal.polkorab
*/
public class OxmArpOpDeserializer extends AbstractOxmMatchEntryDeserializer {
-
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addArpOpValue(input, builder);
- return builder.build();
+ public OxmArpOpDeserializer() {
+ super(ArpOp.class);
}
- private static void addArpOpValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new ArpOpCaseBuilder()
.setArpOp(new ArpOpBuilder().setOpCode(readUint16(input)).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return ArpOp.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSha;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.sha._case.ArpShaBuilder;
* @author michal.polkorab
*/
public class OxmArpShaDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addArpShaValue(input, builder);
- return builder.build();
+ public OxmArpShaDeserializer() {
+ super(ArpSha.class);
}
- private static void addArpShaValue(final ByteBuf input, final MatchEntryBuilder builder) {
- ArpShaCaseBuilder caseBuilder = new ArpShaCaseBuilder();
- ArpShaBuilder shaBuilder = new ArpShaBuilder();
- shaBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final ArpShaBuilder shaBuilder = new ArpShaBuilder()
+ .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
if (builder.isHasMask()) {
shaBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
}
- caseBuilder.setArpSha(shaBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return ArpSha.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new ArpShaCaseBuilder().setArpSha(shaBuilder.build()).build());
}
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSpa;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.spa._case.ArpSpaBuilder;
* @author michal.polkorab
*/
public class OxmArpSpaDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addArpSpaValue(input, builder);
- return builder.build();
+ public OxmArpSpaDeserializer() {
+ super(ArpSpa.class);
}
- private static void addArpSpaValue(final ByteBuf input, final MatchEntryBuilder builder) {
- ArpSpaCaseBuilder caseBuilder = new ArpSpaCaseBuilder();
- ArpSpaBuilder arpBuilder = new ArpSpaBuilder();
- arpBuilder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final ArpSpaBuilder arpBuilder = new ArpSpaBuilder()
+ .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
if (builder.isHasMask()) {
arpBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
}
- caseBuilder.setArpSpa(arpBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return ArpSpa.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new ArpSpaCaseBuilder().setArpSpa(arpBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTha;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tha._case.ArpThaBuilder;
*
* @author michal.polkorab
*/
-public class OxmArpThaDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addArpThaValue(input, builder);
- return builder.build();
+public class OxmArpThaDeserializer extends AbstractOxmMatchEntryDeserializer {
+ public OxmArpThaDeserializer() {
+ super(ArpTha.class);
}
- private static void addArpThaValue(final ByteBuf input, final MatchEntryBuilder builder) {
- ArpThaCaseBuilder caseBuilder = new ArpThaCaseBuilder();
- ArpThaBuilder thaBuilder = new ArpThaBuilder();
- thaBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final ArpThaBuilder thaBuilder = new ArpThaBuilder()
+ .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
if (builder.isHasMask()) {
thaBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
}
- caseBuilder.setArpTha(thaBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return ArpTha.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new ArpThaCaseBuilder().setArpTha(thaBuilder.build()).build());
}
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTpa;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tpa._case.ArpTpaBuilder;
* @author michal.polkorab
*/
public class OxmArpTpaDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addArpTpaValue(input, builder);
- return builder.build();
+ public OxmArpTpaDeserializer() {
+ super(ArpTpa.class);
}
- private static void addArpTpaValue(final ByteBuf input, final MatchEntryBuilder builder) {
- ArpTpaCaseBuilder caseBuilder = new ArpTpaCaseBuilder();
- ArpTpaBuilder arpBuilder = new ArpTpaBuilder();
- arpBuilder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final ArpTpaBuilder arpBuilder = new ArpTpaBuilder()
+ .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
if (builder.isHasMask()) {
arpBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
}
- caseBuilder.setArpTpa(arpBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return ArpTpa.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new ArpTpaCaseBuilder().setArpTpa(arpBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.dst._case.EthDstBuilder;
* @author michal.polkorab
*/
public class OxmEthDstDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addEthDstValue(input, builder);
- return builder.build();
+ public OxmEthDstDeserializer() {
+ super(EthDst.class);
}
- private static void addEthDstValue(final ByteBuf input, final MatchEntryBuilder builder) {
- EthDstCaseBuilder caseBuilder = new EthDstCaseBuilder();
- EthDstBuilder ethBuilder = new EthDstBuilder();
- ethBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final EthDstBuilder ethBuilder = new EthDstBuilder()
+ .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
if (builder.isHasMask()) {
ethBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
}
- caseBuilder.setEthDst(ethBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return EthDst.class;
+ builder.setMatchEntryValue(new EthDstCaseBuilder().setEthDst(ethBuilder.build()).build());
}
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
-
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.src._case.EthSrcBuilder;
* @author michal.polkorab
*/
public class OxmEthSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addEthSrcValue(input, builder);
- return builder.build();
+ public OxmEthSrcDeserializer() {
+ super(EthSrc.class);
}
- private static void addEthSrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
- EthSrcCaseBuilder caseBuilder = new EthSrcCaseBuilder();
- EthSrcBuilder ethBuilder = new EthSrcBuilder();
- ethBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final EthSrcBuilder ethBuilder = new EthSrcBuilder()
+ .setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
if (builder.isHasMask()) {
ethBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.MAC_ADDRESS_LENGTH));
}
- caseBuilder.setEthSrc(ethBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return EthSrc.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new EthSrcCaseBuilder().setEthSrc(ethBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.type._case.EthTypeBuilder;
* @author michal.polkorab
*/
public class OxmEthTypeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addEthTypeValue(input, builder);
- return builder.build();
+ public OxmEthTypeDeserializer() {
+ super(EthType.class);
}
- private static void addEthTypeValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new EthTypeCaseBuilder()
.setEthType(new EthTypeBuilder().setEthType(new EtherType(ByteBufUtils.readUint16(input))).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return EthType.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Code;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4CodeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.code._case.Icmpv4CodeBuilder;
* @author michal.polkorab
*/
public class OxmIcmpv4CodeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new Icmpv4CodeCaseBuilder()
- .setIcmpv4Code(new Icmpv4CodeBuilder().setIcmpv4Code(readUint8(input)).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Icmpv4Code.class;
+ public OxmIcmpv4CodeDeserializer() {
+ super(Icmpv4Code.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Icmpv4CodeCaseBuilder()
+ .setIcmpv4Code(new Icmpv4CodeBuilder().setIcmpv4Code(readUint8(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4TypeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.type._case.Icmpv4TypeBuilder;
* @author michal.polkorab
*/
public class OxmIcmpv4TypeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new Icmpv4TypeCaseBuilder()
- .setIcmpv4Type(new Icmpv4TypeBuilder().setIcmpv4Type(readUint8(input)).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Icmpv4Type.class;
+ public OxmIcmpv4TypeDeserializer() {
+ super(Icmpv4Type.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Icmpv4TypeCaseBuilder()
+ .setIcmpv4Type(new Icmpv4TypeBuilder().setIcmpv4Type(readUint8(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Code;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6CodeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.code._case.Icmpv6CodeBuilder;
* @author michal.polkorab
*/
public class OxmIcmpv6CodeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new Icmpv6CodeCaseBuilder()
- .setIcmpv6Code(new Icmpv6CodeBuilder().setIcmpv6Code(readUint8(input)).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Icmpv6Code.class;
+ public OxmIcmpv6CodeDeserializer() {
+ super(Icmpv6Code.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Icmpv6CodeCaseBuilder()
+ .setIcmpv6Code(new Icmpv6CodeBuilder().setIcmpv6Code(readUint8(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6TypeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.type._case.Icmpv6TypeBuilder;
* @author michal.polkorab
*/
public class OxmIcmpv6TypeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new Icmpv6TypeCaseBuilder()
- .setIcmpv6Type(new Icmpv6TypeBuilder().setIcmpv6Type(readUint8(input)).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Icmpv6Type.class;
+ public OxmIcmpv6TypeDeserializer() {
+ super(Icmpv6Type.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Icmpv6TypeCaseBuilder()
+ .setIcmpv6Type(new Icmpv6TypeBuilder().setIcmpv6Type(readUint8(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPhyPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.phy.port._case.InPhyPortBuilder;
* @author michal.polkorab
*/
public class OxmInPhyPortDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addInPhyPortValue(input, builder);
- return builder.build();
+ public OxmInPhyPortDeserializer() {
+ super(InPhyPort.class);
}
- private static void addInPhyPortValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new InPhyPortCaseBuilder()
.setInPhyPort(new InPhyPortBuilder().setPortNumber(new PortNumber(readUint32(input))).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return InPhyPort.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPortCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.port._case.InPortBuilder;
* @author michal.polkorab
*/
public class OxmInPortDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addInPortValue(input, builder);
- return builder.build();
+ public OxmInPortDeserializer() {
+ super(InPort.class);
}
- private static void addInPortValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new InPortCaseBuilder()
.setInPort(new InPortBuilder().setPortNumber(new PortNumber(readUint32(input))).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return InPort.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpDscp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpDscpCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.dscp._case.IpDscpBuilder;
* @author michal.polkorab
*/
public class OxmIpDscpDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpDscpValue(input, builder);
- return builder.build();
+ public OxmIpDscpDeserializer() {
+ super(IpDscp.class);
}
- private static void addIpDscpValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new IpDscpCaseBuilder()
.setIpDscp(new IpDscpBuilder().setDscp(new Dscp(ByteBufUtils.readUint8(input))).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return IpDscp.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpEcn;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpEcnCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.ecn._case.IpEcnBuilder;
* @author michal.polkorab
*/
public class OxmIpEcnDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpEcnValue(input, builder);
- return builder.build();
+ public OxmIpEcnDeserializer() {
+ super(IpEcn.class);
}
- private static void addIpEcnValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new IpEcnCaseBuilder()
.setIpEcn(new IpEcnBuilder().setEcn(readUint8(input)).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return IpEcn.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpProto;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpProtoCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.proto._case.IpProtoBuilder;
* @author michal.polkorab
*/
public class OxmIpProtoDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpProtoValue(input, builder);
- return builder.build();
+ public OxmIpProtoDeserializer() {
+ super(IpProto.class);
}
- private static void addIpProtoValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new IpProtoCaseBuilder()
.setIpProto(new IpProtoBuilder().setProtocolNumber(readUint8(input)).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return IpProto.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Dst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4DstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.dst._case.Ipv4DstBuilder;
* @author michal.polkorab
*/
public class OxmIpv4DstDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv4DstValue(input, builder);
- return builder.build();
+ public OxmIpv4DstDeserializer() {
+ super(Ipv4Dst.class);
}
- private static void addIpv4DstValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv4DstCaseBuilder caseBuilder = new Ipv4DstCaseBuilder();
- Ipv4DstBuilder ipv4Builder = new Ipv4DstBuilder();
- ipv4Builder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv4DstBuilder ipv4Builder = new Ipv4DstBuilder()
+ .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
if (builder.isHasMask()) {
ipv4Builder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
}
- caseBuilder.setIpv4Dst(ipv4Builder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv4Dst.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new Ipv4DstCaseBuilder().setIpv4Dst(ipv4Builder.build()).build());
}
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Src;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4SrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.src._case.Ipv4SrcBuilder;
* @author michal.polkorab
*/
public class OxmIpv4SrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv4SrcValue(input, builder);
- return builder.build();
+ public OxmIpv4SrcDeserializer() {
+ super(Ipv4Src.class);
}
- private static void addIpv4SrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv4SrcCaseBuilder caseBuilder = new Ipv4SrcCaseBuilder();
- Ipv4SrcBuilder ipv4Builder = new Ipv4SrcBuilder();
- ipv4Builder.setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv4SrcBuilder ipv4Builder = new Ipv4SrcBuilder()
+ .setIpv4Address(ByteBufUtils.readIetfIpv4Address(input));
if (builder.isHasMask()) {
ipv4Builder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.GROUPS_IN_IPV4_ADDRESS));
}
- caseBuilder.setIpv4Src(ipv4Builder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv4Src.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new Ipv4SrcCaseBuilder().setIpv4Src(ipv4Builder.build()).build());
}
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Dst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6DstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.dst._case.Ipv6DstBuilder;
* @author michal.polkorab
*/
public class OxmIpv6DstDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6DstValue(input, builder);
- return builder.build();
+ public OxmIpv6DstDeserializer() {
+ super(Ipv6Dst.class);
}
- private static void addIpv6DstValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6DstCaseBuilder caseBuilder = new Ipv6DstCaseBuilder();
- Ipv6DstBuilder ipv6Builder = new Ipv6DstBuilder();
- ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv6DstBuilder ipv6Builder = new Ipv6DstBuilder()
+ .setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
if (builder.isHasMask()) {
- ipv6Builder.setMask(OxmDeserializerHelper.convertMask(
- input, EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
+ ipv6Builder.setMask(OxmDeserializerHelper.convertMask(input,
+ EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
}
- caseBuilder.setIpv6Dst(ipv6Builder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6Dst.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new Ipv6DstCaseBuilder().setIpv6Dst(ipv6Builder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Exthdr;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6ExthdrCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.exthdr._case.Ipv6ExthdrBuilder;
* @author michal.polkorab
*/
public class OxmIpv6ExtHdrDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6ExtHdrValue(input, builder);
- return builder.build();
+ public OxmIpv6ExtHdrDeserializer() {
+ super(Ipv6Exthdr.class);
}
- private static void addIpv6ExtHdrValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6ExthdrCaseBuilder caseBuilder = new Ipv6ExthdrCaseBuilder();
- Ipv6ExthdrBuilder extHdrBuilder = new Ipv6ExthdrBuilder();
- extHdrBuilder.setPseudoField(convertPseudofields(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv6ExthdrBuilder extHdrBuilder = new Ipv6ExthdrBuilder()
+ .setPseudoField(convertPseudofields(input));
if (builder.isHasMask()) {
extHdrBuilder.setMask(OxmDeserializerHelper.convertMask(input, Short.BYTES));
}
- caseBuilder.setIpv6Exthdr(extHdrBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
+ builder.setMatchEntryValue(new Ipv6ExthdrCaseBuilder().setIpv6Exthdr(extHdrBuilder.build()).build());
}
private static Ipv6ExthdrFlags convertPseudofields(final ByteBuf input) {
final Boolean unseq = (bitmap & 1 << 8) != 0;
return new Ipv6ExthdrFlags(auth, dest, esp, frag, hop, nonext, router, unrep, unseq);
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6Exthdr.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6FlowLabel;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Flabel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6FlabelCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.flabel._case.Ipv6FlabelBuilder;
* @author michal.polkorab
*/
public class OxmIpv6FlabelDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6FlabelValue(input, builder);
- return builder.build();
+ public OxmIpv6FlabelDeserializer() {
+ super(Ipv6Flabel.class);
}
- private static void addIpv6FlabelValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6FlabelCaseBuilder caseBuilder = new Ipv6FlabelCaseBuilder();
- Ipv6FlabelBuilder labelBuilder = new Ipv6FlabelBuilder();
- labelBuilder.setIpv6Flabel(new Ipv6FlowLabel(readUint32(input)));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv6FlabelBuilder labelBuilder = new Ipv6FlabelBuilder()
+ .setIpv6Flabel(new Ipv6FlowLabel(readUint32(input)));
if (builder.isHasMask()) {
labelBuilder.setMask(OxmDeserializerHelper.convertMask(input, Integer.BYTES));
}
- caseBuilder.setIpv6Flabel(labelBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6Flabel.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new Ipv6FlabelCaseBuilder().setIpv6Flabel(labelBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdSll;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdSllCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.sll._case.Ipv6NdSllBuilder;
* @author michal.polkorab
*/
public class OxmIpv6NdSllDeserializer extends AbstractOxmMatchEntryDeserializer {
-
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6NdSllValue(input, builder);
- return builder.build();
- }
-
- private static void addIpv6NdSllValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6NdSllCaseBuilder caseBuilder = new Ipv6NdSllCaseBuilder();
- Ipv6NdSllBuilder ndBuilder = new Ipv6NdSllBuilder();
- ndBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
- caseBuilder.setIpv6NdSll(ndBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6NdSll.class;
+ public OxmIpv6NdSllDeserializer() {
+ super(Ipv6NdSll.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Ipv6NdSllCaseBuilder()
+ .setIpv6NdSll(new Ipv6NdSllBuilder().setMacAddress(OxmDeserializerHelper.convertMacAddress(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTarget;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTargetCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.target._case.Ipv6NdTargetBuilder;
* @author michal.polkorab
*/
public class OxmIpv6NdTargetDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6NdTargetValue(input, builder);
- return builder.build();
- }
-
- private static void addIpv6NdTargetValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6NdTargetCaseBuilder caseBuilder = new Ipv6NdTargetCaseBuilder();
- Ipv6NdTargetBuilder ipv6Builder = new Ipv6NdTargetBuilder();
- ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
- caseBuilder.setIpv6NdTarget(ipv6Builder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6NdTarget.class;
+ public OxmIpv6NdTargetDeserializer() {
+ super(Ipv6NdTarget.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Ipv6NdTargetCaseBuilder()
+ .setIpv6NdTarget(new Ipv6NdTargetBuilder().setIpv6Address(ByteBufUtils.readIetfIpv6Address(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTll;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTllCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.tll._case.Ipv6NdTllBuilder;
* @author michal.polkorab
*/
public class OxmIpv6NdTllDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6NdTllValue(input, builder);
- return builder.build();
- }
-
- private static void addIpv6NdTllValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6NdTllCaseBuilder caseBuilder = new Ipv6NdTllCaseBuilder();
- Ipv6NdTllBuilder ndBuilder = new Ipv6NdTllBuilder();
- ndBuilder.setMacAddress(OxmDeserializerHelper.convertMacAddress(input));
- caseBuilder.setIpv6NdTll(ndBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6NdTll.class;
+ public OxmIpv6NdTllDeserializer() {
+ super(Ipv6NdTll.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new Ipv6NdTllCaseBuilder()
+ .setIpv6NdTll(new Ipv6NdTllBuilder().setMacAddress(OxmDeserializerHelper.convertMacAddress(input)).build())
+ .build());
}
}
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.util.ByteBufUtils;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Src;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6SrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.src._case.Ipv6SrcBuilder;
* @author michal.polkorab
*/
public class OxmIpv6SrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addIpv6SrcValue(input, builder);
- return builder.build();
+ public OxmIpv6SrcDeserializer() {
+ super(Ipv6Src.class);
}
- private static void addIpv6SrcValue(final ByteBuf input, final MatchEntryBuilder builder) {
- Ipv6SrcCaseBuilder caseBuilder = new Ipv6SrcCaseBuilder();
- Ipv6SrcBuilder ipv6Builder = new Ipv6SrcBuilder();
- ipv6Builder.setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Ipv6SrcBuilder ipv6Builder = new Ipv6SrcBuilder()
+ .setIpv6Address(ByteBufUtils.readIetfIpv6Address(input));
if (builder.isHasMask()) {
- ipv6Builder.setMask(OxmDeserializerHelper.convertMask(
- input, EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
+ ipv6Builder.setMask(OxmDeserializerHelper.convertMask(input,
+ EncodeConstants.SIZE_OF_IPV6_ADDRESS_IN_BYTES));
}
- caseBuilder.setIpv6Src(ipv6Builder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Ipv6Src.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new Ipv6SrcCaseBuilder().setIpv6Src(ipv6Builder.build()).build());
}
}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MetadataCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder;
* @author michal.polkorab
*/
public class OxmMetadataDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addMetadataValue(input, builder);
- return builder.build();
+ public OxmMetadataDeserializer() {
+ super(Metadata.class);
}
- private static void addMetadataValue(final ByteBuf input, final MatchEntryBuilder builder) {
- final MetadataCaseBuilder caseBuilder = new MetadataCaseBuilder();
- MetadataBuilder metadataBuilder = new MetadataBuilder();
- byte[] metadataBytes = new byte[Long.BYTES];
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final byte[] metadataBytes = new byte[Long.BYTES];
input.readBytes(metadataBytes);
- metadataBuilder.setMetadata(metadataBytes);
+
+ final MetadataBuilder metadataBuilder = new MetadataBuilder().setMetadata(metadataBytes);
if (builder.isHasMask()) {
metadataBuilder.setMask(OxmDeserializerHelper.convertMask(input, Long.BYTES));
}
- caseBuilder.setMetadata(metadataBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return Metadata.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new MetadataCaseBuilder().setMetadata(metadataBuilder.build()).build());
}
}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsBos;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsBosCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.bos._case.MplsBosBuilder;
* @author michal.polkorab
*/
public class OxmMplsBosDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addMplsBosValue(input, builder);
- return builder.build();
- }
-
- private static void addMplsBosValue(final ByteBuf input, final MatchEntryBuilder builder) {
- MplsBosCaseBuilder caseBuilder = new MplsBosCaseBuilder();
- MplsBosBuilder bosBuilder = new MplsBosBuilder();
- if (input.readUnsignedByte() != 0) {
- bosBuilder.setBos(true);
- } else {
- bosBuilder.setBos(false);
- }
- caseBuilder.setMplsBos(bosBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return MplsBos.class;
+ public OxmMplsBosDeserializer() {
+ super(MplsBos.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new MplsBosCaseBuilder()
+ .setMplsBos(new MplsBosBuilder().setBos(input.readUnsignedByte() != 0).build())
+ .build());
}
}
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsLabel;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsLabelCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.label._case.MplsLabelBuilder;
* @author michal.polkorab
*/
public class OxmMplsLabelDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addMplsLabelValue(input, builder);
- return builder.build();
+ public OxmMplsLabelDeserializer() {
+ super(MplsLabel.class);
}
- private static void addMplsLabelValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new MplsLabelCaseBuilder()
.setMplsLabel(new MplsLabelBuilder().setMplsLabel(readUint32(input)).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return MplsLabel.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsTc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsTcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.tc._case.MplsTcBuilder;
* @author michal.polkorab
*/
public class OxmMplsTcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addMplsTcValue(input, builder);
- return builder.build();
+ public OxmMplsTcDeserializer() {
+ super(MplsTc.class);
}
- private static void addMplsTcValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new MplsTcCaseBuilder()
.setMplsTc(new MplsTcBuilder().setTc(readUint8(input)).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return MplsTc.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.PacketType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PacketTypeCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.packet.type._case.PacketTypeBuilder;
public class OxmPacketTypeDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return PacketType.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ public OxmPacketTypeDeserializer() {
+ super(PacketType.class);
}
@Override
- public MatchEntry deserialize(final ByteBuf message) {
- final MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), message);
- PacketTypeCaseBuilder caseBuilder = new PacketTypeCaseBuilder();
- PacketTypeBuilder packetTypeBuilder = new PacketTypeBuilder();
- packetTypeBuilder.setPacketType(readUint32(message));
- caseBuilder.setPacketType(packetTypeBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- return builder.build();
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new PacketTypeCaseBuilder()
+ .setPacketType(new PacketTypeBuilder().setPacketType(readUint32(input)).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.PbbIsid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PbbIsidCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.pbb.isid._case.PbbIsidBuilder;
* @author michal.polkorab
*/
public class OxmPbbIsidDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addPbbIsidValue(input, builder);
- return builder.build();
+ public OxmPbbIsidDeserializer() {
+ super(PbbIsid.class);
}
- private static void addPbbIsidValue(final ByteBuf input, final MatchEntryBuilder builder) {
- PbbIsidCaseBuilder caseBuilder = new PbbIsidCaseBuilder();
- PbbIsidBuilder isidBuilder = new PbbIsidBuilder();
- Integer isid = input.readUnsignedMedium();
- isidBuilder.setIsid(isid.longValue());
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final Integer isid = input.readUnsignedMedium();
+ final PbbIsidBuilder isidBuilder = new PbbIsidBuilder()
+ .setIsid(isid.longValue());
if (builder.isHasMask()) {
- isidBuilder.setMask(OxmDeserializerHelper
- .convertMask(input, EncodeConstants.SIZE_OF_3_BYTES));
+ isidBuilder.setMask(OxmDeserializerHelper.convertMask(input, EncodeConstants.SIZE_OF_3_BYTES));
}
- caseBuilder.setPbbIsid(isidBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return PbbIsid.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new PbbIsidCaseBuilder().setPbbIsid(isidBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.dst._case.SctpDstBuilder;
* @author michal.polkorab
*/
public class OxmSctpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addSctpDstValue(input, builder);
- return builder.build();
+ public OxmSctpDstDeserializer() {
+ super(SctpDst.class);
}
- private static void addSctpDstValue(final ByteBuf input, final MatchEntryBuilder builder) {
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
builder.setMatchEntryValue(new SctpDstCaseBuilder()
.setSctpDst(new SctpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
.build());
}
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return SctpDst.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
- }
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.src._case.SctpSrcBuilder;
* @author michal.polkorab
*/
public class OxmSctpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new SctpSrcCaseBuilder()
- .setSctpSrc(new SctpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return SctpSrc.class;
+ public OxmSctpSrcDeserializer() {
+ super(SctpSrc.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new SctpSrcCaseBuilder()
+ .setSctpSrc(new SctpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.dst._case.TcpDstBuilder;
* @author michal.polkorab
*/
public class OxmTcpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new TcpDstCaseBuilder()
- .setTcpDst(new TcpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return TcpDst.class;
+ public OxmTcpDstDeserializer() {
+ super(TcpDst.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new TcpDstCaseBuilder()
+ .setTcpDst(new TcpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.src._case.TcpSrcBuilder;
* @author michal.polkorab
*/
public class OxmTcpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new TcpSrcCaseBuilder()
- .setTcpSrc(new TcpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return TcpSrc.class;
+ public OxmTcpSrcDeserializer() {
+ super(TcpSrc.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new TcpSrcCaseBuilder()
+ .setTcpSrc(new TcpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+ .build());
}
}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TunnelId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
* @author michal.polkorab
*/
public class OxmTunnelIdDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addTunnelIdValue(input, builder);
- return builder.build();
+ public OxmTunnelIdDeserializer() {
+ super(TunnelId.class);
}
- private static void addTunnelIdValue(final ByteBuf input, final MatchEntryBuilder builder) {
- final TunnelIdCaseBuilder caseBuilder = new TunnelIdCaseBuilder();
- TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
- byte[] metadataBytes = new byte[Long.BYTES];
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final byte[] metadataBytes = new byte[Long.BYTES];
input.readBytes(metadataBytes);
- tunnelIdBuilder.setTunnelId(metadataBytes);
+ final TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder()
+ .setTunnelId(metadataBytes);
if (builder.isHasMask()) {
tunnelIdBuilder.setMask(OxmDeserializerHelper.convertMask(input, Long.BYTES));
}
- caseBuilder.setTunnelId(tunnelIdBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return TunnelId.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new TunnelIdCaseBuilder().setTunnelId(tunnelIdBuilder.build()).build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpDst;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.dst._case.UdpDstBuilder;
* @author michal.polkorab
*/
public class OxmUdpDstDeserializer extends AbstractOxmMatchEntryDeserializer {
-
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new UdpDstCaseBuilder()
- .setUdpDst(new UdpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return UdpDst.class;
+ public OxmUdpDstDeserializer() {
+ super(UdpDst.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new UdpDstCaseBuilder()
+ .setUdpDst(new UdpDstBuilder().setPort(new PortNumber(readUint16(input))).build())
+ .build());
}
}
import io.netty.buffer.ByteBuf;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpSrc;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.src._case.UdpSrcBuilder;
* @author michal.polkorab
*/
public class OxmUdpSrcDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new UdpSrcCaseBuilder()
- .setUdpSrc(new UdpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return UdpSrc.class;
+ public OxmUdpSrcDeserializer() {
+ super(UdpSrc.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new UdpSrcCaseBuilder()
+ .setUdpSrc(new UdpSrcBuilder().setPort(new PortNumber(readUint16(input))).build())
+ .build());
}
}
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanPcpCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.pcp._case.VlanPcpBuilder;
* @author michal.polkorab
*/
public class OxmVlanPcpDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- return processHeader(getOxmClass(), getOxmField(), input)
- .setMatchEntryValue(new VlanPcpCaseBuilder()
- .setVlanPcp(new VlanPcpBuilder().setVlanPcp(readUint8(input)).build())
- .build())
- .build();
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return VlanPcp.class;
+ public OxmVlanPcpDeserializer() {
+ super(VlanPcp.class);
}
@Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ builder.setMatchEntryValue(new VlanPcpCaseBuilder()
+ .setVlanPcp(new VlanPcpBuilder().setVlanPcp(readUint8(input)).build())
+ .build());
}
}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanVid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanVidCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.vid._case.VlanVidBuilder;
* @author michal.polkorab
*/
public class OxmVlanVidDeserializer extends AbstractOxmMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
- addVlanVidValue(input, builder);
- return builder.build();
+ public OxmVlanVidDeserializer() {
+ super(VlanVid.class);
}
- private static void addVlanVidValue(final ByteBuf input, final MatchEntryBuilder builder) {
- final VlanVidCaseBuilder caseBuilder = new VlanVidCaseBuilder();
- VlanVidBuilder vlanBuilder = new VlanVidBuilder();
- int vidEntryValue = input.readUnsignedShort();
- vlanBuilder.setCfiBit((vidEntryValue & 1 << 12) != 0); // cfi is 13-th bit
- vlanBuilder.setVlanVid(Uint16.valueOf(vidEntryValue & (1 << 12) - 1)); // value without 13-th bit
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ final int vidEntryValue = input.readUnsignedShort();
+ final VlanVidBuilder vlanBuilder = new VlanVidBuilder()
+ .setCfiBit((vidEntryValue & 1 << 12) != 0) // cfi is 13-th bit
+ .setVlanVid(Uint16.valueOf(vidEntryValue & (1 << 12) - 1)); // value without 13-th bit
if (builder.isHasMask()) {
vlanBuilder.setMask(OxmDeserializerHelper.convertMask(input, Short.BYTES));
}
- caseBuilder.setVlanVid(vlanBuilder.build());
- builder.setMatchEntryValue(caseBuilder.build());
- }
-
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return VlanVid.class;
- }
-
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return OpenflowBasicClass.class;
+ builder.setMatchEntryValue(new VlanVidCaseBuilder().setVlanVid(vlanBuilder.build()).build());
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.experimenter.id._case.ExperimenterBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
/**
* Created by Anil Vishnoi (avishnoi@Brocade.com) on 7/26/16.
*/
-public abstract class AbstractOxmExperimenterMatchEntryDeserializer extends AbstractOxmMatchEntryDeserializer {
+public abstract class AbstractOxmExperimenterMatchEntryDeserializer<F extends MatchField>
+ extends AbstractOxmMatchEntryDeserializer {
- protected ExperimenterIdCaseBuilder createExperimenterIdCase(MatchEntryBuilder entryBuilder, ByteBuf input) {
- ExperimenterIdCaseBuilder expCaseBuilder = new ExperimenterIdCaseBuilder();
- ExperimenterBuilder expBuilder = new ExperimenterBuilder();
- expBuilder.setExperimenter(new ExperimenterId(readUint32(input)));
- expCaseBuilder.setExperimenter(expBuilder.build());
- return expCaseBuilder;
+ protected AbstractOxmExperimenterMatchEntryDeserializer(final Class<? extends MatchField> oxmField) {
+ super(ExperimenterClass.class, oxmField);
}
+ protected ExperimenterIdCaseBuilder createExperimenterIdCase(final MatchEntryBuilder entryBuilder,
+ final ByteBuf input) {
+ return new ExperimenterIdCaseBuilder()
+ .setExperimenter(new ExperimenterBuilder()
+ .setExperimenter(new ExperimenterId(readUint32(input)))
+ .build());
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.approved.extensions.rev160802.TcpFlagsContainerBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.approved.extensions.rev160802.oxm.container.match.entry.value.experimenter.id._case.TcpFlagsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.oxm.container.match.entry.value.ExperimenterIdCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmClassBase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
/**
* Created by Anil Vishnoi (avishnoi@Brocade.com) on 7/26/16.
*/
-public class OnfOxmTcpFlagsDeserializer extends AbstractOxmExperimenterMatchEntryDeserializer {
- @Override
- public MatchEntry deserialize(final ByteBuf input) {
- MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder(deserializeHeader(input));
- ExperimenterIdCaseBuilder expCaseBuilder = createExperimenterIdCase(matchEntryBuilder, input);
- addTcpFlagsAugmentation(input, expCaseBuilder, matchEntryBuilder.isHasMask());
- matchEntryBuilder.setMatchEntryValue(expCaseBuilder.build());
- return matchEntryBuilder.build();
+public class OnfOxmTcpFlagsDeserializer extends AbstractOxmExperimenterMatchEntryDeserializer<TcpFlags> {
+ public OnfOxmTcpFlagsDeserializer() {
+ super(TcpFlags.class);
+ }
+ @Override
+ protected void deserialize(final ByteBuf input, final MatchEntryBuilder builder) {
+ ExperimenterIdCaseBuilder expCaseBuilder = createExperimenterIdCase(builder, input);
+ addTcpFlagsAugmentation(input, expCaseBuilder, builder.isHasMask());
+ builder.setMatchEntryValue(expCaseBuilder.build());
}
private static void addTcpFlagsAugmentation(final ByteBuf input, final ExperimenterIdCaseBuilder expCaseBuilder,
}
expCaseBuilder.addAugmentation(new TcpFlagsContainerBuilder().setTcpFlags(flagsBuilder.build()).build());
}
-
- /**
- * Return the oxm_field class.
- */
- @Override
- protected Class<? extends MatchField> getOxmField() {
- return TcpFlags.class;
- }
-
- /**
- * Return the oxm_class class.
- */
- @Override
- protected Class<? extends OxmClassBase> getOxmClass() {
- return ExperimenterClass.class;
- }
}