Applied, thanks everyone.

On Wed, Sep 23, 2015 at 05:57:51PM +0000, Alin Serdean wrote:
> Acked-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com>
> 
> > -----Mesaj original-----
> > De la: dev [mailto:dev-boun...@openvswitch.org] În numele Nithin Raju
> > Trimis: Wednesday, September 23, 2015 7:16 PM
> > Către: dev@openvswitch.org
> > Subiect: [ovs-dev] [PATCH 3/4 v2] datapath-windows: return netlink error for
> > read operation
> > 
> > The kernel datapath returns a NL error message upon any errors during read
> > operations, and returns STATUS_SUCCESS as the return code. We reply on
> > the input NL request to get the family ID, and the PID. However, when the
> > request is of type OVS_CTRL_CMD_EVENT_NOTIFY and
> > OVS_CTRL_CMD_READ_NOTIFY, there's no input buffer associated with the
> > request. So, we use a temporary input buffer to be able to call the Netlink
> > APIs for constructing the output NL error message.
> > 
> > Signed-off-by: Nithin Raju <nit...@vmware.com>
> > Acked-by: Sairam Venugopal <vsai...@vmware.com>
> > ---
> > v2: addressed ALin's review comments
> > ---
> >  datapath-windows/ovsext/Datapath.c | 16 +++++++++++++++-
> >  1 file changed, 15 insertions(+), 1 deletion(-)
> > 
> > diff --git a/datapath-windows/ovsext/Datapath.c b/datapath-
> > windows/ovsext/Datapath.c
> > index 1e16604..b3dbd71 100644
> > --- a/datapath-windows/ovsext/Datapath.c
> > +++ b/datapath-windows/ovsext/Datapath.c
> > @@ -1020,10 +1020,24 @@
> > InvokeNetlinkCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
> >      if (status != STATUS_SUCCESS && status != STATUS_PENDING) {
> >          if (usrParamsCtx->devOp != OVS_WRITE_DEV_OP && *replyLen == 0) {
> >              NL_ERROR nlError = NlMapStatusToNlErr(status);
> > -            POVS_MESSAGE msgIn = (POVS_MESSAGE)usrParamsCtx-
> > >inputBuffer;
> > +            OVS_MESSAGE msgInTmp = { 0 };
> > +            POVS_MESSAGE msgIn = NULL;
> >              POVS_MESSAGE_ERROR msgError = (POVS_MESSAGE_ERROR)
> >                  usrParamsCtx->outputBuffer;
> > 
> > +            if (usrParamsCtx->ovsMsg->genlMsg.cmd ==
> > OVS_CTRL_CMD_EVENT_NOTIFY ||
> > +                usrParamsCtx->ovsMsg->genlMsg.cmd ==
> > OVS_CTRL_CMD_READ_NOTIFY) {
> > +                /* There's no input buffer associated with such requests. 
> > */
> > +                NL_BUFFER nlBuffer;
> > +                msgIn = &msgInTmp;
> > +                NlBufInit(&nlBuffer, (PCHAR)msgIn, sizeof *msgIn);
> > +                NlFillNlHdr(&nlBuffer, nlFamilyOps->id, 0, 0,
> > +                            usrParamsCtx->ovsInstance->pid);
> > +            } else {
> > +                msgIn = (POVS_MESSAGE)usrParamsCtx->inputBuffer;
> > +            }
> > +
> > +            ASSERT(msgIn);
> >              ASSERT(msgError);
> >              NlBuildErrorMsg(msgIn, msgError, nlError);
> >              *replyLen = msgError->nlMsg.nlmsgLen;
> > --
> > 1.8.5.6
> > 
> > _______________________________________________
> > dev mailing list
> > dev@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to