Commit | Line | Data |
---|---|---|
955dc68c SMJ |
1 | /* |
2 | * Copyright Samuel Mendoza-Jonas, IBM Corporation 2018. | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License as published by | |
6 | * the Free Software Foundation; either version 2 of the License, or | |
7 | * (at your option) any later version. | |
8 | */ | |
9 | ||
10 | #ifndef __UAPI_NCSI_NETLINK_H__ | |
11 | #define __UAPI_NCSI_NETLINK_H__ | |
12 | ||
13 | /** | |
14 | * enum ncsi_nl_commands - supported NCSI commands | |
15 | * | |
16 | * @NCSI_CMD_UNSPEC: unspecified command to catch errors | |
17 | * @NCSI_CMD_PKG_INFO: list package and channel attributes. Requires | |
18 | * NCSI_ATTR_IFINDEX. If NCSI_ATTR_PACKAGE_ID is specified returns the | |
19 | * specific package and its channels - otherwise a dump request returns | |
20 | * all packages and their associated channels. | |
21 | * @NCSI_CMD_SET_INTERFACE: set preferred package and channel combination. | |
22 | * Requires NCSI_ATTR_IFINDEX and the preferred NCSI_ATTR_PACKAGE_ID and | |
23 | * optionally the preferred NCSI_ATTR_CHANNEL_ID. | |
24 | * @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination. | |
25 | * Requires NCSI_ATTR_IFINDEX. | |
9771b8cc JLD |
26 | * @NCSI_CMD_SEND_CMD: send NC-SI command to network card. |
27 | * Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID | |
28 | * and NCSI_ATTR_CHANNEL_ID. | |
8d951a75 SMJ |
29 | * @NCSI_CMD_SET_PACKAGE_MASK: set a whitelist of allowed packages. |
30 | * Requires NCSI_ATTR_IFINDEX and NCSI_ATTR_PACKAGE_MASK. | |
31 | * @NCSI_CMD_SET_CHANNEL_MASK: set a whitelist of allowed channels. | |
32 | * Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID, and | |
33 | * NCSI_ATTR_CHANNEL_MASK. If NCSI_ATTR_CHANNEL_ID is present it sets | |
34 | * the primary channel. | |
955dc68c SMJ |
35 | * @NCSI_CMD_MAX: highest command number |
36 | */ | |
37 | enum ncsi_nl_commands { | |
38 | NCSI_CMD_UNSPEC, | |
39 | NCSI_CMD_PKG_INFO, | |
40 | NCSI_CMD_SET_INTERFACE, | |
41 | NCSI_CMD_CLEAR_INTERFACE, | |
9771b8cc | 42 | NCSI_CMD_SEND_CMD, |
8d951a75 SMJ |
43 | NCSI_CMD_SET_PACKAGE_MASK, |
44 | NCSI_CMD_SET_CHANNEL_MASK, | |
955dc68c SMJ |
45 | |
46 | __NCSI_CMD_AFTER_LAST, | |
47 | NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1 | |
48 | }; | |
49 | ||
50 | /** | |
51 | * enum ncsi_nl_attrs - General NCSI netlink attributes | |
52 | * | |
53 | * @NCSI_ATTR_UNSPEC: unspecified attributes to catch errors | |
54 | * @NCSI_ATTR_IFINDEX: ifindex of network device using NCSI | |
55 | * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes | |
56 | * @NCSI_ATTR_PACKAGE_ID: package ID | |
57 | * @NCSI_ATTR_CHANNEL_ID: channel ID | |
9771b8cc | 58 | * @NCSI_ATTR_DATA: command payload |
8d951a75 SMJ |
59 | * @NCSI_ATTR_MULTI_FLAG: flag to signal that multi-mode should be enabled with |
60 | * NCSI_CMD_SET_PACKAGE_MASK or NCSI_CMD_SET_CHANNEL_MASK. | |
61 | * @NCSI_ATTR_PACKAGE_MASK: 32-bit mask of allowed packages. | |
62 | * @NCSI_ATTR_CHANNEL_MASK: 32-bit mask of allowed channels. | |
955dc68c SMJ |
63 | * @NCSI_ATTR_MAX: highest attribute number |
64 | */ | |
65 | enum ncsi_nl_attrs { | |
66 | NCSI_ATTR_UNSPEC, | |
67 | NCSI_ATTR_IFINDEX, | |
68 | NCSI_ATTR_PACKAGE_LIST, | |
69 | NCSI_ATTR_PACKAGE_ID, | |
70 | NCSI_ATTR_CHANNEL_ID, | |
9771b8cc | 71 | NCSI_ATTR_DATA, |
8d951a75 SMJ |
72 | NCSI_ATTR_MULTI_FLAG, |
73 | NCSI_ATTR_PACKAGE_MASK, | |
74 | NCSI_ATTR_CHANNEL_MASK, | |
955dc68c SMJ |
75 | |
76 | __NCSI_ATTR_AFTER_LAST, | |
77 | NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1 | |
78 | }; | |
79 | ||
80 | /** | |
81 | * enum ncsi_nl_pkg_attrs - NCSI netlink package-specific attributes | |
82 | * | |
83 | * @NCSI_PKG_ATTR_UNSPEC: unspecified attributes to catch errors | |
84 | * @NCSI_PKG_ATTR: nested array of package attributes | |
85 | * @NCSI_PKG_ATTR_ID: package ID | |
86 | * @NCSI_PKG_ATTR_FORCED: flag signifying a package has been set as preferred | |
87 | * @NCSI_PKG_ATTR_CHANNEL_LIST: nested array of NCSI_CHANNEL_ATTR attributes | |
88 | * @NCSI_PKG_ATTR_MAX: highest attribute number | |
89 | */ | |
90 | enum ncsi_nl_pkg_attrs { | |
91 | NCSI_PKG_ATTR_UNSPEC, | |
92 | NCSI_PKG_ATTR, | |
93 | NCSI_PKG_ATTR_ID, | |
94 | NCSI_PKG_ATTR_FORCED, | |
95 | NCSI_PKG_ATTR_CHANNEL_LIST, | |
96 | ||
97 | __NCSI_PKG_ATTR_AFTER_LAST, | |
98 | NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1 | |
99 | }; | |
100 | ||
101 | /** | |
102 | * enum ncsi_nl_channel_attrs - NCSI netlink channel-specific attributes | |
103 | * | |
104 | * @NCSI_CHANNEL_ATTR_UNSPEC: unspecified attributes to catch errors | |
105 | * @NCSI_CHANNEL_ATTR: nested array of channel attributes | |
106 | * @NCSI_CHANNEL_ATTR_ID: channel ID | |
107 | * @NCSI_CHANNEL_ATTR_VERSION_MAJOR: channel major version number | |
108 | * @NCSI_CHANNEL_ATTR_VERSION_MINOR: channel minor version number | |
109 | * @NCSI_CHANNEL_ATTR_VERSION_STR: channel version string | |
110 | * @NCSI_CHANNEL_ATTR_LINK_STATE: channel link state flags | |
111 | * @NCSI_CHANNEL_ATTR_ACTIVE: channels with this flag are in | |
112 | * NCSI_CHANNEL_ACTIVE state | |
113 | * @NCSI_CHANNEL_ATTR_FORCED: flag signifying a channel has been set as | |
114 | * preferred | |
115 | * @NCSI_CHANNEL_ATTR_VLAN_LIST: nested array of NCSI_CHANNEL_ATTR_VLAN_IDs | |
116 | * @NCSI_CHANNEL_ATTR_VLAN_ID: VLAN ID being filtered on this channel | |
117 | * @NCSI_CHANNEL_ATTR_MAX: highest attribute number | |
118 | */ | |
119 | enum ncsi_nl_channel_attrs { | |
120 | NCSI_CHANNEL_ATTR_UNSPEC, | |
121 | NCSI_CHANNEL_ATTR, | |
122 | NCSI_CHANNEL_ATTR_ID, | |
123 | NCSI_CHANNEL_ATTR_VERSION_MAJOR, | |
124 | NCSI_CHANNEL_ATTR_VERSION_MINOR, | |
125 | NCSI_CHANNEL_ATTR_VERSION_STR, | |
126 | NCSI_CHANNEL_ATTR_LINK_STATE, | |
127 | NCSI_CHANNEL_ATTR_ACTIVE, | |
128 | NCSI_CHANNEL_ATTR_FORCED, | |
129 | NCSI_CHANNEL_ATTR_VLAN_LIST, | |
130 | NCSI_CHANNEL_ATTR_VLAN_ID, | |
131 | ||
132 | __NCSI_CHANNEL_ATTR_AFTER_LAST, | |
133 | NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1 | |
134 | }; | |
135 | ||
136 | #endif /* __UAPI_NCSI_NETLINK_H__ */ |