Re: [ovs-dev] [PATCH] datapath-windows: Copy mru information when cloning a nbl.

2019-05-20 Thread Alin Gabriel Serdean
Thanks for the patch!

Applied on master.

> On 18 May 2019, at 00:16, Anand Kumar via dev  wrote:
> 
> When a nbl is cloned, mru value stored in the original nbl
> context is lost, which skips refragemting the cloned nbls.
> 
> This patch fixes it.
> 
> Signed-off-by: Anand Kumar 
> ---
> datapath-windows/ovsext/BufferMgmt.c | 15 ---
> 1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/datapath-windows/ovsext/BufferMgmt.c 
> b/datapath-windows/ovsext/BufferMgmt.c
> index 6627acf..acf3c13 100644
> --- a/datapath-windows/ovsext/BufferMgmt.c
> +++ b/datapath-windows/ovsext/BufferMgmt.c
> @@ -260,14 +260,15 @@ static VOID
> OvsInitNBLContext(POVS_BUFFER_CONTEXT ctx,
>   UINT16 flags,
>   UINT32 origDataLength,
> -  UINT32 srcPortNo)
> +  UINT32 srcPortNo,
> +  UINT16 mru)
> {
> ctx->magic = OVS_CTX_MAGIC;
> ctx->refCount = 1;
> ctx->flags = flags;
> ctx->srcPortNo = srcPortNo;
> ctx->origDataLength = origDataLength;
> -ctx->mru = 0;
> +ctx->mru = mru;
> ctx->pendingSend = 0;
> }
> 
> @@ -434,7 +435,7 @@ OvsAllocateFixSizeNBL(PVOID ovsContext,
> 
> OvsInitNBLContext(ctx, OVS_BUFFER_FROM_FIX_SIZE_POOL |
>   OVS_BUFFER_PRIVATE_FORWARD_CONTEXT, size,
> -  OVS_DPPORT_NUMBER_INVALID);
> +  OVS_DPPORT_NUMBER_INVALID, 0);
> line = __LINE__;
> allocate_done:
> OVS_LOG_LOUD("Allocate Fix NBL: %p, line: %d", nbl, line);
> @@ -547,7 +548,7 @@ OvsAllocateVariableSizeNBL(PVOID ovsContext,
> OvsInitNBLContext(ctx, OVS_BUFFER_PRIVATE_MDL | OVS_BUFFER_PRIVATE_DATA |
>OVS_BUFFER_PRIVATE_FORWARD_CONTEXT |
>OVS_BUFFER_FROM_ZERO_SIZE_POOL,
> -   size, OVS_DPPORT_NUMBER_INVALID);
> +   size, OVS_DPPORT_NUMBER_INVALID, 0);
> 
> OVS_LOG_LOUD("Allocate variable size NBL: %p", nbl);
> return nbl;
> @@ -600,7 +601,7 @@ OvsInitExternalNBLContext(PVOID ovsContext,
>  * complete.
>  */
> OvsInitNBLContext(ctx, flags, NET_BUFFER_DATA_LENGTH(nb),
> -  OVS_DPPORT_NUMBER_INVALID);
> +  OVS_DPPORT_NUMBER_INVALID, 0);
> return ctx;
> }
> 
> @@ -817,7 +818,7 @@ OvsPartialCopyNBL(PVOID ovsContext,
> srcNb = NET_BUFFER_LIST_FIRST_NB(nbl);
> ASSERT(srcNb);
> OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(srcNb) - copySize,
> -  OVS_DPPORT_NUMBER_INVALID);
> +  OVS_DPPORT_NUMBER_INVALID, srcCtx->mru);
> 
> InterlockedIncrement((LONG volatile *)&srcCtx->refCount);
> 
> @@ -1074,7 +1075,7 @@ OvsFullCopyNBL(PVOID ovsContext,
>  OVS_BUFFER_PRIVATE_FORWARD_CONTEXT;
> 
> OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(firstNb),
> -  OVS_DPPORT_NUMBER_INVALID);
> +  OVS_DPPORT_NUMBER_INVALID, srcCtx->mru);
> 
> #ifdef DBG
> OvsDumpNetBufferList(nbl);
> -- 
> 2.9.3.windows.1
> 
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


[ovs-dev] [PATCH] datapath-windows: Copy mru information when cloning a nbl.

2019-05-17 Thread Anand Kumar via dev
When a nbl is cloned, mru value stored in the original nbl
context is lost, which skips refragemting the cloned nbls.

This patch fixes it.

Signed-off-by: Anand Kumar 
---
 datapath-windows/ovsext/BufferMgmt.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/datapath-windows/ovsext/BufferMgmt.c 
b/datapath-windows/ovsext/BufferMgmt.c
index 6627acf..acf3c13 100644
--- a/datapath-windows/ovsext/BufferMgmt.c
+++ b/datapath-windows/ovsext/BufferMgmt.c
@@ -260,14 +260,15 @@ static VOID
 OvsInitNBLContext(POVS_BUFFER_CONTEXT ctx,
   UINT16 flags,
   UINT32 origDataLength,
-  UINT32 srcPortNo)
+  UINT32 srcPortNo,
+  UINT16 mru)
 {
 ctx->magic = OVS_CTX_MAGIC;
 ctx->refCount = 1;
 ctx->flags = flags;
 ctx->srcPortNo = srcPortNo;
 ctx->origDataLength = origDataLength;
-ctx->mru = 0;
+ctx->mru = mru;
 ctx->pendingSend = 0;
 }
 
@@ -434,7 +435,7 @@ OvsAllocateFixSizeNBL(PVOID ovsContext,
 
 OvsInitNBLContext(ctx, OVS_BUFFER_FROM_FIX_SIZE_POOL |
   OVS_BUFFER_PRIVATE_FORWARD_CONTEXT, size,
-  OVS_DPPORT_NUMBER_INVALID);
+  OVS_DPPORT_NUMBER_INVALID, 0);
 line = __LINE__;
 allocate_done:
 OVS_LOG_LOUD("Allocate Fix NBL: %p, line: %d", nbl, line);
@@ -547,7 +548,7 @@ OvsAllocateVariableSizeNBL(PVOID ovsContext,
 OvsInitNBLContext(ctx, OVS_BUFFER_PRIVATE_MDL | OVS_BUFFER_PRIVATE_DATA |
OVS_BUFFER_PRIVATE_FORWARD_CONTEXT |
OVS_BUFFER_FROM_ZERO_SIZE_POOL,
-   size, OVS_DPPORT_NUMBER_INVALID);
+   size, OVS_DPPORT_NUMBER_INVALID, 0);
 
 OVS_LOG_LOUD("Allocate variable size NBL: %p", nbl);
 return nbl;
@@ -600,7 +601,7 @@ OvsInitExternalNBLContext(PVOID ovsContext,
  * complete.
  */
 OvsInitNBLContext(ctx, flags, NET_BUFFER_DATA_LENGTH(nb),
-  OVS_DPPORT_NUMBER_INVALID);
+  OVS_DPPORT_NUMBER_INVALID, 0);
 return ctx;
 }
 
@@ -817,7 +818,7 @@ OvsPartialCopyNBL(PVOID ovsContext,
 srcNb = NET_BUFFER_LIST_FIRST_NB(nbl);
 ASSERT(srcNb);
 OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(srcNb) - copySize,
-  OVS_DPPORT_NUMBER_INVALID);
+  OVS_DPPORT_NUMBER_INVALID, srcCtx->mru);
 
 InterlockedIncrement((LONG volatile *)&srcCtx->refCount);
 
@@ -1074,7 +1075,7 @@ OvsFullCopyNBL(PVOID ovsContext,
  OVS_BUFFER_PRIVATE_FORWARD_CONTEXT;
 
 OvsInitNBLContext(dstCtx, flags, NET_BUFFER_DATA_LENGTH(firstNb),
-  OVS_DPPORT_NUMBER_INVALID);
+  OVS_DPPORT_NUMBER_INVALID, srcCtx->mru);
 
 #ifdef DBG
 OvsDumpNetBufferList(nbl);
-- 
2.9.3.windows.1

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev