> >  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

Reply via email to