flow dpdk: introduce IP in IP support for flow 62/38362/5
authorXinyao Cai <xinyao.cai@intel.com>
Tue, 28 Feb 2023 06:44:58 +0000 (14:44 +0800)
committerDamjan Marion <dmarion@0xa5.net>
Mon, 6 Mar 2023 16:46:17 +0000 (16:46 +0000)
commit99d3a405431dadca2cb5138183603946b6d64408
treee1894cae223d9f5c63953cf1a54d2293da04e9b6
parenta20afdc845f4e901f7d3e6974e59a0dc2e8bf427
flow dpdk: introduce IP in IP support for flow

This patch introduces IP in IP packet support for flow cli and dpdk plugin.
Specifically, the following IP in IP packet types are supported:
MAC-IPv4-IPv4-TCP/UDP/None,
MAC-IPv4-IPv6-TCP/UDP/None,
MAC-IPv6-IPv4-TCP/UDP/None,
MAC-IPv6-IPv6-TCP/UDP/None,

IP in IP flow rules can be created by using the following new keywords in vppctl:
in-src-ip, in-dst-ip        : to provide information for inner IPv4 header
in-ip6-src-ip, in-ip6-dst-ip: to provide information for inner IPv6 header
in-proto                    : to specify inner transport layer protocol type (TCP or UDP)
in-src-port, in-dst-port    : to provide information for inner TCP/UDP header

An example to create flow rule for MAC-IPv6-IPv6-TCP:
test flow add index 0 ip6-src-ip any ip6-dst-ip any in-ip6-src-ip any in-ip6-dst-ip any in-proto tcp in-src-port 1234 in-dst-port any rss function default

Another example to create flow rule for MAC-IPv6-IPv6:
test flow add index 0 ip6-src-ip any in-ip6-src-ip any rss function default

Type: feature

Signed-off-by: Xinyao Cai <xinyao.cai@intel.com>
Change-Id: I6a1ca36d47eb65b9cb5a4b8d874b2a7f017c35cd
src/plugins/dpdk/device/flow.c
src/vnet/flow/flow.h
src/vnet/flow/flow_cli.c