Commit | Line | Data |
---|---|---|
e2be04c7 | 1 | /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ |
607ca46e DH |
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 | ||
22 | enum { | |
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 | ||
32 | enum { | |
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 | ||
58 | enum { | |
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 | ||
66 | enum { | |
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 | ||
80 | enum { | |
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 | ||
88 | enum { | |
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_ */ |