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