master
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2/* Do not edit directly, auto-generated from: */
3/* Documentation/netlink/specs/net_shaper.yaml */
4/* YNL-GEN uapi header */
5
6#ifndef _LINUX_NET_SHAPER_H
7#define _LINUX_NET_SHAPER_H
8
9#define NET_SHAPER_FAMILY_NAME "net-shaper"
10#define NET_SHAPER_FAMILY_VERSION 1
11
12/**
13 * enum net_shaper_scope - Defines the shaper @id interpretation.
14 * @NET_SHAPER_SCOPE_UNSPEC: The scope is not specified.
15 * @NET_SHAPER_SCOPE_NETDEV: The main shaper for the given network device.
16 * @NET_SHAPER_SCOPE_QUEUE: The shaper is attached to the given device queue,
17 * the @id represents the queue number.
18 * @NET_SHAPER_SCOPE_NODE: The shaper allows grouping of queues or other node
19 * shapers; can be nested in either @netdev shapers or other @node shapers,
20 * allowing placement in any location of the scheduling tree, except leaves
21 * and root.
22 */
23enum net_shaper_scope {
24 NET_SHAPER_SCOPE_UNSPEC,
25 NET_SHAPER_SCOPE_NETDEV,
26 NET_SHAPER_SCOPE_QUEUE,
27 NET_SHAPER_SCOPE_NODE,
28
29 /* private: */
30 __NET_SHAPER_SCOPE_MAX,
31 NET_SHAPER_SCOPE_MAX = (__NET_SHAPER_SCOPE_MAX - 1)
32};
33
34/**
35 * enum net_shaper_metric - Different metric supported by the shaper.
36 * @NET_SHAPER_METRIC_BPS: Shaper operates on a bits per second basis.
37 * @NET_SHAPER_METRIC_PPS: Shaper operates on a packets per second basis.
38 */
39enum net_shaper_metric {
40 NET_SHAPER_METRIC_BPS,
41 NET_SHAPER_METRIC_PPS,
42};
43
44enum {
45 NET_SHAPER_A_HANDLE = 1,
46 NET_SHAPER_A_METRIC,
47 NET_SHAPER_A_BW_MIN,
48 NET_SHAPER_A_BW_MAX,
49 NET_SHAPER_A_BURST,
50 NET_SHAPER_A_PRIORITY,
51 NET_SHAPER_A_WEIGHT,
52 NET_SHAPER_A_IFINDEX,
53 NET_SHAPER_A_PARENT,
54 NET_SHAPER_A_LEAVES,
55
56 __NET_SHAPER_A_MAX,
57 NET_SHAPER_A_MAX = (__NET_SHAPER_A_MAX - 1)
58};
59
60enum {
61 NET_SHAPER_A_HANDLE_SCOPE = 1,
62 NET_SHAPER_A_HANDLE_ID,
63
64 __NET_SHAPER_A_HANDLE_MAX,
65 NET_SHAPER_A_HANDLE_MAX = (__NET_SHAPER_A_HANDLE_MAX - 1)
66};
67
68enum {
69 NET_SHAPER_A_CAPS_IFINDEX = 1,
70 NET_SHAPER_A_CAPS_SCOPE,
71 NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS,
72 NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS,
73 NET_SHAPER_A_CAPS_SUPPORT_NESTING,
74 NET_SHAPER_A_CAPS_SUPPORT_BW_MIN,
75 NET_SHAPER_A_CAPS_SUPPORT_BW_MAX,
76 NET_SHAPER_A_CAPS_SUPPORT_BURST,
77 NET_SHAPER_A_CAPS_SUPPORT_PRIORITY,
78 NET_SHAPER_A_CAPS_SUPPORT_WEIGHT,
79
80 __NET_SHAPER_A_CAPS_MAX,
81 NET_SHAPER_A_CAPS_MAX = (__NET_SHAPER_A_CAPS_MAX - 1)
82};
83
84enum {
85 NET_SHAPER_CMD_GET = 1,
86 NET_SHAPER_CMD_SET,
87 NET_SHAPER_CMD_DELETE,
88 NET_SHAPER_CMD_GROUP,
89 NET_SHAPER_CMD_CAP_GET,
90
91 __NET_SHAPER_CMD_MAX,
92 NET_SHAPER_CMD_MAX = (__NET_SHAPER_CMD_MAX - 1)
93};
94
95#endif /* _LINUX_NET_SHAPER_H */