dp-packet batches can hold only a fixed count of packets since their introduction.
This limitation makes it impossible to split packets/emit more than the batch size during the processing of one batch. This series proposes to dynamically grow those batches when a NETDEV_MAX_BURST threshold is reached. Sending as RFC as I did not explore many options and I would like to hear others opinions. Also, the current approach ends up with kind of duplicated logic in dpif and netdev layers. Ideally, the limitations on the maximum size of a batch to be transmitted would be netdev specific but dpif-netdev code has some ties with the fixed size ([NETDEV_MAX_BURST] arrays). -- David Marchand David Marchand (9): tests: Add a helper to check coverage counters. dpif-netdev.at: Remove non POSIX grep option. dpif-netdev: Remove ambiguous array size. dpif-netdev: Prepare for dynamic packet batches. dp-packet: Prepare for dynamic packet batches. dp-packet: Introduce dynamic packet batches. ipf: Use dynamic packet batches. dp-packet-gso: Use dynamic packet batches. netdev: Use software GSO for nested tunnels. Documentation/topics/userspace-tso.rst | 4 +- lib/dp-packet-gso.c | 66 ++++---- lib/dp-packet-gso.h | 4 +- lib/dp-packet.c | 24 +++ lib/dp-packet.h | 82 ++++++---- lib/dpif-netdev-avx512.c | 5 +- lib/dpif-netdev.c | 157 ++++++++++++++---- lib/dpif.c | 1 + lib/ipf.c | 49 ++---- lib/netdev-afxdp.c | 2 +- lib/netdev-bsd.c | 3 +- lib/netdev-dpdk.c | 4 +- lib/netdev-dummy.c | 3 +- lib/netdev-linux.c | 2 +- lib/netdev.c | 190 +++++++++------------- lib/odp-execute-private.c | 2 + lib/odp-execute.c | 5 +- tests/dpif-netdev.at | 214 ++++++++++++++++--------- tests/drop-stats.at | 60 ++----- tests/ofproto-dpif.at | 140 ++++++++++++---- tests/ofproto-macros.at | 18 ++- tests/system-offloads-traffic.at | 4 +- tests/test-conntrack.c | 10 +- tests/tunnel-push-pop-ipv6.at | 30 ++-- tests/tunnel-push-pop.at | 36 ++--- tests/tunnel.at | 6 +- 26 files changed, 659 insertions(+), 462 deletions(-) -- 2.53.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
