[ovs-dev] [PATCH] datapath-windows: Create a NBL for each NB when required

Nithin Raju nithin at vmware.com
Sat Aug 16 04:36:38 UTC 2014


On Aug 13, 2014, at 7:25 AM, Samuel Ghinet <sghinet at cloudbasesolutions.com> wrote:

> Create a NBL for each NB when required
> 
> ovs/ovs-issues#15
> 
> All NET_BUFFERs of a NET_BUFFER_LIST must go through
> the pipeline: extract, find flow, execute. Previously,
> only the first NET_BUFFER of a NET_BUFFER_LIST was going
> through this pipeline, which was erroneous.
> 
> OvsPartialCopyToMultipleNBLs is used to make each NET_BUFFER
> have its own NET_BUFFER_LIST.
> 
> Some functions that used to take as argument a NET_BUFFER_LIST
> now take as argument a NET_BUFFER. I have also added a few
> ASSERTs where the NET_BUFFER_LIST is expected to have
> only one NET_BUFFER."


Samuel,
This is an important change. Thanks for taking a stab at it.

As you know, in the existing code, we block processing of the multi-NB NBL here in OvsPacketIO.c:

OvsStartNBLIngress():
        /* Ethernet Header is a guaranteed safe access. */
        curNb = NET_BUFFER_LIST_FIRST_NB(curNbl);
        if (curNb->Next != NULL) {
            /* XXX: This case is not handled yet. */
            ASSERT(FALSE);
        } else {

I see that your patch does not make any changes here. So, are the changes you sent out infrastructure changes to buffer management? How were you able to validate these changes?

I'm looking at your changes and will provide input. But, clarity about what is implemented and what is missing would help.

thanks,
Nithin


More information about the dev mailing list