app/testpmd: update modify field flow action support
authorViacheslav Ovsiienko <viacheslavo@nvidia.com>
Wed, 13 Oct 2021 18:45:14 +0000 (21:45 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 14 Oct 2021 12:34:31 +0000 (14:34 +0200)
commit06822012c0f425bb977a87e1302e3700a34ad49f
tree268a5cc07bbbdc081462cdfc47050779924edb85
parent50cd0391a4ea418cd7ea521e3488b2222b3492f2
app/testpmd: update modify field flow action support

The testpmd flow create command updates provided:

  - modify field action supports the updated actions
  - pointer type added for action source field
  - pointer and value source field takes hex string
    instead of unsigned int in host endianness

There are some examples of flow with update modified
field action:

1. IPv6 destination address bytes 4-7 assignment:
   0000::1111 - > 0000:xxxx:4455:6677::1111

   flow create 0 egress group 1
     pattern eth / ipv6 dst is 0000::1111 / udp / end
     actions modify_field op set
             dst_type ipv6_dst
     dst_offset 32
             src_type value
             src_value 0011223344556677
     width 32 / end

2. Copy second byte of IPv4 destination address to the
   third byte of source address:
     10.0.118.4 -> 192.168.100.1
     10.0.168.4 -> 192.168.100.1

   flow create 0 egress group 1
     pattern eth / ipv4 / udp / end
     actions modify_field op set
             dst_type ipv4_src
             dst_offset 16
     src_type ipv4_dst
     src_offset 8
     width 8 / end

3. Assign METADATA value with 11223344 value from the
   hex string in the linear buffer. Please note, the value
   definition should follow host-endian, example is given
   for x86 (little-endian):

   flow create 0 egress group 1
     pattern eth / ipv4 / end
     actions modify_field op set
             dst_type meta
     src_type pointer
     src_ptr 44332211
     width 32 / end

4. Assign destination MAC with EA:11:0B:AD:0B:ED value:

   flow create 0 egress group 1
     pattern eth / end
     actions modify_field op set
             dst_type mac_dst
     src_type value
     src_value EA110BAD0BED
     width 48 / end

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
app/test-pmd/cmdline_flow.c