Migrate to use unit types and cleanup builder usage.
Change-Id: Iaed5405bad9f287e8822362554e799e54e35fa90
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
*/
package org.opendaylight.openflowjava.nx.codec.action;
+import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
+import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint64;
+
import io.netty.buffer.ByteBuf;
-import java.math.BigInteger;
import org.opendaylight.openflowjava.nx.api.NiciraConstants;
import org.opendaylight.openflowjava.nx.codec.match.NxmHeader;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
return new ExperimenterId(NiciraConstants.NX_VENDOR_ID);
}
- private static int getPaddingRemainder(int nonPaddedSize) {
- int paddingRemainder = EncodeConstants.PADDING - (nonPaddedSize % EncodeConstants.PADDING);
+ private static int getPaddingRemainder(final int nonPaddedSize) {
+ int paddingRemainder = EncodeConstants.PADDING - nonPaddedSize % EncodeConstants.PADDING;
return paddingRemainder % EncodeConstants.PADDING;
}
- protected static final void skipPadding(ByteBuf message, int startIndex) {
+ protected static final void skipPadding(final ByteBuf message, final int startIndex) {
int nonPaddedSize = message.readerIndex() - startIndex;
message.skipBytes(getPaddingRemainder(nonPaddedSize));
}
- protected static final void writePaddingAndSetLength(ByteBuf outBuffer, int startIndex) {
+ protected static final void writePaddingAndSetLength(final ByteBuf outBuffer, final int startIndex) {
int nonPaddedSize = outBuffer.writerIndex() - startIndex;
outBuffer.writeZero(getPaddingRemainder(nonPaddedSize));
outBuffer.setShort(startIndex + Short.BYTES, outBuffer.writerIndex() - startIndex);
}
}
- protected static BigInteger readNxmHeader(final ByteBuf message) {
- int value = message.getUnsignedShort(message.readerIndex());
- byte[] bytes = new byte[value == EncodeConstants.EXPERIMENTER_VALUE ? Long.BYTES : Integer.BYTES];
- message.readBytes(bytes);
- return new BigInteger(1, bytes);
+ protected static Uint64 readNxmHeader(final ByteBuf message) {
+ final int value = message.getUnsignedShort(message.readerIndex());
+ return value == EncodeConstants.EXPERIMENTER_VALUE ? readUint64(message) : readUint32(message).toUint64();
}
-
}
import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionOutputReg2;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionOutputReg2Builder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.output.reg2.grouping.NxActionOutputReg2Builder;
new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, SUBTYPE);
@Override
- public Action deserialize(ByteBuf message) {
+ public Action deserialize(final ByteBuf message) {
final int startIndex = message.readerIndex();
- final ActionBuilder actionBuilder = deserializeHeader(message);
- final ActionOutputReg2Builder builder = new ActionOutputReg2Builder();
- NxActionOutputReg2Builder nxActionOutputReg2Builder = new NxActionOutputReg2Builder();
- nxActionOutputReg2Builder.setNBits(readUint16(message));
- nxActionOutputReg2Builder.setMaxLen(readUint16(message));
- nxActionOutputReg2Builder.setSrc(readNxmHeader(message));
+ final var actionBuilder = deserializeHeader(message)
+ .setActionChoice(new ActionOutputReg2Builder()
+ .setNxActionOutputReg2(new NxActionOutputReg2Builder()
+ .setNBits(readUint16(message))
+ .setMaxLen(readUint16(message))
+ .setSrc(readNxmHeader(message))
+ .build())
+ .build());
skipPadding(message, startIndex);
- builder.setNxActionOutputReg2(nxActionOutputReg2Builder.build());
- actionBuilder.setActionChoice(builder.build());
+
return actionBuilder.build();
}
@Override
- public void serialize(Action input, ByteBuf outBuffer) {
+ public void serialize(final Action input, final ByteBuf outBuffer) {
ActionOutputReg2 action = (ActionOutputReg2) input.getActionChoice();
final int startIndex = outBuffer.writerIndex();
serializeHeader(EncodeConstants.EMPTY_LENGTH, SUBTYPE, outBuffer);
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
+import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint64;
import io.netty.buffer.ByteBuf;
-import java.math.BigInteger;
import org.opendaylight.openflowjava.nx.api.NiciraActionDeserializerKey;
import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegLoad;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegLoadBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.reg.load.grouping.NxActionRegLoadBuilder;
@Override
public Action deserialize(final ByteBuf message) {
- final ActionBuilder actionBuilder = deserializeHeader(message);
- NxActionRegLoadBuilder nxActionRegLoadBuilder = new NxActionRegLoadBuilder();
- final ActionRegLoadBuilder actionRegLoadBuilder = new ActionRegLoadBuilder();
- nxActionRegLoadBuilder.setOfsNbits(readUint16(message));
- nxActionRegLoadBuilder.setDst(readUint32(message));
- nxActionRegLoadBuilder.setValue(BigInteger.valueOf(message.readLong()));
- actionRegLoadBuilder.setNxActionRegLoad(nxActionRegLoadBuilder.build());
- actionBuilder.setActionChoice(actionRegLoadBuilder.build());
- return actionBuilder.build();
+ return deserializeHeader(message)
+ .setActionChoice(new ActionRegLoadBuilder()
+ .setNxActionRegLoad(new NxActionRegLoadBuilder()
+ .setOfsNbits(readUint16(message))
+ .setDst(readUint32(message))
+ .setValue(readUint64(message))
+ .build())
+ .build())
+ .build();
}
}
import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegMove;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegMoveBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.nx.action.reg.move.grouping.NxActionRegMoveBuilder;
@Override
public Action deserialize(final ByteBuf message) {
final int startIndex = message.readerIndex();
- final ActionBuilder actionBuilder = deserializeHeader(message);
- final ActionRegMoveBuilder actionRegMoveBuilder = new ActionRegMoveBuilder();
- NxActionRegMoveBuilder nxActionRegMoveBuilder = new NxActionRegMoveBuilder();
- nxActionRegMoveBuilder.setNBits(readUint16(message));
- nxActionRegMoveBuilder.setSrcOfs(readUint16(message));
- nxActionRegMoveBuilder.setDstOfs(readUint16(message));
- nxActionRegMoveBuilder.setSrc(readNxmHeader(message));
- nxActionRegMoveBuilder.setDst(readNxmHeader(message));
+ final var actionBuilder = deserializeHeader(message)
+ .setActionChoice(new ActionRegMoveBuilder()
+ .setNxActionRegMove(new NxActionRegMoveBuilder()
+ .setNBits(readUint16(message))
+ .setSrcOfs(readUint16(message))
+ .setDstOfs(readUint16(message))
+ .setSrc(readNxmHeader(message))
+ .setDst(readNxmHeader(message))
+ .build())
+ .build());
skipPadding(message, startIndex);
- actionRegMoveBuilder.setNxActionRegMove(nxActionRegMoveBuilder.build());
- actionBuilder.setActionChoice(actionRegMoveBuilder.build());
+
return actionBuilder.build();
}
}