net/ncsi: Resource management
authorGavin Shan <gwshan@linux.vnet.ibm.com>
Tue, 19 Jul 2016 01:54:16 +0000 (11:54 +1000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Jul 2016 03:49:16 +0000 (20:49 -0700)
commit2d283bdd079c0ad4da020bbc9e9c2a4280823098
tree43c0b7f25a2ac0684448dfd776ef56358332254e
parent5e31c7019f08e85d5c285befe30620f7291b4ad3
net/ncsi: Resource management

NCSI spec (DSP0222) defines several objects: package, channel, mode,
filter, version and statistics etc. This introduces the data structs
to represent those objects and implement functions to manage them.
Also, this introduces CONFIG_NET_NCSI for the newly implemented NCSI
stack.

   * The user (e.g. netdev driver) dereference NCSI device by
     "struct ncsi_dev", which is embedded to "struct ncsi_dev_priv".
     The later one is used by NCSI stack internally.
   * Every NCSI device can have multiple packages simultaneously, up
     to 8 packages. It's represented by "struct ncsi_package" and
     identified by 3-bits ID.
   * Every NCSI package can have multiple channels, up to 32. It's
     represented by "struct ncsi_channel" and identified by 5-bits ID.
   * Every NCSI channel has version, statistics, various modes and
     filters. They are represented by "struct ncsi_channel_version",
     "struct ncsi_channel_stats", "struct ncsi_channel_mode" and
     "struct ncsi_channel_filter" separately.
   * Apart from AEN (Asynchronous Event Notification), the NCSI stack
     works in terms of command and response. This introduces "struct
     ncsi_req" to represent a complete NCSI transaction made of NCSI
     request and response.

link: https://www.dmtf.org/sites/default/files/standards/documents/DSP0222_1.1.0.pdf
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Acked-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ncsi.h [new file with mode: 0644]
net/Kconfig
net/Makefile
net/ncsi/Kconfig [new file with mode: 0644]
net/ncsi/Makefile [new file with mode: 0644]
net/ncsi/internal.h [new file with mode: 0644]
net/ncsi/ncsi-manage.c [new file with mode: 0644]