net/ncsi: Extend NC-SI Netlink interface to allow user space to send NC-SI command
The new command (NCSI_CMD_SEND_CMD) is added to allow user space application to send NC-SI command to the network card. Also, add a new attribute (NCSI_ATTR_DATA) for transferring request and response. The work flow is as below. Request: User space application -> Netlink interface (msg) -> new Netlink handler - ncsi_send_cmd_nl() -> ncsi_xmit_cmd() Response: Response received - ncsi_rcv_rsp() -> internal response handler - ncsi_rsp_handler_xxx() -> ncsi_rsp_handler_netlink() -> ncsi_send_netlink_rsp () -> Netlink interface (msg) -> user space application Command timeout - ncsi_request_timeout() -> ncsi_send_netlink_timeout () -> Netlink interface (msg with zero data length) -> user space application Error: Error detected -> ncsi_send_netlink_err () -> Netlink interface (err msg) -> user space application Signed-off-by: Justin Lee <justin.lee1@dell.com> Reviewed-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
6384e48323
commit
9771b8ccdf
@@ -23,6 +23,9 @@
|
||||
* optionally the preferred NCSI_ATTR_CHANNEL_ID.
|
||||
* @NCSI_CMD_CLEAR_INTERFACE: clear any preferred package/channel combination.
|
||||
* Requires NCSI_ATTR_IFINDEX.
|
||||
* @NCSI_CMD_SEND_CMD: send NC-SI command to network card.
|
||||
* Requires NCSI_ATTR_IFINDEX, NCSI_ATTR_PACKAGE_ID
|
||||
* and NCSI_ATTR_CHANNEL_ID.
|
||||
* @NCSI_CMD_MAX: highest command number
|
||||
*/
|
||||
enum ncsi_nl_commands {
|
||||
@@ -30,6 +33,7 @@ enum ncsi_nl_commands {
|
||||
NCSI_CMD_PKG_INFO,
|
||||
NCSI_CMD_SET_INTERFACE,
|
||||
NCSI_CMD_CLEAR_INTERFACE,
|
||||
NCSI_CMD_SEND_CMD,
|
||||
|
||||
__NCSI_CMD_AFTER_LAST,
|
||||
NCSI_CMD_MAX = __NCSI_CMD_AFTER_LAST - 1
|
||||
@@ -43,6 +47,7 @@ enum ncsi_nl_commands {
|
||||
* @NCSI_ATTR_PACKAGE_LIST: nested array of NCSI_PKG_ATTR attributes
|
||||
* @NCSI_ATTR_PACKAGE_ID: package ID
|
||||
* @NCSI_ATTR_CHANNEL_ID: channel ID
|
||||
* @NCSI_ATTR_DATA: command payload
|
||||
* @NCSI_ATTR_MAX: highest attribute number
|
||||
*/
|
||||
enum ncsi_nl_attrs {
|
||||
@@ -51,6 +56,7 @@ enum ncsi_nl_attrs {
|
||||
NCSI_ATTR_PACKAGE_LIST,
|
||||
NCSI_ATTR_PACKAGE_ID,
|
||||
NCSI_ATTR_CHANNEL_ID,
|
||||
NCSI_ATTR_DATA,
|
||||
|
||||
__NCSI_ATTR_AFTER_LAST,
|
||||
NCSI_ATTR_MAX = __NCSI_ATTR_AFTER_LAST - 1
|
||||
|
Reference in New Issue
Block a user