net: dcb: add new rewrite table
authorDaniel Machon <daniel.machon@microchip.com>
Wed, 18 Jan 2023 21:08:27 +0000 (22:08 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 20 Jan 2023 09:33:22 +0000 (09:33 +0000)
commit622f1b2fae2eea28a80b04f130e3bb54227699f8
treec324d1618ed9a76e84499b16089df356c1a88882
parent30568334b657e77629293dd88a35d9c21b3258fb
net: dcb: add new rewrite table

Add new rewrite table and all the required functions, offload hooks and
bookkeeping for maintaining it. The rewrite table reuses the app struct,
and the entire set of app selectors. As such, some bookeeping code can
be shared between the rewrite- and the APP table.

New functions for getting, setting and deleting entries has been added.
Apart from operating on the rewrite list, these functions do not emit a
DCB_APP_EVENT when the list os modified. The new dcb_getrewr does a
lookup based on selector and priority and returns the protocol, so that
mappings from priority to protocol, for a given selector and ifindex is
obtained.

Also, a new nested attribute has been added, that encapsulates one or
more app structs. This attribute is used to distinguish the two tables.

The dcb_lock used for the APP table is reused for the rewrite table.

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dcbnl.h
include/uapi/linux/dcbnl.h
net/dcb/dcbnl.c