mbox series

[ovs-dev,v2,0/6] Adding support for multiple destinations

Message ID 20210823160140.12788-1-salems@nvidia.com
Headers show
Series Adding support for multiple destinations | expand

Message

Salem Sol Aug. 23, 2021, 4:01 p.m. UTC
This series adds support offloading multiple "output"/"clone" actions within one datapath flow.

Some cases which require sending a packet to multiple destinations is not currently offloaded,
HWOL can be done by translating the fate actions "output" and "clone" into rte_flow_action_sample actions
with ratio=1, this means 100% of the traffic will be mirrored.

Such datapath rules can be offloaded by embedding each non-last output/clone
action into an RTE_FLOW_ACTION_TYPE_SAMPLE with ratio=1.

Currently there are two types on mutiple destination outputs, forward to port (local), or 
encapsulate a packet and forward to a remote server (remote). Add support for those cases
by having the sample action be either RTE_FLOW_ACTION_TYPE_PORT_ID for local destinations, or
RTE_FLOW_ACTION_TYPE_RAW_ENCAP for remote destinations.

This patch is a rebased version of [1].

*V2: 
    - Fix build issues due to a missing patch in V1.
    - Link to Github Actions with a passing build for this series [2].

[1] https://patchwork.ozlabs.org/project/openvswitch/list/?series=246448
[2] https://github.com/salemsol/ovs/actions/runs/1157741203

Noa Levy (6):
  netdev-offload-dpdk: Introduce a get_netdev_by_port helper function
  netdev-offload-dpdk: Introduce a dump_port_id helper function
  netdev-offload-dpdk: Introduce a dump_raw_encap helper function
  netdev-offload-dpdk: Support multiple local destinations
  netdev-offload-dpdk: Extract raw_encap and output netdev by
    parse_clone_actions
  netdev-offload-dpdk: Support multiple remote destinations

 NEWS                      |   2 +
 lib/netdev-offload-dpdk.c | 268 ++++++++++++++++++++++++++++++--------
 2 files changed, 215 insertions(+), 55 deletions(-)