104e65df9SPaolo Abeni /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 204e65df9SPaolo Abeni /* Do not edit directly, auto-generated from: */ 304e65df9SPaolo Abeni /* Documentation/netlink/specs/net_shaper.yaml */ 404e65df9SPaolo Abeni /* YNL-GEN uapi header */ 504e65df9SPaolo Abeni 604e65df9SPaolo Abeni #ifndef _UAPI_LINUX_NET_SHAPER_H 704e65df9SPaolo Abeni #define _UAPI_LINUX_NET_SHAPER_H 804e65df9SPaolo Abeni 904e65df9SPaolo Abeni #define NET_SHAPER_FAMILY_NAME "net-shaper" 1004e65df9SPaolo Abeni #define NET_SHAPER_FAMILY_VERSION 1 1104e65df9SPaolo Abeni 1204e65df9SPaolo Abeni /** 1304e65df9SPaolo Abeni * enum net_shaper_scope - Defines the shaper @id interpretation. 1404e65df9SPaolo Abeni * @NET_SHAPER_SCOPE_UNSPEC: The scope is not specified. 1504e65df9SPaolo Abeni * @NET_SHAPER_SCOPE_NETDEV: The main shaper for the given network device. 1604e65df9SPaolo Abeni * @NET_SHAPER_SCOPE_QUEUE: The shaper is attached to the given device queue, 1704e65df9SPaolo Abeni * the @id represents the queue number. 1804e65df9SPaolo Abeni * @NET_SHAPER_SCOPE_NODE: The shaper allows grouping of queues or other node 1904e65df9SPaolo Abeni * shapers; can be nested in either @netdev shapers or other @node shapers, 2004e65df9SPaolo Abeni * allowing placement in any location of the scheduling tree, except leaves 2104e65df9SPaolo Abeni * and root. 2204e65df9SPaolo Abeni */ 2304e65df9SPaolo Abeni enum net_shaper_scope { 2404e65df9SPaolo Abeni NET_SHAPER_SCOPE_UNSPEC, 2504e65df9SPaolo Abeni NET_SHAPER_SCOPE_NETDEV, 2604e65df9SPaolo Abeni NET_SHAPER_SCOPE_QUEUE, 2704e65df9SPaolo Abeni NET_SHAPER_SCOPE_NODE, 2804e65df9SPaolo Abeni 2904e65df9SPaolo Abeni /* private: */ 3004e65df9SPaolo Abeni __NET_SHAPER_SCOPE_MAX, 3104e65df9SPaolo Abeni NET_SHAPER_SCOPE_MAX = (__NET_SHAPER_SCOPE_MAX - 1) 3204e65df9SPaolo Abeni }; 3304e65df9SPaolo Abeni 3404e65df9SPaolo Abeni /** 3504e65df9SPaolo Abeni * enum net_shaper_metric - Different metric supported by the shaper. 3604e65df9SPaolo Abeni * @NET_SHAPER_METRIC_BPS: Shaper operates on a bits per second basis. 3704e65df9SPaolo Abeni * @NET_SHAPER_METRIC_PPS: Shaper operates on a packets per second basis. 3804e65df9SPaolo Abeni */ 3904e65df9SPaolo Abeni enum net_shaper_metric { 4004e65df9SPaolo Abeni NET_SHAPER_METRIC_BPS, 4104e65df9SPaolo Abeni NET_SHAPER_METRIC_PPS, 4204e65df9SPaolo Abeni }; 4304e65df9SPaolo Abeni 4404e65df9SPaolo Abeni enum { 4504e65df9SPaolo Abeni NET_SHAPER_A_HANDLE = 1, 4604e65df9SPaolo Abeni NET_SHAPER_A_METRIC, 4704e65df9SPaolo Abeni NET_SHAPER_A_BW_MIN, 4804e65df9SPaolo Abeni NET_SHAPER_A_BW_MAX, 4904e65df9SPaolo Abeni NET_SHAPER_A_BURST, 5004e65df9SPaolo Abeni NET_SHAPER_A_PRIORITY, 5104e65df9SPaolo Abeni NET_SHAPER_A_WEIGHT, 5204e65df9SPaolo Abeni NET_SHAPER_A_IFINDEX, 5304e65df9SPaolo Abeni NET_SHAPER_A_PARENT, 5404e65df9SPaolo Abeni NET_SHAPER_A_LEAVES, 5504e65df9SPaolo Abeni 5604e65df9SPaolo Abeni __NET_SHAPER_A_MAX, 5704e65df9SPaolo Abeni NET_SHAPER_A_MAX = (__NET_SHAPER_A_MAX - 1) 5804e65df9SPaolo Abeni }; 5904e65df9SPaolo Abeni 6004e65df9SPaolo Abeni enum { 6104e65df9SPaolo Abeni NET_SHAPER_A_HANDLE_SCOPE = 1, 6204e65df9SPaolo Abeni NET_SHAPER_A_HANDLE_ID, 6304e65df9SPaolo Abeni 6404e65df9SPaolo Abeni __NET_SHAPER_A_HANDLE_MAX, 6504e65df9SPaolo Abeni NET_SHAPER_A_HANDLE_MAX = (__NET_SHAPER_A_HANDLE_MAX - 1) 6604e65df9SPaolo Abeni }; 6704e65df9SPaolo Abeni 6804e65df9SPaolo Abeni enum { 69*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_IFINDEX = 1, 70*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SCOPE, 71*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_METRIC_BPS, 72*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_METRIC_PPS, 73*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_NESTING, 74*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_BW_MIN, 75*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_BW_MAX, 76*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_BURST, 77*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_PRIORITY, 78*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_SUPPORT_WEIGHT, 79*14bba928SPaolo Abeni 80*14bba928SPaolo Abeni __NET_SHAPER_A_CAPS_MAX, 81*14bba928SPaolo Abeni NET_SHAPER_A_CAPS_MAX = (__NET_SHAPER_A_CAPS_MAX - 1) 82*14bba928SPaolo Abeni }; 83*14bba928SPaolo Abeni 84*14bba928SPaolo Abeni enum { 8504e65df9SPaolo Abeni NET_SHAPER_CMD_GET = 1, 8604e65df9SPaolo Abeni NET_SHAPER_CMD_SET, 8704e65df9SPaolo Abeni NET_SHAPER_CMD_DELETE, 8804e65df9SPaolo Abeni NET_SHAPER_CMD_GROUP, 89*14bba928SPaolo Abeni NET_SHAPER_CMD_CAP_GET, 9004e65df9SPaolo Abeni 9104e65df9SPaolo Abeni __NET_SHAPER_CMD_MAX, 9204e65df9SPaolo Abeni NET_SHAPER_CMD_MAX = (__NET_SHAPER_CMD_MAX - 1) 9304e65df9SPaolo Abeni }; 9404e65df9SPaolo Abeni 9504e65df9SPaolo Abeni #endif /* _UAPI_LINUX_NET_SHAPER_H */ 96