[ovs-dev] [PATCH V6 00/18] netdev datapath actions offload

Eli Britstein elibr at mellanox.com
Mon Jan 6 09:23:54 UTC 2020


Ilya, are there more issues to be addressed or can we merge it?

Thanks, Eli


On 12/19/2019 1:54 PM, Eli Britstein wrote:
> Currently, netdev datapath offload only accelerates the flow match
> sequence by associating a mark per flow. This series introduces the full
> offload of netdev datapath flows by having the HW also perform the flow
> actions.
>
> This series adds HW offload for output, drop, set MAC, set IPv4, set
> TCP/UDP ports and tunnel push actions using the DPDK rte_flow API.
>
> v1 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F614511472&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988228514&sdata=%2BJkAZAGl23vyOKcI1tCBXYIiiv5HVWPvwx7z5Sq8nSk%3D&reserved=0
> v2 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F619262148&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988228514&sdata=O0FfNv9g%2BOAvciIdqA7DlPmeKmy0gvRV49rwZLQ74kM%3D&reserved=0
> v3 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F622253870&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988238510&sdata=ZunPNPTqZ3m1En93FKTtq9DdlI14089ztGWGOnulXo8%3D&reserved=0
> v4 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F625654160&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988238510&sdata=C5fisZiFmNlR4Et%2BA9ErKPsLAr8m7xoLQBv2OT%2Bq1hk%3D&reserved=0
> v5 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F626692202&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988238510&sdata=M7mF64Hehjjkk1IvZG8GjmPSIiK2wGfJL6Kh0x9RuO0%3D&reserved=0
> v6 Travis passed: https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftravis-ci.org%2Felibritstein%2FOVS%2Fbuilds%2F627132194&data=02%7C01%7Celibr%40mellanox.com%7C1352d3096c2b498d410d08d7847a452c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637123532988238510&sdata=15VexGKFktTA%2BVYvLuir%2BjbAjxmrbT4quS67SlaLZ4o%3D&reserved=0
>
> v1-v2:
> - fallback to mark/rss in case of any failure of action offload.
> - dp_layer changed to "in_hw" in case the flow is offloaded.
> - using netdev_ports_get instead of dp_netdev_lookup_port in stats reading.
> - using flow_dump_next API instead of a new API.
> - validity checks for last action of output and clone.
> - count action should be done for drop as well.
> - validity check for output action.
> - added doc in Documentation/howto/dpdk.rst.
> v2-v3:
> - removed refactoring for netdev-offload-dpdk-flow.c file.
> - dropped flush commits.
> - dbg prints rate-limited, and outside lock.
> - added validity check for output action - same flow_api handle for both netdevs.
> - added a mutex to protect possible concurrent deletion/querying of a flow.
> - statistics are collected using flow_get API.
> - added more documentation in Documentation/howto/dpdk.rst.
> v3-v4:
> - debug prints moved to netdev-offload-dpdk.c.
> - flow get returns full stats, not diff.
> - removed additional fields from offload_info and dp_netdev_flow.
> - read HW stats during dpif_netdev_flow_get as well as
>    dpif_netdev_flow_dump_next.
> - moved actions offload framework just before support commit.
> - fixed memory leak in rewrite code.
> - dropped clone commit - will be posted in next series.
> v4-v5:
> - statistics collecting changed to populate dp_layer and offloaded
>    attributes. dp_layer changed to "dpdk" for fully offloaded by dpdk.
> - display offloaded:partial for partially offloaded flows.
> - support filter types "dpdk" and "partially-offloaded" in
>    dpctl/dump-flows type=X.
> - simplify code readability of rewrite commits.
> v5-v6:
> - debug prints improvement for partial offload installations. dbg prints
>    for failed actions, warn for other failure.
> - fixed memory leak in case retrieved dpdk port-id is invalid.
>
> Eli Britstein (17):
>    netdev-offload-dpdk: Refactor flow patterns
>    netdev-offload-dpdk: Refactor action items freeing scheme
>    netdev-offload-dpdk: Dynamically allocate pattern items
>    netdev-offload-dpdk: Improve HW offload flow debuggability
>    netdev-dpdk: Introduce rte flow query function
>    netdev-offload-dpdk: Return UFID-rte_flow entry in find method
>    netdev-offload-dpdk: Framework for actions offload
>    netdev-offload-dpdk: Implement flow get method
>    dpctl: Support dump-flows filters "dpdk" and "partially-offloaded"
>    dpif-netdev: Populate dpif class field in offload struct
>    netdev-dpdk: Getter function for dpdk port id API
>    netdev-offload: Introduce a function to validate same flow api handle
>    netdev-offload-dpdk: Support offload of output action
>    netdev-offload-dpdk: Support offload of drop action
>    netdev-offload-dpdk: Support offload of set MAC actions
>    netdev-offload-dpdk: Support offload of set IPv4 actions
>    netdev-offload-dpdk: Support offload of set TCP/UDP ports actions
>
> Ophir Munk (1):
>    dpif-netdev: Update offloaded flows statistics
>
>   Documentation/howto/dpdk.rst  |  21 +-
>   NEWS                          |   5 +
>   lib/dpctl.c                   |  97 +++--
>   lib/dpctl.man                 |   2 +
>   lib/dpif-netdev.c             |  81 +++-
>   lib/netdev-dpdk.c             |  48 +++
>   lib/netdev-dpdk.h             |   8 +
>   lib/netdev-offload-dpdk.c     | 964 ++++++++++++++++++++++++++++++++----------
>   lib/netdev-offload-provider.h |   1 +
>   lib/netdev-offload.c          |  12 +
>   10 files changed, 972 insertions(+), 267 deletions(-)
>


More information about the dev mailing list