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(-)

-- 
2.21.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to