Thanks Anand and Shashank!
Acked-by: Alin Gabriel Serdean <[email protected]>

I applied this on branch-2.8 and master.

Thanks,
Alin.

> -----Original Message-----
> From: [email protected] [mailto:ovs-dev-
> [email protected]] On Behalf Of Anand Kumar
> Sent: Tuesday, August 22, 2017 12:53 AM
> To: Shashank Ram <[email protected]>; [email protected]
> Subject: Re: [ovs-dev] [PATCH] datapath-windows: Move
> OvsCreateNewNBLsFromMultipleNBs to BuggerMgmt
> 
> Acked-by: Anand Kumar <[email protected]>
> 
> Thanks,
> Anand Kumar
> 
> On 8/21/17, 2:45 PM, "[email protected] on behalf of
> Shashank Ram" <[email protected] on behalf of
> [email protected]> wrote:
> 
>     Moves function OvsCreateNewNBLsFromMultipleNBs() to BufferMgmt.c
>     to facilitate consumption from outside PacketIO.c.
> 
>     Signed-off-by: Shashank Ram <[email protected]>
>     ---
>      datapath-windows/ovsext/BufferMgmt.c | 47
> ++++++++++++++++++++++++++++++++++++
>      datapath-windows/ovsext/BufferMgmt.h |  4 +++
>      datapath-windows/ovsext/PacketIO.c   | 42
--------------------------------
>      3 files changed, 51 insertions(+), 42 deletions(-)
> 
>     diff --git a/datapath-windows/ovsext/BufferMgmt.c b/datapath-
> windows/ovsext/BufferMgmt.c
>     index 1ede4a3..5c9e562 100644
>     --- a/datapath-windows/ovsext/BufferMgmt.c
>     +++ b/datapath-windows/ovsext/BufferMgmt.c
>     @@ -1783,3 +1783,50 @@ OvsGetCtxSourcePortNo(PNET_BUFFER_LIST
> nbl,
>          *portNo = ctx->srcPortNo;
>          return NDIS_STATUS_SUCCESS;
>      }
>     +
>     +/*
>     + *
--------------------------------------------------------------------------
>     + * OvsCreateNewNBLsFromMultipleNBs --
>     + *      Creates an NBL chain where each NBL has a single NB,
>     + *      from an NBL which has multiple NBs.
>     + *      Sets 'curNbl' and 'lastNbl' to the first and last NBL in the
>     + *      newly created NBL chain respectively, and completes the
original
> NBL.
>     + *
--------------------------------------------------------------------------
>     + */
>     +NTSTATUS
>     +OvsCreateNewNBLsFromMultipleNBs(POVS_SWITCH_CONTEXT
> switchContext,
>     +                                PNET_BUFFER_LIST *curNbl,
>     +                                PNET_BUFFER_LIST *lastNbl)
>     +{
>     +    NTSTATUS status = STATUS_SUCCESS;
>     +    PNET_BUFFER_LIST newNbls = NULL;
>     +    PNET_BUFFER_LIST nbl = NULL;
>     +    BOOLEAN error = TRUE;
>     +
>     +    do {
>     +        /* Create new NBLs from curNbl with multiple net buffers. */
>     +        newNbls = OvsPartialCopyToMultipleNBLs(switchContext,
>     +                                               *curNbl, 0, 0, TRUE);
>     +        if (NULL == newNbls) {
>     +            OVS_LOG_ERROR("Failed to allocate NBLs with single NB.");
>     +            status = NDIS_STATUS_RESOURCES;
>     +            break;
>     +        }
>     +
>     +        nbl = newNbls;
>     +        while (nbl) {
>     +            *lastNbl = nbl;
>     +            nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);
>     +        }
>     +
>     +        (*curNbl)->Next = NULL;
>     +
>     +        OvsCompleteNBL(switchContext, *curNbl, TRUE);
>     +
>     +        *curNbl = newNbls;
>     +
>     +        error = FALSE;
>     +    } while (error);
>     +
>     +    return status;
>     +}
>     diff --git a/datapath-windows/ovsext/BufferMgmt.h b/datapath-
> windows/ovsext/BufferMgmt.h
>     index e6cc0fe..dcf310a 100644
>     --- a/datapath-windows/ovsext/BufferMgmt.h
>     +++ b/datapath-windows/ovsext/BufferMgmt.h
>     @@ -141,4 +141,8 @@ NDIS_STATUS
> OvsSetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32 portNo);
> 
>      NDIS_STATUS OvsGetCtxSourcePortNo(PNET_BUFFER_LIST nbl, UINT32
> *portNo);
> 
>     +NTSTATUS OvsCreateNewNBLsFromMultipleNBs(PVOID context,
>     +                                         PNET_BUFFER_LIST *curNbl,
>     +                                         PNET_BUFFER_LIST *lastNbl);
>     +
>      #endif /* __BUFFER_MGMT_H_ */
>     diff --git a/datapath-windows/ovsext/PacketIO.c b/datapath-
> windows/ovsext/PacketIO.c
>     index 81c574e..38e3e5f 100644
>     --- a/datapath-windows/ovsext/PacketIO.c
>     +++ b/datapath-windows/ovsext/PacketIO.c
>     @@ -46,10 +46,6 @@ extern NDIS_STRING ovsExtFriendlyNameUC;
>      static VOID OvsFinalizeCompletionList(OvsCompletionList
> *completionList);
>      static VOID OvsCompleteNBLIngress(POVS_SWITCH_CONTEXT
> switchContext,
>                          PNET_BUFFER_LIST netBufferLists, ULONG
sendCompleteFlags);
>     -static NTSTATUS OvsCreateNewNBLsFromMultipleNBs(
>     -                    POVS_SWITCH_CONTEXT switchContext,
>     -                    PNET_BUFFER_LIST *curNbl,
>     -                    PNET_BUFFER_LIST *lastNbl);
> 
>      VOID
>      OvsInitCompletionList(OvsCompletionList *completionList,
>     @@ -500,41 +496,3 @@ OvsExtCancelSendNBL(NDIS_HANDLE
> filterModuleContext,
>          /* All send requests get completed synchronously, so there is no
need
> to
>           * implement this callback. */
>      }
>     -
>     -static NTSTATUS
>     -OvsCreateNewNBLsFromMultipleNBs(POVS_SWITCH_CONTEXT
> switchContext,
>     -                                PNET_BUFFER_LIST *curNbl,
>     -                                PNET_BUFFER_LIST *lastNbl)
>     -{
>     -    NTSTATUS status = STATUS_SUCCESS;
>     -    PNET_BUFFER_LIST newNbls = NULL;
>     -    PNET_BUFFER_LIST nbl = NULL;
>     -    BOOLEAN error = TRUE;
>     -
>     -    do {
>     -        /* Create new NBLs from curNbl with multiple net buffers. */
>     -        newNbls = OvsPartialCopyToMultipleNBLs(switchContext,
>     -                                               *curNbl, 0, 0, TRUE);
>     -        if (NULL == newNbls) {
>     -            OVS_LOG_ERROR("Failed to allocate NBLs with single NB.");
>     -            status = NDIS_STATUS_RESOURCES;
>     -            break;
>     -        }
>     -
>     -        nbl = newNbls;
>     -        while (nbl) {
>     -            *lastNbl = nbl;
>     -            nbl = NET_BUFFER_LIST_NEXT_NBL(nbl);
>     -        }
>     -
>     -        (*curNbl)->Next = NULL;
>     -
>     -        OvsCompleteNBL(switchContext, *curNbl, TRUE);
>     -
>     -        *curNbl = newNbls;
>     -
>     -        error = FALSE;
>     -    } while (error);
>     -
>     -    return status;
>     -}
>     --
>     2.9.3.windows.2
> 
>     _______________________________________________
>     dev mailing list
>     [email protected]
>     https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__mail.openvswitch.org_mailman_listinfo_ovs-
> 2Ddev&d=DwICAg&c=uilaK90D4TOVoH58JNXRgQ&r=Q5z9tBe-
> nAOpE7LIHSPV8uy5-
> 437agMXvkeHHMkR8Us&m=t_wDc_rR7F3izwWXzz2ggoGTVY1ef-
> 5eg6Far3OtVxk&s=Avhf6HHWujbRuxSiVZeev9YkXpvgI3vO_Rry3lpWQTI&e=
> 
> 
> 
> 
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to