Reg move support for nicira experimenter fields 99/71999/14
authorJaime Caamaño Ruiz <jcaamano@suse.com>
Mon, 14 May 2018 18:13:07 +0000 (20:13 +0200)
committerJaime Caamaño Ruiz <jcaamano@suse.com>
Thu, 12 Jul 2018 13:24:20 +0000 (15:24 +0200)
commitfcf2a6d506c660b2949f33eb8e922309b7bc7023
tree0dca7d3acd689af572109d678686d032796288de
parent340e77f9636212259bdf8dcfd53a49ebe2681aed
Reg move support for nicira experimenter fields

Reg move action, with the introduction of experimenter oxm fields, was
redefined to be able to include 8 oxm byte headers vs the standard 4
byte headers. This patch changes the openflowplugin encoding of this
action to align it with the spec.

From [1], the structre of reg move action is

struct nx_action_reg_move {
    ovs_be16 type;              // OFPAT_EXPERIMENTER = 0xFFFF
    ovs_be16 len;
    ovs_be32 vendor;            // NX_VENDOR_ID = 0x00002320
    ovs_be16 subtype;           // NXAST_REG_MOVE = 6
    ovs_be16 n_bits;            // Number of bits.
    ovs_be16 src_ofs;           // Starting bit offset in source.
    ovs_be16 dst_ofs;           // Starting bit offset in destination.
    /* Followed by:
     * - OXM/NXM header for source field (4 or 8 bytes).
     * - OXM/NXM header for destination field (4 or 8 bytes).
     * - Padding with 0-bytes to a multiple of 8 bytes, if necessary. */
};

[1] https://github.com/openvswitch/ovs/blob/master/lib/ofp-actions.c

Change-Id: I80ff8de77ef960a17c72f3aecc2bc62ba39f32cb
JIRA: OPNFLWPLUG-1017
Signed-off-by: Jaime Caamaño Ruiz <jcaamano@suse.com>
14 files changed:
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/RegMoveCodec.java
extension/openflowjava-extension-nicira/src/main/yang/nicira-action.yang
extension/openflowjava-extension-nicira/src/test/java/org/opendaylight/openflowjava/nx/codec/action/RegMoveCodecTest.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/FieldChoiceResolver.java [new file with mode: 0644]
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/MultipathConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/OutputRegConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/RegLoadConvertor.java
extension/openflowplugin-extension-nicira/src/main/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/RegMoveConvertor.java
extension/openflowplugin-extension-nicira/src/test/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/FieldChoiceResolverTest.java [new file with mode: 0644]
extension/openflowplugin-extension-nicira/src/test/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/MultipathConvertorTest.java
extension/openflowplugin-extension-nicira/src/test/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/OutputRegConvertorTest.java
extension/openflowplugin-extension-nicira/src/test/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/RegLoadConvertorTest.java
extension/openflowplugin-extension-nicira/src/test/java/org/opendaylight/openflowplugin/extension/vendor/nicira/convertor/action/RegMoveConvertorTest.java