[ovs-dev] [PATCH 00/15] Netdev vxlan-decap offload
Eli Britstein
elibr at nvidia.com
Wed Jan 27 18:10:21 UTC 2021
VXLAN decap in OVS-DPDK configuration consists of two flows:
F1: in_port(ens1f0),eth(),ipv4(),udp(), actions:tnl_pop(vxlan_sys_4789)
F2: tunnel(),in_port(vxlan_sys_4789),eth(),ipv4(), actions:ens1f0_0
F1 is a classification flow. It has outer headers matches and it
classifies the packet as a VXLAN packet, and using tnl_pop action the
packet continues processing in F2.
F2 is a flow that has matches on tunnel metadata as well as on the inner
packet headers (as any other flow).
In order to fully offload VXLAN decap path, both F1 and F2 should be
offloaded. As there are more than one flow in HW, it is possible that
F1 is done by HW but F2 is not. Packet is received by SW, and should be
processed starting from F2 as F1 was already done by HW.
Rte_flows are applicable only on physical port IDs. Vport flows (e.g. F2)
are applied on uplink ports attached to OVS.
This patch-set makes use of [1] introduced in DPDK 20.11, that adds API
for tunnel offloads.
Travis:
v1: https://travis-ci.org/github/elibritstein/OVS/builds/756418552
GitHub Actions:
v1: https://github.com/elibritstein/OVS/actions/runs/515334647
[1] https://mails.dpdk.org/archives/dev/2020-October/187314.html
Eli Britstein (13):
netdev-offload: Add HW miss packet state recover API
netdev-dpdk: Introduce DPDK tunnel APIs
netdev-offload-dpdk: Implement flow dump create/destroy APIs
netdev-dpdk: Add flow_api support for netdev vxlan vports
netdev-offload-dpdk: Implement HW miss packet recover for vport
dpif-netdev: Add HW miss packet state recover logic
netdev-offload-dpdk: Change log rate limits
netdev-offload-dpdk: Support tunnel pop action
netdev-offload-dpdk: Refactor offload rule creation
netdev-dpdk: Introduce an API to query if a dpdk port is an uplink
port
netdev-offload-dpdk: Map netdev and ufid to offload objects
netdev-offload-dpdk: Support vports flows offload
netdev-dpdk-offload: Add vxlan pattern matching function
Ilya Maximets (2):
netdev-offload: Allow offloading to netdev without ifindex.
netdev-offload: Disallow offloading to unrelated tunneling vports.
Documentation/howto/dpdk.rst | 1 +
NEWS | 2 +
lib/dpif-netdev.c | 49 +-
lib/netdev-dpdk.c | 135 ++++++
lib/netdev-dpdk.h | 104 ++++-
lib/netdev-offload-dpdk.c | 851 +++++++++++++++++++++++++++++-----
lib/netdev-offload-provider.h | 5 +
lib/netdev-offload-tc.c | 8 +
lib/netdev-offload.c | 29 +-
lib/netdev-offload.h | 1 +
10 files changed, 1033 insertions(+), 152 deletions(-)
--
2.28.0.546.g385c171
More information about the dev
mailing list