linux-headers (unknown)

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