X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=extension%2Fopenflowjava-extension-nicira%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowjava%2Fnx%2Fcodec%2Fmatch%2FUdpDstCodec.java;h=21fd2d3beb74d0c34762b79bc01291a806ef182f;hb=refs%2Fchanges%2F45%2F101745%2F10;hp=9347dcd7d0fa5b2ee8ec5d3b080bf9eba9c16c88;hpb=513001ced86b008088b767994d0c83aacfa36863;p=openflowplugin.git diff --git a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/UdpDstCodec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/UdpDstCodec.java index 9347dcd7d0..21fd2d3beb 100644 --- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/UdpDstCodec.java +++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/UdpDstCodec.java @@ -5,63 +5,58 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.openflowjava.nx.codec.match; -import io.netty.buffer.ByteBuf; - -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class; -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 static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16; +import io.netty.buffer.ByteBuf; import org.opendaylight.openflowjava.protocol.api.keys.MatchEntryDeserializerKey; import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey; import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants; - +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.Nxm0Class; +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.openflowjava.nx.match.rev140421.NxmOfUdpDst; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.aug.nx.match.UdpDstCaseValue; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.aug.nx.match.UdpDstCaseValueBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.ofj.nxm.of.match.udp.dst.grouping.UdpDstValuesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.UdpDstCaseValue; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.UdpDstCaseValueBuilder; /** + * Codec for the UdpDst message. + * * @author Aswin Suryanarayanan. */ - public class UdpDstCodec extends AbstractMatchCodec { - private static final int VALUE_LENGTH = 4; + private static final int VALUE_LENGTH = 2; private static final int NXM_FIELD_CODE = 12; public static final MatchEntrySerializerKey SERIALIZER_KEY = new MatchEntrySerializerKey<>( - EncodeConstants.OF13_VERSION_ID, Nxm0Class.class, NxmOfUdpDst.class); + EncodeConstants.OF_VERSION_1_3, Nxm0Class.VALUE, NxmOfUdpDst.VALUE); public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey( - EncodeConstants.OF13_VERSION_ID, OxmMatchConstants.NXM_0_CLASS, NXM_FIELD_CODE); + EncodeConstants.OF_VERSION_1_3, OxmMatchConstants.NXM_0_CLASS, NXM_FIELD_CODE); @Override - public void serialize(MatchEntry input, ByteBuf outBuffer) { + public void serialize(final MatchEntry input, final ByteBuf outBuffer) { serializeHeader(input, outBuffer); - UdpDstCaseValue udpDstCase = ((UdpDstCaseValue) input.getMatchEntryValue()); - outBuffer.writeShort(udpDstCase.getUdpDstValues().getPort().getValue()); - outBuffer.writeShort(udpDstCase.getUdpDstValues().getMask()); + UdpDstCaseValue udpDstCase = (UdpDstCaseValue) input.getMatchEntryValue(); + outBuffer.writeShort(udpDstCase.getUdpDstValues().getPort().getValue().toJava()); + outBuffer.writeShort(udpDstCase.getUdpDstValues().getMask().toJava()); } @Override - public MatchEntry deserialize(ByteBuf message) { - MatchEntryBuilder matchEntryBuilder = deserializeHeader(message); - matchEntryBuilder.setHasMask(true); - int portNo = message.readUnsignedShort(); - int mask = message.readUnsignedShort(); - message.readBytes(mask); - UdpDstCaseValueBuilder caseBuilder = new UdpDstCaseValueBuilder(); - UdpDstValuesBuilder udpDstValuesBuilder = new UdpDstValuesBuilder(); - udpDstValuesBuilder.setPort(new PortNumber(portNo)); - udpDstValuesBuilder.setMask(portNo); - caseBuilder.setUdpDstValues(udpDstValuesBuilder.build()); - matchEntryBuilder.setMatchEntryValue(caseBuilder.build()); - return matchEntryBuilder.build(); + public MatchEntry deserialize(final ByteBuf message) { + return deserializeHeaderToBuilder(message) + .setHasMask(true) + .setMatchEntryValue(new UdpDstCaseValueBuilder() + .setUdpDstValues(new UdpDstValuesBuilder() + .setPort(new PortNumber(readUint16(message))) + .setMask(readUint16(message)) + .build()) + .build()) + .build(); } @Override @@ -80,13 +75,12 @@ public class UdpDstCodec extends AbstractMatchCodec { } @Override - public Class getNxmField() { - return NxmOfUdpDst.class; + public MatchField getNxmField() { + return NxmOfUdpDst.VALUE; } @Override - public Class getOxmClass() { - return Nxm0Class.class; + public OxmClassBase getOxmClass() { + return Nxm0Class.VALUE; } - }