xref: /linux/include/uapi/linux/ncsi.h (revision 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392)
1955dc68cSSamuel Mendoza-Jonas /*
2955dc68cSSamuel Mendoza-Jonas  * Copyright Samuel Mendoza-Jonas, IBM Corporation 2018.
3955dc68cSSamuel Mendoza-Jonas  *
4955dc68cSSamuel Mendoza-Jonas  * This program is free software; you can redistribute it and/or modify
5955dc68cSSamuel Mendoza-Jonas  * it under the terms of the GNU General Public License as published by
6955dc68cSSamuel Mendoza-Jonas  * the Free Software Foundation; either version 2 of the License, or
7955dc68cSSamuel Mendoza-Jonas  * (at your option) any later version.
8955dc68cSSamuel Mendoza-Jonas  */
9955dc68cSSamuel Mendoza-Jonas 
10955dc68cSSamuel Mendoza-Jonas #ifndef __UAPI_NCSI_NETLINK_H__
11955dc68cSSamuel Mendoza-Jonas #define __UAPI_NCSI_NETLINK_H__
12955dc68cSSamuel Mendoza-Jonas 
13955dc68cSSamuel Mendoza-Jonas /**
14955dc68cSSamuel Mendoza-Jonas  * enum ncsi_nl_commands - supported NCSI commands
15955dc68cSSamuel Mendoza-Jonas  *
16955dc68cSSamuel Mendoza-Jonas  * @NCSI_CMD_UNSPEC: unspecified command to catch errors
17955dc68cSSamuel Mendoza-Jonas  * @NCSI_CMD_PKG_INFO: list package and channel attributes. Requires
18955dc68cSSamuel Mendoza-Jonas  *	NCSI_ATTR_IFINDEX. If NCSI_ATTR_PACKAGE_ID is specified returns the
19955dc68cSSamuel Mendoza-Jonas  *	specific package and its channels - otherwise a dump request returns
20955dc68cSSamuel Mendoza-Jonas  *	all packages and their associated channels.
21955dc68cSSamuel Mendoza-Jonas  * @NCSI_CMD_SET_INTERFACE: set preferred package and channel combination.
22955dc68cSSamuel Mendoza-Jonas  *	Requires NCSI_ATTR_IFINDEX and the preferred NCSI_ATTR_PACKAGE_ID and
23955dc68cSSamuel Mendoza-Jonas  *	optionally the preferred NCSI_ATTR_CHANNEL_ID.
24955dc68cSSamuel Mendoza-Jonas  * @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.
25955dc68cSSamuel Mendoza-Jonas  *	Requires NCSI_ATTR_IFINDEX.
26*9771b8ccSJustin.Lee1@Dell.com  * @NCSI_CMD_SEND_CMD: send NC-SI command to network card.
27*9771b8ccSJustin.Lee1@Dell.com  *	Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID
28*9771b8ccSJustin.Lee1@Dell.com  *	and NCSI_ATTR_CHANNEL_ID.
29955dc68cSSamuel Mendoza-Jonas  * @NCSI_CMD_MAX: highest command number
30955dc68cSSamuel Mendoza-Jonas  */
31955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_commands {
32955dc68cSSamuel Mendoza-Jonas 	NCSI_CMD_UNSPEC,
33955dc68cSSamuel Mendoza-Jonas 	NCSI_CMD_PKG_INFO,
34955dc68cSSamuel Mendoza-Jonas 	NCSI_CMD_SET_INTERFACE,
35955dc68cSSamuel Mendoza-Jonas 	NCSI_CMD_CLEAR_INTERFACE,
36*9771b8ccSJustin.Lee1@Dell.com 	NCSI_CMD_SEND_CMD,
37955dc68cSSamuel Mendoza-Jonas 
38955dc68cSSamuel Mendoza-Jonas 	__NCSI_CMD_AFTER_LAST,
39955dc68cSSamuel Mendoza-Jonas 	NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
40955dc68cSSamuel Mendoza-Jonas };
41955dc68cSSamuel Mendoza-Jonas 
42955dc68cSSamuel Mendoza-Jonas /**
43955dc68cSSamuel Mendoza-Jonas  * enum ncsi_nl_attrs - General NCSI netlink attributes
44955dc68cSSamuel Mendoza-Jonas  *
45955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_UNSPEC: unspecified attributes to catch errors
46955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_IFINDEX: ifindex of network device using NCSI
47955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes
48955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_PACKAGE_ID: package ID
49955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_CHANNEL_ID: channel ID
50*9771b8ccSJustin.Lee1@Dell.com  * @NCSI_ATTR_DATA: command payload
51955dc68cSSamuel Mendoza-Jonas  * @NCSI_ATTR_MAX: highest attribute number
52955dc68cSSamuel Mendoza-Jonas  */
53955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_attrs {
54955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_UNSPEC,
55955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_IFINDEX,
56955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_PACKAGE_LIST,
57955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_PACKAGE_ID,
58955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_CHANNEL_ID,
59*9771b8ccSJustin.Lee1@Dell.com 	NCSI_ATTR_DATA,
60955dc68cSSamuel Mendoza-Jonas 
61955dc68cSSamuel Mendoza-Jonas 	__NCSI_ATTR_AFTER_LAST,
62955dc68cSSamuel Mendoza-Jonas 	NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
63955dc68cSSamuel Mendoza-Jonas };
64955dc68cSSamuel Mendoza-Jonas 
65955dc68cSSamuel Mendoza-Jonas /**
66955dc68cSSamuel Mendoza-Jonas  * enum ncsi_nl_pkg_attrs - NCSI netlink package-specific attributes
67955dc68cSSamuel Mendoza-Jonas  *
68955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR_UNSPEC: unspecified attributes to catch errors
69955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR: nested array of package attributes
70955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR_ID: package ID
71955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR_FORCED: flag signifying a package has been set as preferred
72955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR_CHANNEL_LIST: nested array of NCSI_CHANNEL_ATTR attributes
73955dc68cSSamuel Mendoza-Jonas  * @NCSI_PKG_ATTR_MAX: highest attribute number
74955dc68cSSamuel Mendoza-Jonas  */
75955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_pkg_attrs {
76955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR_UNSPEC,
77955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR,
78955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR_ID,
79955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR_FORCED,
80955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR_CHANNEL_LIST,
81955dc68cSSamuel Mendoza-Jonas 
82955dc68cSSamuel Mendoza-Jonas 	__NCSI_PKG_ATTR_AFTER_LAST,
83955dc68cSSamuel Mendoza-Jonas 	NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1
84955dc68cSSamuel Mendoza-Jonas };
85955dc68cSSamuel Mendoza-Jonas 
86955dc68cSSamuel Mendoza-Jonas /**
87955dc68cSSamuel Mendoza-Jonas  * enum ncsi_nl_channel_attrs - NCSI netlink channel-specific attributes
88955dc68cSSamuel Mendoza-Jonas  *
89955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_UNSPEC: unspecified attributes to catch errors
90955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR: nested array of channel attributes
91955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_ID: channel ID
92955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_VERSION_MAJOR: channel major version number
93955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_VERSION_MINOR: channel minor version number
94955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_VERSION_STR: channel version string
95955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_LINK_STATE: channel link state flags
96955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_ACTIVE: channels with this flag are in
97955dc68cSSamuel Mendoza-Jonas  *	NCSI_CHANNEL_ACTIVE state
98955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_FORCED: flag signifying a channel has been set as
99955dc68cSSamuel Mendoza-Jonas  *	preferred
100955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_VLAN_LIST: nested array of NCSI_CHANNEL_ATTR_VLAN_IDs
101955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_VLAN_ID: VLAN ID being filtered on this channel
102955dc68cSSamuel Mendoza-Jonas  * @NCSI_CHANNEL_ATTR_MAX: highest attribute number
103955dc68cSSamuel Mendoza-Jonas  */
104955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_channel_attrs {
105955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_UNSPEC,
106955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR,
107955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_ID,
108955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_VERSION_MAJOR,
109955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_VERSION_MINOR,
110955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_VERSION_STR,
111955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_LINK_STATE,
112955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_ACTIVE,
113955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_FORCED,
114955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_VLAN_LIST,
115955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_VLAN_ID,
116955dc68cSSamuel Mendoza-Jonas 
117955dc68cSSamuel Mendoza-Jonas 	__NCSI_CHANNEL_ATTR_AFTER_LAST,
118955dc68cSSamuel Mendoza-Jonas 	NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1
119955dc68cSSamuel Mendoza-Jonas };
120955dc68cSSamuel Mendoza-Jonas 
121955dc68cSSamuel Mendoza-Jonas #endif /* __UAPI_NCSI_NETLINK_H__ */
122