Clean up OVJ nicira action codecs 87/94387/3
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 3 Jan 2021 23:41:28 +0000 (00:41 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 4 Jan 2021 09:17:04 +0000 (10:17 +0100)
Migrate to use unit types and cleanup builder usage.

Change-Id: Iaed5405bad9f287e8822362554e799e54e35fa90
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/AbstractActionCodec.java
extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/OutputReg2Codec.java
extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/RegLoadCodec.java
extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/RegMoveCodec.java

index 0ef4953d16442d86699399ba03d5aa3a845152ab..17b1ebb95c54011fc1368ce57bb6b2c472c75280 100644 (file)
@@ -7,8 +7,10 @@
  */
 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;
@@ -56,17 +58,17 @@ public abstract class AbstractActionCodec implements OFSerializer<Action>, OFDes
         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);
@@ -80,11 +82,8 @@ public abstract class AbstractActionCodec implements OFSerializer<Action>, OFDes
         }
     }
 
-    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();
     }
-
 }
index fa5cc3061444ca7e6394d3a7d0a01f6d19b90c5f..31588e34905d941653b5d4f0cde5c568645a3532 100644 (file)
@@ -14,7 +14,6 @@ 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.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;
@@ -28,22 +27,23 @@ public class OutputReg2Codec extends AbstractActionCodec {
             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);
index 922ffbc9a5bab5a41e2d4889cd80b0df3074076f..57ff43cf59ce2ea6fb1cc6b88c7fed11416c0097 100644 (file)
@@ -9,14 +9,13 @@ package org.opendaylight.openflowjava.nx.codec.action;
 
 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;
@@ -41,14 +40,14 @@ public class RegLoadCodec extends AbstractActionCodec {
 
     @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();
     }
 }
index f00a0c6a81ccb3dd34f86f5ecd975639c4e7ed90..fc624173c0c03bcf7a891a1ea5baee3058b449b6 100644 (file)
@@ -14,7 +14,6 @@ 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.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;
@@ -43,17 +42,18 @@ public class RegMoveCodec extends AbstractActionCodec {
     @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();
     }
 }