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