On 07.01.2020 20:28, Eli Britstein wrote: > > On 1/7/2020 8:46 PM, Ilya Maximets wrote: >> On 19.12.2019 12:54, 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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=UqEGA9tXfFErL6KKI7P5X7Zvm0Krzq9KKTfvyL42T1Q%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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=mCB5n2eGbdhDBax7izO4UdIvdVhjZBgu6hOtF65EfCk%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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=UFfB8mkbOJkCMdk7QRa6CgXbHjlEGVPDx5KAx%2B%2FlLcI%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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=EkGoIBwCfTOb9d2EE5qDf9Akkbr6cK9JD%2BoUhK8kjrY%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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=4UXr57%2BFYhSo4Ujtc5L5F14TligA%2BTQCiM8O7WtheaE%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%7Cfb80a09d7b9a4b5dc7da08d793a1fac6%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C637140196234511900&sdata=FvyoWaNsKKQR%2FDlM%2BjAWbberGIkKFi1076Z5lQOOmN4%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(-) >>> >> Hi. I still didn't reach the actual code review, but I applied the series >> and tried to make some tests. Few things: >> 1. Unfortunately, with this patch-set applied, "make check-offloads" doesn't >> work at all. I didn't investigate yet, but it seems that flow dumping is >> not working as expected. > I see it doesn't work on master as well. I'll look for the offending commit.
It works on master (a13a02097) for me. Doesn't work with patch-set applied. >> 2. patch-set needs a rebase on current master. >> 3. Since commit a13a0209750c ("userspace: Improved packet drop statistics.") >> you need to add support for explicit drop action as I told previously >> (OVS_ACTION_ATTR_DROP). > OK. >> >> You may start fixing/implementing this. Meanwhile, I'll continue my review >> and investigation. >> >> Best regards, Ilya Maximets. _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev