30626def03
This patch intend to support action_raw_encap/decap [1] in a generic and convenient way. Two new commands - set raw_encap, set raw_decap are introduced just like the other commands for encap/decap, i.e. set vxlan. These two commands have corresponding global buffers which can be used by PMD as the input buffer for raw encap/decap. The commands use the rte_flow pattern syntax to help user build the raw buffer in a convenient way. A common way to use it: - encap matched egress packet with VxLAN tunnel: testpmd> set raw_encap eth src is 10:11:22:33:44:55 / vlan tci is 1 inner_type is 0x0800 / ipv4 / udp dst is 4789 / vxlan vni is 2 / end_set testpmd> flow create 0 egress pattern eth / ipv4 / end actions raw_encap / end - decap l2 header and encap GRE tunnel on matched egress packet: testpmd> set raw_decap eth / end_set testpmd> set raw_encap eth dst is 10:22:33:44:55:66 / ipv4 / gre protocol is 0x0800 / end_set testpmd> flow create 0 egress pattern eth / ipv4 / end actions raw_decap / raw_encap / end - decap VxLAN tunnel and encap l2 header on matched ingress packet: testpmd> set raw_encap eth src is 10:11:22:33:44:55 type is 0x0800 / end_set testpmd> set raw_decap eth / ipv4 / udp / vxlan / end_set testpmd> flow create 0 ingress pattern eth / ipv4 / udp dst is 250 / vxlan vni is 0x1234 / ipv4 / end actions raw_decap / raw_encap / queue index 1 / mark id 0x1234 / end [1] http://mails.dpdk.org/archives/dev/2018-October/116092.html Signed-off-by: Xiaoyu Min <jackmin@mellanox.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>