Subject: [PATCH net-next 0/5] net: introduce TX shaping H/W offload API

From: Paolo Abeni <[email-masked]>
Date: Thu, 27 Jun 2024 22:17:17 +0200

We have a plurality of shaping-related drivers API, but none flexible
enough to meet existing demand from vendors[1].

This series introduces new device APIs to configure in a flexible way
TX shaping H/W offload. The new functionalities are exposed via a newly
defined generic netlink interface and include introspection
capabilities. Some basic self-tests are included, on top of a dummy
netdevsim implementation.

The ice driver support is currently a WIP, sharing the current status
earlier since some APIs details are still under discussion.

RFC: https://lore.kernel.org/netdev/[email-masked]/

[1] https://lore.kernel.org/netdev/[email-masked]/

Paolo Abeni (5):
  netlink: spec: add shaper YAML spec
  net: introduce HW Rate limiting driver API
  netlink: spec: add shaper introspection support
  net: shaper: implement introspection support
  testing: net-drv: add basic shaper test

 Documentation/netlink/specs/shaper.yaml       | 276 +++++++
 drivers/net/Kconfig                           |   1 +
 drivers/net/netdevsim/netdev.c                |  29 +
 include/linux/netdevice.h                     |  16 +
 include/net/net_shaper.h                      | 208 ++++++
 include/uapi/linux/net_shaper.h               |  90 +++
 net/Kconfig                                   |   3 +
 net/Makefile                                  |   1 +
 net/core/dev.c                                |   2 +
 net/core/dev.h                                |   6 +
 net/shaper/Makefile                           |   9 +
 net/shaper/shaper.c                           | 686 ++++++++++++++++++
 net/shaper/shaper_nl_gen.c                    | 118 +++
 net/shaper/shaper_nl_gen.h                    |  28 +
 tools/testing/selftests/drivers/net/Makefile  |   1 +
 tools/testing/selftests/drivers/net/shaper.py | 198 +++++
 .../testing/selftests/net/lib/py/__init__.py  |   1 +
 tools/testing/selftests/net/lib/py/ynl.py     |   5 +
 18 files changed, 1678 insertions(+)
 create mode 100644 Documentation/netlink/specs/shaper.yaml
 create mode 100644 include/net/net_shaper.h
 create mode 100644 include/uapi/linux/net_shaper.h
 create mode 100644 net/shaper/Makefile
 create mode 100644 net/shaper/shaper.c
 create mode 100644 net/shaper/shaper_nl_gen.c
 create mode 100644 net/shaper/shaper_nl_gen.h
 create mode 100755 tools/testing/selftests/drivers/net/shaper.py

-- 
2.45.1