mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2026-01-27 12:47:24 +01:00
Define the user-space visible interface to query, configure and delete network shapers via yaml definition. Add dummy implementations for the relevant NL callbacks. set() and delete() operations touch a single shaper creating/updating or deleting it. The group() operation creates a shaper's group, nesting multiple input shapers under the specified output shaper. Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com> Link: https://patch.msgid.link/7a33a1ff370bdbcd0cd3f909575c912cd56f41da.1728460186.git.pabeni@redhat.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
79 lines
2.1 KiB
C
79 lines
2.1 KiB
C
/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
|
/* Do not edit directly, auto-generated from: */
|
|
/* Documentation/netlink/specs/net_shaper.yaml */
|
|
/* YNL-GEN uapi header */
|
|
|
|
#ifndef _UAPI_LINUX_NET_SHAPER_H
|
|
#define _UAPI_LINUX_NET_SHAPER_H
|
|
|
|
#define NET_SHAPER_FAMILY_NAME "net-shaper"
|
|
#define NET_SHAPER_FAMILY_VERSION 1
|
|
|
|
/**
|
|
* enum net_shaper_scope - Defines the shaper @id interpretation.
|
|
* @NET_SHAPER_SCOPE_UNSPEC: The scope is not specified.
|
|
* @NET_SHAPER_SCOPE_NETDEV: The main shaper for the given network device.
|
|
* @NET_SHAPER_SCOPE_QUEUE: The shaper is attached to the given device queue,
|
|
* the @id represents the queue number.
|
|
* @NET_SHAPER_SCOPE_NODE: The shaper allows grouping of queues or other node
|
|
* shapers; can be nested in either @netdev shapers or other @node shapers,
|
|
* allowing placement in any location of the scheduling tree, except leaves
|
|
* and root.
|
|
*/
|
|
enum net_shaper_scope {
|
|
NET_SHAPER_SCOPE_UNSPEC,
|
|
NET_SHAPER_SCOPE_NETDEV,
|
|
NET_SHAPER_SCOPE_QUEUE,
|
|
NET_SHAPER_SCOPE_NODE,
|
|
|
|
/* private: */
|
|
__NET_SHAPER_SCOPE_MAX,
|
|
NET_SHAPER_SCOPE_MAX = (__NET_SHAPER_SCOPE_MAX - 1)
|
|
};
|
|
|
|
/**
|
|
* enum net_shaper_metric - Different metric supported by the shaper.
|
|
* @NET_SHAPER_METRIC_BPS: Shaper operates on a bits per second basis.
|
|
* @NET_SHAPER_METRIC_PPS: Shaper operates on a packets per second basis.
|
|
*/
|
|
enum net_shaper_metric {
|
|
NET_SHAPER_METRIC_BPS,
|
|
NET_SHAPER_METRIC_PPS,
|
|
};
|
|
|
|
enum {
|
|
NET_SHAPER_A_HANDLE = 1,
|
|
NET_SHAPER_A_METRIC,
|
|
NET_SHAPER_A_BW_MIN,
|
|
NET_SHAPER_A_BW_MAX,
|
|
NET_SHAPER_A_BURST,
|
|
NET_SHAPER_A_PRIORITY,
|
|
NET_SHAPER_A_WEIGHT,
|
|
NET_SHAPER_A_IFINDEX,
|
|
NET_SHAPER_A_PARENT,
|
|
NET_SHAPER_A_LEAVES,
|
|
|
|
__NET_SHAPER_A_MAX,
|
|
NET_SHAPER_A_MAX = (__NET_SHAPER_A_MAX - 1)
|
|
};
|
|
|
|
enum {
|
|
NET_SHAPER_A_HANDLE_SCOPE = 1,
|
|
NET_SHAPER_A_HANDLE_ID,
|
|
|
|
__NET_SHAPER_A_HANDLE_MAX,
|
|
NET_SHAPER_A_HANDLE_MAX = (__NET_SHAPER_A_HANDLE_MAX - 1)
|
|
};
|
|
|
|
enum {
|
|
NET_SHAPER_CMD_GET = 1,
|
|
NET_SHAPER_CMD_SET,
|
|
NET_SHAPER_CMD_DELETE,
|
|
NET_SHAPER_CMD_GROUP,
|
|
|
|
__NET_SHAPER_CMD_MAX,
|
|
NET_SHAPER_CMD_MAX = (__NET_SHAPER_CMD_MAX - 1)
|
|
};
|
|
|
|
#endif /* _UAPI_LINUX_NET_SHAPER_H */
|