1 package org.opendaylight.openflowjava.nx.codec.action;
3 import io.netty.buffer.ByteBuf;
5 import org.opendaylight.openflowjava.nx.NiciraConstants;
6 import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
7 import org.opendaylight.openflowjava.protocol.api.keys.experimenter.ExperimenterActionSerializerKey;
8 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
9 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.extension.nicira.action.rev140421.NxmNxRegMove;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.extension.nicira.action.rev140421.OfjAugNxAction;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.extension.nicira.action.rev140421.ofj.nx.action.reg.move.grouping.ActionRegMove;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.extension.nicira.action.rev140421.ofj.nx.action.reg.move.grouping.ActionRegMoveBuilder;
15 public class RegMoveCodec extends AbstractActionSerializer implements OFDeserializer<ActionRegMove> {
17 public static final ExperimenterActionSerializerKey SERIALIZER_KEY = new ExperimenterActionSerializerKey(
18 EncodeConstants.OF13_VERSION_ID, NiciraConstants.NX_VENDOR_ID, NxmNxRegMove.class);
19 public static final int LENGTH = 24;
20 public static final byte SUBTYPE = 6; // NXAST_REG_MOVE
23 public void serialize(Action input, ByteBuf outBuffer) {
24 ActionRegMove actionRegMove = input.getAugmentation(OfjAugNxAction.class).getActionRegMove();
25 serializeHeader(LENGTH, SUBTYPE, outBuffer);
26 outBuffer.writeShort(actionRegMove.getNBits());
27 outBuffer.writeShort(actionRegMove.getSrcOfs());
28 outBuffer.writeShort(actionRegMove.getDstOfs());
29 outBuffer.writeInt(actionRegMove.getSrc().intValue());
30 outBuffer.writeInt(actionRegMove.getDst().intValue());
34 public ActionRegMove deserialize(ByteBuf message) {
35 ActionRegMoveBuilder actionRegMoveBuilder = new ActionRegMoveBuilder();
36 actionRegMoveBuilder.setNBits(message.readUnsignedShort());
37 actionRegMoveBuilder.setSrcOfs(message.readUnsignedShort());
38 actionRegMoveBuilder.setDstOfs(message.readUnsignedShort());
39 actionRegMoveBuilder.setSrc(message.readUnsignedInt());
40 actionRegMoveBuilder.setDst(message.readUnsignedInt());
41 return actionRegMoveBuilder.build();