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