> > As I understand Justin's version adds a generic handler, using the NCSI > > Netlink interface to pass OEM commands and responses to and from > > userspace, which does the actual packet handling. > Thanks for the direction Sam! Justin, if you don't mind, can you share the > patches you have to add the support? This actually would solve a few other > things we are trying to accomplish.
Basically, I add a new flag to indicate the request is coming from the Netlink interface to allow the command handler and response handler to react. #define NCSI_REQ_FLAG_NETLINK_DRIVEN 2 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_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: Detected error -> ncsi_send_netlink_err () -> Netlink interface (err msg) -> user space application I will clean up some code and send out the patch. Thanks, Justin