Ben,
This patch is good to go as well AS AN independent patch. It was marked earlier 
as [PATCH 9/9 v3], but it has since been broken off from the series, since 
Ankur sent out a new series, which have been committed.

Pls. let me know if you want me to send out a fresh patch for this.

thanks,
Nithin


On Sep 6, 2014, at 6:18 PM, Samuel Ghinet <sghi...@cloudbasesolutions.com>
 wrote:

> Acked-by: Samuel Ghinet <sghi...@cloudbasesolutions.com>
> ________________________________________
> From: Samuel Ghinet
> Sent: Sunday, September 07, 2014 2:54 AM
> To: dev@openvswitch.org
> Cc: Alin Serdean; nit...@vmware.com; ssaur...@vmware.com; Ankur Sharma
> Subject:  [PATCH 9/9 v3] datapath-windows: refactor code to         setup   
> dump start state
> 
> Looks good,
> Sam
> ________________________________________
> 
> Date: Fri, 29 Aug 2014 12:05:14 -0700
> From: Ankur Sharma <ankursha...@vmware.com>
> To: dev@openvswitch.org
> Subject: [ovs-dev] [PATCH 9/9 v3] datapath-windows: refactor code to
>        setup   dump start state
> Message-ID: <1409339114-15838-1-git-send-email-ankursha...@vmware.com>
> 
> Per review comment, in this patch we refactor the code to create a
> OvsSetupDumpStart() which can be leveraged by dump functions in the
> future. I have not refactored the code that continues the dump
> operation primarily since it is not final yet. Once the netlink set
> APIs are in place, we can refactor that too.
> 
> Signed-off-by: Nithin Raju <nit...@vmware.com>
> Signed-off-by: Ankur Sharma <ankursha...@vmware.com>
> Acked-by: Ankur Sharma <ankursha...@vmware.com>
> ---
> Please attribute this to Nithin Raju <nit...@vmware.com>
> ---
> datapath-windows/ovsext/Datapath.c | 66 +++++++++++++++++++++++---------------
> 1 file changed, 40 insertions(+), 26 deletions(-)
> 
> diff --git a/datapath-windows/ovsext/Datapath.c 
> b/datapath-windows/ovsext/Datapath.c
> index ccb69e3..c145d00 100644
> --- a/datapath-windows/ovsext/Datapath.c
> +++ b/datapath-windows/ovsext/Datapath.c
> @@ -110,8 +110,11 @@ static NTSTATUS 
> OvsGetDpCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
> 
> /* Netlink control family: this is a Windows specific family. */
> NETLINK_CMD nlControlFamilyCmdOps[] = {
> -    { OVS_CTRL_CMD_WIN_GET_PID, OvsGetPidCmdHandler,
> -      OVS_TRANSACTION_DEV_OP, FALSE }
> +    { .cmd             = OVS_CTRL_CMD_WIN_GET_PID,
> +      .handler         = OvsGetPidCmdHandler,
> +      .supportedDevOp  = OVS_TRANSACTION_DEV_OP,
> +      .validateDpIndex = FALSE
> +    }
> };
> 
> NETLINK_FAMILY nlControlFamilyOps = {
> @@ -125,8 +128,11 @@ NETLINK_FAMILY nlControlFamilyOps = {
> 
> /* Netlink datapath family. */
> NETLINK_CMD nlDatapathFamilyCmdOps[] = {
> -    { OVS_DP_CMD_GET, OvsGetDpCmdHandler,
> -      OVS_WRITE_DEV_OP | OVS_READ_DEV_OP, FALSE }
> +    { .cmd             = OVS_DP_CMD_GET,
> +      .handler         = OvsGetDpCmdHandler,
> +      .supportedDevOp  = OVS_WRITE_DEV_OP | OVS_READ_DEV_OP,
> +      .validateDpIndex = FALSE
> +    }
> };
> 
> NETLINK_FAMILY nlDatapathFamilyOps = {
> @@ -182,6 +188,7 @@ static NTSTATUS ValidateNetlinkCmd(UINT32 devOp,
> static NTSTATUS InvokeNetlinkCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
>                                         NETLINK_FAMILY *nlFamilyOps,
>                                         UINT32 *replyLen);
> +static NTSTATUS OvsSetupDumpStart(POVS_USER_PARAMS_CONTEXT usrParamsCtx);
> 
> 
> /* Handles to the device object for communication with userspace. */
> @@ -828,28 +835,8 @@ OvsGetDpCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
>         (POVS_OPEN_INSTANCE)usrParamsCtx->ovsInstance;
> 
>     if (usrParamsCtx->devOp == OVS_WRITE_DEV_OP) {
> -        NTSTATUS status;
> -
> -        /* input buffer has been validated while validating write dev op. */
> -        ASSERT(msgIn != NULL && usrParamsCtx->inputLength >= sizeof *msgIn);
> -
> -        /* A write operation that does not indicate dump start is invalid. */
> -        if ((msgIn->nlMsg.nlmsgFlags & NLM_F_DUMP) != NLM_F_DUMP) {
> -            return STATUS_INVALID_PARAMETER;
> -        }
> -        /* XXX: Handle other NLM_F_* flags in the future. */
> -
> -        /*
> -         * This operation should be setting up the dump state. If there's any
> -         * previous state, clear it up so as to set it up afresh.
> -         */
> -        if (instance->dumpState.ovsMsg != NULL) {
> -            FreeUserDumpState(instance);
> -        }
> -        status = InitUserDumpState(instance, msgIn);
> -        if (status != STATUS_SUCCESS) {
> -            return STATUS_NO_MEMORY;
> -        }
> +        *replyLen = 0;
> +        OvsSetupDumpStart(usrParamsCtx);
>     } else {
>         ASSERT(usrParamsCtx->devOp == OVS_READ_DEV_OP);
> 
> @@ -943,6 +930,33 @@ OvsGetDpCmdHandler(POVS_USER_PARAMS_CONTEXT usrParamsCtx,
>     return STATUS_SUCCESS;
> }
> 
> +static NTSTATUS
> +OvsSetupDumpStart(POVS_USER_PARAMS_CONTEXT usrParamsCtx)
> +{
> +    POVS_MESSAGE msgIn = (POVS_MESSAGE)usrParamsCtx->inputBuffer;
> +    POVS_OPEN_INSTANCE instance =
> +        (POVS_OPEN_INSTANCE)usrParamsCtx->ovsInstance;
> +
> +    /* input buffer has been validated while validating write dev op. */
> +    ASSERT(msgIn != NULL && usrParamsCtx->inputLength >= sizeof *msgIn);
> +
> +    /* A write operation that does not indicate dump start is invalid. */
> +    if ((msgIn->nlMsg.nlmsgFlags & NLM_F_DUMP) != NLM_F_DUMP) {
> +        return STATUS_INVALID_PARAMETER;
> +    }
> +    /* XXX: Handle other NLM_F_* flags in the future. */
> +
> +    /*
> +     * This operation should be setting up the dump state. If there's any
> +     * previous state, clear it up so as to set it up afresh.
> +     */
> +    if (instance->dumpState.ovsMsg != NULL) {
> +        FreeUserDumpState(instance);
> +    }
> +
> +    return InitUserDumpState(instance, msgIn);
> +}
> +
> /*
>  * --------------------------------------------------------------------------
>  *  Utility function to map the output buffer in an IRP. The buffer is assumed
> --
> 1.8.3.2

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to