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. 269771b8ccSJustin.Lee1@Dell.com * @NCSI_CMD_SEND_CMD: send NC-SI command to network card. 279771b8ccSJustin.Lee1@Dell.com * Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID 289771b8ccSJustin.Lee1@Dell.com * and NCSI_ATTR_CHANNEL_ID. 29*8d951a75SSamuel Mendoza-Jonas * @NCSI_CMD_SET_PACKAGE_MASK: set a whitelist of allowed packages. 30*8d951a75SSamuel Mendoza-Jonas * Requires NCSI_ATTR_IFINDEX and NCSI_ATTR_PACKAGE_MASK. 31*8d951a75SSamuel Mendoza-Jonas * @NCSI_CMD_SET_CHANNEL_MASK: set a whitelist of allowed channels. 32*8d951a75SSamuel Mendoza-Jonas * Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID, and 33*8d951a75SSamuel Mendoza-Jonas * NCSI_ATTR_CHANNEL_MASK. If NCSI_ATTR_CHANNEL_ID is present it sets 34*8d951a75SSamuel Mendoza-Jonas * the primary channel. 35955dc68cSSamuel Mendoza-Jonas * @NCSI_CMD_MAX: highest command number 36955dc68cSSamuel Mendoza-Jonas */ 37955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_commands { 38955dc68cSSamuel Mendoza-Jonas NCSI_CMD_UNSPEC, 39955dc68cSSamuel Mendoza-Jonas NCSI_CMD_PKG_INFO, 40955dc68cSSamuel Mendoza-Jonas NCSI_CMD_SET_INTERFACE, 41955dc68cSSamuel Mendoza-Jonas NCSI_CMD_CLEAR_INTERFACE, 429771b8ccSJustin.Lee1@Dell.com NCSI_CMD_SEND_CMD, 43*8d951a75SSamuel Mendoza-Jonas NCSI_CMD_SET_PACKAGE_MASK, 44*8d951a75SSamuel Mendoza-Jonas NCSI_CMD_SET_CHANNEL_MASK, 45955dc68cSSamuel Mendoza-Jonas 46955dc68cSSamuel Mendoza-Jonas __NCSI_CMD_AFTER_LAST, 47955dc68cSSamuel Mendoza-Jonas NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1 48955dc68cSSamuel Mendoza-Jonas }; 49955dc68cSSamuel Mendoza-Jonas 50955dc68cSSamuel Mendoza-Jonas /** 51955dc68cSSamuel Mendoza-Jonas * enum ncsi_nl_attrs - General NCSI netlink attributes 52955dc68cSSamuel Mendoza-Jonas * 53955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_UNSPEC: unspecified attributes to catch errors 54955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_IFINDEX: ifindex of network device using NCSI 55955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes 56955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_PACKAGE_ID: package ID 57955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_CHANNEL_ID: channel ID 589771b8ccSJustin.Lee1@Dell.com * @NCSI_ATTR_DATA: command payload 59*8d951a75SSamuel Mendoza-Jonas * @NCSI_ATTR_MULTI_FLAG: flag to signal that multi-mode should be enabled with 60*8d951a75SSamuel Mendoza-Jonas * NCSI_CMD_SET_PACKAGE_MASK or NCSI_CMD_SET_CHANNEL_MASK. 61*8d951a75SSamuel Mendoza-Jonas * @NCSI_ATTR_PACKAGE_MASK: 32-bit mask of allowed packages. 62*8d951a75SSamuel Mendoza-Jonas * @NCSI_ATTR_CHANNEL_MASK: 32-bit mask of allowed channels. 63955dc68cSSamuel Mendoza-Jonas * @NCSI_ATTR_MAX: highest attribute number 64955dc68cSSamuel Mendoza-Jonas */ 65955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_attrs { 66955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_UNSPEC, 67955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_IFINDEX, 68955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_PACKAGE_LIST, 69955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_PACKAGE_ID, 70955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_CHANNEL_ID, 719771b8ccSJustin.Lee1@Dell.com NCSI_ATTR_DATA, 72*8d951a75SSamuel Mendoza-Jonas NCSI_ATTR_MULTI_FLAG, 73*8d951a75SSamuel Mendoza-Jonas NCSI_ATTR_PACKAGE_MASK, 74*8d951a75SSamuel Mendoza-Jonas NCSI_ATTR_CHANNEL_MASK, 75955dc68cSSamuel Mendoza-Jonas 76955dc68cSSamuel Mendoza-Jonas __NCSI_ATTR_AFTER_LAST, 77955dc68cSSamuel Mendoza-Jonas NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1 78955dc68cSSamuel Mendoza-Jonas }; 79955dc68cSSamuel Mendoza-Jonas 80955dc68cSSamuel Mendoza-Jonas /** 81955dc68cSSamuel Mendoza-Jonas * enum ncsi_nl_pkg_attrs - NCSI netlink package-specific attributes 82955dc68cSSamuel Mendoza-Jonas * 83955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR_UNSPEC: unspecified attributes to catch errors 84955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR: nested array of package attributes 85955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR_ID: package ID 86955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR_FORCED: flag signifying a package has been set as preferred 87955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR_CHANNEL_LIST: nested array of NCSI_CHANNEL_ATTR attributes 88955dc68cSSamuel Mendoza-Jonas * @NCSI_PKG_ATTR_MAX: highest attribute number 89955dc68cSSamuel Mendoza-Jonas */ 90955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_pkg_attrs { 91955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR_UNSPEC, 92955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR, 93955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR_ID, 94955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR_FORCED, 95955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR_CHANNEL_LIST, 96955dc68cSSamuel Mendoza-Jonas 97955dc68cSSamuel Mendoza-Jonas __NCSI_PKG_ATTR_AFTER_LAST, 98955dc68cSSamuel Mendoza-Jonas NCSI_PKG_ATTR_MAX = __NCSI_PKG_ATTR_AFTER_LAST - 1 99955dc68cSSamuel Mendoza-Jonas }; 100955dc68cSSamuel Mendoza-Jonas 101955dc68cSSamuel Mendoza-Jonas /** 102955dc68cSSamuel Mendoza-Jonas * enum ncsi_nl_channel_attrs - NCSI netlink channel-specific attributes 103955dc68cSSamuel Mendoza-Jonas * 104955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_UNSPEC: unspecified attributes to catch errors 105955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR: nested array of channel attributes 106955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_ID: channel ID 107955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_VERSION_MAJOR: channel major version number 108955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_VERSION_MINOR: channel minor version number 109955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_VERSION_STR: channel version string 110955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_LINK_STATE: channel link state flags 111955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_ACTIVE: channels with this flag are in 112955dc68cSSamuel Mendoza-Jonas * NCSI_CHANNEL_ACTIVE state 113955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_FORCED: flag signifying a channel has been set as 114955dc68cSSamuel Mendoza-Jonas * preferred 115955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_VLAN_LIST: nested array of NCSI_CHANNEL_ATTR_VLAN_IDs 116955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_VLAN_ID: VLAN ID being filtered on this channel 117955dc68cSSamuel Mendoza-Jonas * @NCSI_CHANNEL_ATTR_MAX: highest attribute number 118955dc68cSSamuel Mendoza-Jonas */ 119955dc68cSSamuel Mendoza-Jonas enum ncsi_nl_channel_attrs { 120955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_UNSPEC, 121955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR, 122955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_ID, 123955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_VERSION_MAJOR, 124955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_VERSION_MINOR, 125955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_VERSION_STR, 126955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_LINK_STATE, 127955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_ACTIVE, 128955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_FORCED, 129955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_VLAN_LIST, 130955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_VLAN_ID, 131955dc68cSSamuel Mendoza-Jonas 132955dc68cSSamuel Mendoza-Jonas __NCSI_CHANNEL_ATTR_AFTER_LAST, 133955dc68cSSamuel Mendoza-Jonas NCSI_CHANNEL_ATTR_MAX = __NCSI_CHANNEL_ATTR_AFTER_LAST - 1 134955dc68cSSamuel Mendoza-Jonas }; 135955dc68cSSamuel Mendoza-Jonas 136955dc68cSSamuel Mendoza-Jonas #endif /* __UAPI_NCSI_NETLINK_H__ */ 137