1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/*
3 * include/linux/if_team.h - Network team device driver header
4 * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 */
11
12#ifndef _UAPI_LINUX_IF_TEAM_H_
13#define _UAPI_LINUX_IF_TEAM_H_
14
15
16#define TEAM_STRING_MAX_LEN 32
17
18/**********************************
19 * NETLINK_GENERIC netlink family.
20 **********************************/
21
22enum {
23 TEAM_CMD_NOOP,
24 TEAM_CMD_OPTIONS_SET,
25 TEAM_CMD_OPTIONS_GET,
26 TEAM_CMD_PORT_LIST_GET,
27
28 __TEAM_CMD_MAX,
29 TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
30};
31
32enum {
33 TEAM_ATTR_UNSPEC,
34 TEAM_ATTR_TEAM_IFINDEX, /* u32 */
35 TEAM_ATTR_LIST_OPTION, /* nest */
36 TEAM_ATTR_LIST_PORT, /* nest */
37
38 __TEAM_ATTR_MAX,
39 TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
40};
41
42/* Nested layout of get/set msg:
43 *
44 * [TEAM_ATTR_LIST_OPTION]
45 * [TEAM_ATTR_ITEM_OPTION]
46 * [TEAM_ATTR_OPTION_*], ...
47 * [TEAM_ATTR_ITEM_OPTION]
48 * [TEAM_ATTR_OPTION_*], ...
49 * ...
50 * [TEAM_ATTR_LIST_PORT]
51 * [TEAM_ATTR_ITEM_PORT]
52 * [TEAM_ATTR_PORT_*], ...
53 * [TEAM_ATTR_ITEM_PORT]
54 * [TEAM_ATTR_PORT_*], ...
55 * ...
56 */
57
58enum {
59 TEAM_ATTR_ITEM_OPTION_UNSPEC,
60 TEAM_ATTR_ITEM_OPTION, /* nest */
61
62 __TEAM_ATTR_ITEM_OPTION_MAX,
63 TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
64};
65
66enum {
67 TEAM_ATTR_OPTION_UNSPEC,
68 TEAM_ATTR_OPTION_NAME, /* string */
69 TEAM_ATTR_OPTION_CHANGED, /* flag */
70 TEAM_ATTR_OPTION_TYPE, /* u8 */
71 TEAM_ATTR_OPTION_DATA, /* dynamic */
72 TEAM_ATTR_OPTION_REMOVED, /* flag */
73 TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */
74 TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */
75
76 __TEAM_ATTR_OPTION_MAX,
77 TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
78};
79
80enum {
81 TEAM_ATTR_ITEM_PORT_UNSPEC,
82 TEAM_ATTR_ITEM_PORT, /* nest */
83
84 __TEAM_ATTR_ITEM_PORT_MAX,
85 TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
86};
87
88enum {
89 TEAM_ATTR_PORT_UNSPEC,
90 TEAM_ATTR_PORT_IFINDEX, /* u32 */
91 TEAM_ATTR_PORT_CHANGED, /* flag */
92 TEAM_ATTR_PORT_LINKUP, /* flag */
93 TEAM_ATTR_PORT_SPEED, /* u32 */
94 TEAM_ATTR_PORT_DUPLEX, /* u8 */
95 TEAM_ATTR_PORT_REMOVED, /* flag */
96
97 __TEAM_ATTR_PORT_MAX,
98 TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
99};
100
101/*
102 * NETLINK_GENERIC related info
103 */
104#define TEAM_GENL_NAME "team"
105#define TEAM_GENL_VERSION 0x1
106#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
107
108#endif /* _UAPI_LINUX_IF_TEAM_H_ */
109

source code of linux/include/uapi/linux/if_team.h