package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderDeserializer;
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.match.entries.grouping.MatchEntryBuilder;
/**
- * @author michal.polkorab
+ * Base class for an Oxm match entry deserializer.
*
+ * @author michal.polkorab
*/
public abstract class AbstractOxmMatchEntryDeserializer implements HeaderDeserializer<MatchEntry> {
}
/**
- * @return oxm_field class
+ * Returns the oxm_field class.
*/
protected abstract Class<? extends MatchField> getOxmField();
/**
- * @return oxm_class class
+ * Returns the oxm_class class.
*/
protected abstract Class<? extends OxmClassBase> getOxmClass();
/**
* Prepares match entry header - sets oxm_class, oxm_field, hasMask
* + sets the buffer.readerIndex() to the end of match entry
- * - where augmentation starts
+ * - where augmentation starts.
+ *
* @param oxmClass oxm class type
* @param oxmField oxm field type
* @param input input bytebuf
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.arp.op._case.ArpOpBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmArpOp messages.
*
+ * @author michal.polkorab
*/
public class OxmArpOpDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.arp.sha._case.ArpShaBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmArpSha messages.
*
+ * @author michal.polkorab
*/
public class OxmArpShaDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmArpSpa messages.
*
+ * @author michal.polkorab
*/
public class OxmArpSpaDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.arp.tha._case.ArpThaBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmArpTha messages.
*
+ * @author michal.polkorab
*/
public class OxmArpThaDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmArpTpa messages.
*
+ * @author michal.polkorab
*/
public class OxmArpTpaDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
/**
- * @author michal.polkorab
+ * Utilities for Oxm deserialization.
*
+ * @author michal.polkorab
*/
public final class OxmDeserializerHelper {
}
/**
- * Converts binary data into binary mask (for match entries)
+ * Converts binary data into binary mask (for match entries).
+ *
* @param input input ByteBuf
* @param matchEntryLength mask length
* @return binary mask
}
/**
- * Converts binary data into mac address
+ * Converts binary data into mac address.
+ *
* @param input input ByteBuf
* @return mac address
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.eth.dst._case.EthDstBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmEthDst messages.
*
+ * @author michal.polkorab
*/
public class OxmEthDstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.eth.src._case.EthSrcBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmEthSrc messages.
*
+ * @author michal.polkorab
*/
public class OxmEthSrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.eth.type._case.EthTypeBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmEthType messages.
*
+ * @author michal.polkorab
*/
public class OxmEthTypeDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.icmpv4.code._case.Icmpv4CodeBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIcmpv4Code messages.
*
+ * @author michal.polkorab
*/
public class OxmIcmpv4CodeDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.icmpv4.type._case.Icmpv4TypeBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIcmpv4Type messages.
*
+ * @author michal.polkorab
*/
public class OxmIcmpv4TypeDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.icmpv6.code._case.Icmpv6CodeBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIcmpv6Code messages.
*
+ * @author michal.polkorab
*/
public class OxmIcmpv6CodeDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.icmpv6.type._case.Icmpv6TypeBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIcmpv6Type messages.
*
+ * @author michal.polkorab
*/
public class OxmIcmpv6TypeDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.in.phy.port._case.InPhyPortBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmInPhyPort messages.
*
+ * @author michal.polkorab
*/
public class OxmInPhyPortDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.in.port._case.InPortBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmInPort messages.
*
+ * @author michal.polkorab
*/
public class OxmInPortDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.ip.dscp._case.IpDscpBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIpDscp messages.
*
+ * @author michal.polkorab
*/
public class OxmIpDscpDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.ip.ecn._case.IpEcnBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIpEnc messages.
*
+ * @author michal.polkorab
*/
public class OxmIpEcnDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.ip.proto._case.IpProtoBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIpProto messages.
*
+ * @author michal.polkorab
*/
public class OxmIpProtoDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmIpv4Dst messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv4DstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmIpv4Src messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv4SrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmIpv6Dst messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6DstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
Ipv6DstBuilder ipv6Builder = new Ipv6DstBuilder();
ipv6Builder.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());
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags;
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
+ * Translates OxmIpv6Ext messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6ExtHdrDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
private static Ipv6ExthdrFlags convertPseudofields(ByteBuf input) {
int bitmap = input.readUnsignedShort();
- final Boolean nonext = ((bitmap) & (1<<0)) != 0;
- final Boolean esp = ((bitmap) & (1<<1)) != 0;
- final Boolean auth = ((bitmap) & (1<<2)) != 0;
- final Boolean dest = ((bitmap) & (1<<3)) != 0;
- final Boolean frag = ((bitmap) & (1<<4)) != 0;
- final Boolean router = ((bitmap) & (1<<5)) != 0;
- final Boolean hop = ((bitmap) & (1<<6)) != 0;
- final Boolean unrep = ((bitmap) & (1<<7)) != 0;
- final Boolean unseq = ((bitmap) & (1<<8)) != 0;
+ final Boolean nonext = (bitmap & 1 << 0) != 0;
+ final Boolean esp = (bitmap & 1 << 1) != 0;
+ final Boolean auth = (bitmap & 1 << 2) != 0;
+ final Boolean dest = (bitmap & 1 << 3) != 0;
+ final Boolean frag = (bitmap & 1 << 4) != 0;
+ final Boolean router = (bitmap & 1 << 5) != 0;
+ final Boolean hop = (bitmap & 1 << 6) != 0;
+ final Boolean unrep = (bitmap & 1 << 7) != 0;
+ final Boolean unseq = (bitmap & 1 << 8) != 0;
return new Ipv6ExthdrFlags(auth, dest, esp, frag, hop, nonext, router, unrep, unseq);
}
protected Class<? extends OxmClassBase> getOxmClass() {
return OpenflowBasicClass.class;
}
-}
\ No newline at end of file
+}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
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.match.entry.value.grouping.match.entry.value.ipv6.flabel._case.Ipv6FlabelBuilder;
/**
- * @author michal.polkorab
+ * Translates Ipv6Flabel messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6FlabelDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.ipv6.nd.sll._case.Ipv6NdSllBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIpv6NdSll messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6NdSllDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmIpv6NdTarget messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6NdTargetDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.ipv6.nd.tll._case.Ipv6NdTllBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmIpv6NdTll messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6NdTllDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
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
+ * Translates OxmIpv6Src messages.
*
+ * @author michal.polkorab
*/
public class OxmIpv6SrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
Ipv6SrcBuilder ipv6Builder = new Ipv6SrcBuilder();
ipv6Builder.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());
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmMetadata messages.
*
+ * @author michal.polkorab
*/
public class OxmMetadataDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
}
private static void addMetadataValue(ByteBuf input, MatchEntryBuilder builder) {
- MetadataCaseBuilder caseBuilder = new MetadataCaseBuilder();
+ final MetadataCaseBuilder caseBuilder = new MetadataCaseBuilder();
MetadataBuilder metadataBuilder = new MetadataBuilder();
byte[] metadataBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(metadataBytes);
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
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.MplsBos;
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
+ * Translates OxmMplsBos messages.
*
+ * @author michal.polkorab
*/
public class OxmMplsBosDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
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.MplsLabel;
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
+ * Translates OxmMplsLabel messages.
*
+ * @author michal.polkorab
*/
public class OxmMplsLabelDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
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.MplsTc;
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
+ * Translates OxmMplsTc messages.
*
+ * @author michal.polkorab
*/
public class OxmMplsTcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
protected Class<? extends OxmClassBase> getOxmClass() {
return OpenflowBasicClass.class;
}
-}
\ No newline at end of file
+}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.pbb.isid._case.PbbIsidBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmPbbIsid messages.
*
+ * @author michal.polkorab
*/
public class OxmPbbIsidDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
protected Class<? extends OxmClassBase> getOxmClass() {
return OpenflowBasicClass.class;
}
-}
\ No newline at end of file
+}
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.sctp.dst._case.SctpDstBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmSctpDst messages.
*
+ * @author michal.polkorab
*/
public class OxmSctpDstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.sctp.src._case.SctpSrcBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmSctpSrc messages.
*
+ * @author michal.polkorab
*/
public class OxmSctpSrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.tcp.dst._case.TcpDstBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmTcpDst messages.
*
+ * @author michal.polkorab
*/
public class OxmTcpDstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.tcp.src._case.TcpSrcBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmTcpSrc messages.
*
+ * @author michal.polkorab
*/
public class OxmTcpSrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmTunnelId messages.
*
+ * @author michal.polkorab
*/
public class OxmTunnelIdDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
}
private static void addTunnelIdValue(ByteBuf input, MatchEntryBuilder builder) {
- TunnelIdCaseBuilder caseBuilder = new TunnelIdCaseBuilder();
+ final TunnelIdCaseBuilder caseBuilder = new TunnelIdCaseBuilder();
TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
byte[] metadataBytes = new byte[EncodeConstants.SIZE_OF_LONG_IN_BYTES];
input.readBytes(metadataBytes);
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.udp.dst._case.UdpDstBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmUdpDst messages.
*
+ * @author michal.polkorab
*/
public class OxmUdpDstDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.udp.src._case.UdpSrcBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmUdpSrc messages.
*
+ * @author michal.polkorab
*/
public class OxmUdpSrcDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
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.match.entry.value.grouping.match.entry.value.vlan.pcp._case.VlanPcpBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmVlanPcp messages.
*
+ * @author michal.polkorab
*/
public class OxmVlanPcpDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
package org.opendaylight.openflowjava.protocol.impl.deserialization.match;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
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.match.entry.value.grouping.match.entry.value.vlan.vid._case.VlanVidBuilder;
/**
- * @author michal.polkorab
+ * Translates OxmVlanVid messages.
*
+ * @author michal.polkorab
*/
public class OxmVlanVidDeserializer extends AbstractOxmMatchEntryDeserializer
implements OFDeserializer<MatchEntry> {
}
private static void addVlanVidValue(ByteBuf input, MatchEntryBuilder builder) {
- VlanVidCaseBuilder caseBuilder = new VlanVidCaseBuilder();
+ 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(vidEntryValue & ((1 << 12) - 1)); // value without 13-th bit
+ vlanBuilder.setCfiBit((vidEntryValue & 1 << 12) != 0); // cfi is 13-th bit
+ vlanBuilder.setVlanVid(vidEntryValue & (1 << 12) - 1); // value without 13-th bit
if (builder.isHasMask()) {
vlanBuilder.setMask(OxmDeserializerHelper
.convertMask(input, EncodeConstants.SIZE_OF_SHORT_IN_BYTES));
}
- private static void addTcpFlagsAugmentation(ByteBuf input, ExperimenterIdCaseBuilder expCaseBuilder, boolean hasMask) {
+ private static void addTcpFlagsAugmentation(ByteBuf input, ExperimenterIdCaseBuilder expCaseBuilder,
+ boolean hasMask) {
TcpFlagsContainerBuilder flagsContainerBuilder = new TcpFlagsContainerBuilder();
TcpFlagsBuilder flagsBuilder = new TcpFlagsBuilder();
flagsBuilder.setFlags(input.readUnsignedShort());
}
/**
- * @return oxm_field class
+ * Return the oxm_field class.
*/
@Override
protected Class<? extends MatchField> getOxmField() {
}
/**
- * @return oxm_class class
+ * Return the oxm_class class.
*/
@Override
protected Class<? extends OxmClassBase> getOxmClass() {
//import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;
/**
- * Initializes serializer registry with action serializers
+ * Initializes serializer registry with action serializers.
+ *
* @author michal.polkorab
*/
public final class ActionsInitializer {
}
/**
- * Registers action serializers into provided registry
+ * Registers action serializers into provided registry.
+ *
* @param serializerRegistry registry to be initialized with action serializers
*/
public static void registerActionSerializers(SerializerRegistry serializerRegistry) {
helper.registerSerializer(PushPbbCase.class, new OF13PushPbbActionSerializer());
helper.registerSerializer(PopPbbCase.class, new OF13PopPbbActionSerializer());
}
-}
\ No newline at end of file
+}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.RoleRequestOutput;
/**
- * @author giuseppex.petralia@intel.com
+ * Initializes serializer registry with additional action serializers.
*
+ * @author giuseppex.petralia@intel.com
*/
-public class AdditionalMessageFactoryInitializer {
+public final class AdditionalMessageFactoryInitializer {
private AdditionalMessageFactoryInitializer() {
throw new UnsupportedOperationException("Utility class shouldn't be instantiated");
}
/**
- * Registers message serializers implemented within NetIde project into
- * provided registry
+ * Registers message serializers implemented within NetIde project into provided registry.
*
* @param serializerRegistry
* registry to be initialized with message serializers
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase;
/**
- * @author michal.polkorab
+ * Initializes serializer registry with instruction serializers.
*
+ * @author michal.polkorab
*/
public final class InstructionsInitializer {
}
/**
- * Registers instruction serializers into provided registry
+ * Registers instruction serializers into provided registry.
+ *
* @param serializerRegistry registry to be initialized with instruction serializers
*/
public static void registerInstructionSerializers(SerializerRegistry serializerRegistry) {
// register OF v1.3 instruction serializers
- InstructionSerializerRegistryHelper helper= new InstructionSerializerRegistryHelper(
+ InstructionSerializerRegistryHelper helper = new InstructionSerializerRegistryHelper(
EncodeConstants.OF13_VERSION_ID, serializerRegistry);
helper.registerSerializer(GotoTableCase.class, new GoToTableInstructionSerializer());
helper.registerSerializer(WriteMetadataCase.class, new WriteMetadataInstructionSerializer());
package org.opendaylight.openflowjava.protocol.impl.serialization;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegistry;
import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
import org.opendaylight.yangtools.yang.binding.DataObject;
/**
+ * Serializes messages.
+ *
* @author michal.polkorab
* @author timotej.kubas
*/
private SerializerRegistry registry;
/**
- * Transforms POJO message into ByteBuf
+ * Transforms POJO message into ByteBuf.
+ *
* @param version version used for encoding received message
* @param out ByteBuf for storing and sending transformed message
* @param message POJO message
}
/**
+ * Sets the SerializerRegistry.
+ *
* @param serializerRegistry registry with serializers
*/
public void setSerializerTable(SerializerRegistry serializerRegistry) {
import org.slf4j.LoggerFactory;
/**
- * Stores and handles serializers<br>
+ * Stores and handles serializers. <br>
* K - {@link MessageTypeKey} type<br>
* S - returned serializer type
*
}
/**
- * @param msgTypeKey
+ * Gets the encoder for the given message type key.
+ *
+ * @param msgTypeKey the message type key
* @return encoder for current type of message (msgTypeKey)
*/
@Override
@Override
public <K> void registerSerializer(MessageTypeKey<K> msgTypeKey, OFGeneralSerializer serializer) {
- if ((msgTypeKey == null) || (serializer == null)) {
+ if (msgTypeKey == null || serializer == null) {
throw new IllegalArgumentException("MessageTypeKey or Serializer is null");
}
OFGeneralSerializer serInRegistry = registry.put(msgTypeKey, serializer);
package org.opendaylight.openflowjava.protocol.impl.serialization.action;
import io.netty.buffer.ByteBuf;
-
import org.opendaylight.openflowjava.protocol.api.extensibility.HeaderSerializer;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
/**
- * @author michal.polkorab
+ * Base class for an action serializer.
*
+ * @author michal.polkorab
*/
-public abstract class AbstractActionSerializer implements OFSerializer<Action>,
- HeaderSerializer<Action>{
+public abstract class AbstractActionSerializer implements OFSerializer<Action>, HeaderSerializer<Action> {
@Override
public void serialize(Action input, ByteBuf outBuffer) {
}
/**
- * @return numeric representation of action type
+ * Returns the numeric representation of action type.
*/
protected abstract int getType();
/**
- * @return action length
+ * Returns the action length.
*/
protected abstract int getLength();