From patchwork Fri May 17 21:16:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kumar, Rohit via dev" X-Patchwork-Id: 1101286 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=openvswitch.org Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 455Lj850Kmz9s00 for ; Sat, 18 May 2019 07:17:32 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id CDC08DDF; Fri, 17 May 2019 21:17:30 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id D52BB5A8 for ; Fri, 17 May 2019 21:17:28 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id E914187D for ; Fri, 17 May 2019 21:17:26 +0000 (UTC) Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP Server id 15.0.1156.6; Fri, 17 May 2019 14:17:14 -0700 Received: from WIN-ANAND1.vmware.com (unknown [10.33.79.212]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id A4BD8412BF; Fri, 17 May 2019 14:17:25 -0700 (PDT) To: Date: Fri, 17 May 2019 14:16:39 -0700 Message-ID: <20190517211639.11528-1-kumaranand@vmware.com> X-Mailer: git-send-email 2.9.3.windows.1 MIME-Version: 1.0 Received-SPF: None (EX13-EDG-OU-001.vmware.com: kumaranand@vmware.com does not designate permitted sender hosts) X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH] datapath-windows: Copy mru information when cloning a nbl. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Anand Kumar via dev From: "Kumar, Rohit via dev" Reply-To: Anand Kumar Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org 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);