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

Reply via email to