Message ID | 1415587563-11512-2-git-send-email-huawei.xie@intel.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 592EA58F1; Mon, 10 Nov 2014 03:36:35 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 4AFD84A6E for <dev@dpdk.org>; Mon, 10 Nov 2014 03:36:32 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 09 Nov 2014 18:43:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,349,1413270000"; d="scan'208";a="605074121" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga001.jf.intel.com with ESMTP; 09 Nov 2014 18:46:13 -0800 Received: from shecgisg003.sh.intel.com (shecgisg003.sh.intel.com [10.239.29.90]) by shvmail01.sh.intel.com with ESMTP id sAA2k9f9021010; Mon, 10 Nov 2014 10:46:09 +0800 Received: from shecgisg003.sh.intel.com (localhost [127.0.0.1]) by shecgisg003.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id sAA2k7U9011557; Mon, 10 Nov 2014 10:46:09 +0800 Received: (from hxie5@localhost) by shecgisg003.sh.intel.com (8.13.6/8.13.6/Submit) id sAA2k7sD011553; Mon, 10 Nov 2014 10:46:07 +0800 From: Huawei Xie <huawei.xie@intel.com> To: dev@dpdk.org Date: Mon, 10 Nov 2014 10:46:02 +0800 Message-Id: <1415587563-11512-2-git-send-email-huawei.xie@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1415587563-11512-1-git-send-email-huawei.xie@intel.com> References: <1415587563-11512-1-git-send-email-huawei.xie@intel.com> Subject: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Huawei Xie
Nov. 10, 2014, 2:46 a.m. UTC
">> 5" rather than ">> 4"
Signed-off-by: Huawei Xie <huawei.xie@intel.com>
---
lib/librte_pmd_i40e/i40e_ethdev.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
Comments
> -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Huawei Xie > Sent: Monday, November 10, 2014 10:46 AM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > > ">> 5" rather than ">> 4" > > Signed-off-by: Huawei Xie <huawei.xie@intel.com> > --- > lib/librte_pmd_i40e/i40e_ethdev.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c > b/lib/librte_pmd_i40e/i40e_ethdev.c > index 5074262..c0cf3cf 100644 > --- a/lib/librte_pmd_i40e/i40e_ethdev.c > +++ b/lib/librte_pmd_i40e/i40e_ethdev.c > @@ -4048,14 +4048,11 @@ i40e_set_vlan_filter(struct i40e_vsi *vsi, { > uint32_t vid_idx, vid_bit; > > -#define UINT32_BIT_MASK 0x1F > -#define VALID_VLAN_BIT_MASK 0xFFF > /* VFTA is 32-bits size array, each element contains 32 vlan bits, Find the > * element first, then find the bits it belongs to > */ > - vid_idx = (uint32_t) ((vlan_id & VALID_VLAN_BIT_MASK) >> > - sizeof(uint32_t)); > - vid_bit = (uint32_t) (1 << (vlan_id & UINT32_BIT_MASK)); > + vid_idx = (uint32_t) ((vlan_id >> 5 ) & 0x7F); > + vid_bit = (uint32_t) (1 << (vlan_id & 0x1F)); I don't understand why remove macros and use numeric instead? > > if (on) > vsi->vfta[vid_idx] |= vid_bit; > -- > 1.8.1.4 Regards, Helin
> -----Original Message----- > From: Zhang, Helin > Sent: Sunday, November 09, 2014 10:09 PM > To: Xie, Huawei; dev@dpdk.org > Subject: RE: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > > > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Huawei Xie > > Sent: Monday, November 10, 2014 10:46 AM > > To: dev@dpdk.org > > Subject: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > > > > ">> 5" rather than ">> 4" > > > > Signed-off-by: Huawei Xie <huawei.xie@intel.com> > > --- > > lib/librte_pmd_i40e/i40e_ethdev.c | 7 ++----- > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c > > b/lib/librte_pmd_i40e/i40e_ethdev.c > > index 5074262..c0cf3cf 100644 > > --- a/lib/librte_pmd_i40e/i40e_ethdev.c > > +++ b/lib/librte_pmd_i40e/i40e_ethdev.c > > @@ -4048,14 +4048,11 @@ i40e_set_vlan_filter(struct i40e_vsi *vsi, { > > uint32_t vid_idx, vid_bit; > > > > -#define UINT32_BIT_MASK 0x1F > > -#define VALID_VLAN_BIT_MASK 0xFFF > > /* VFTA is 32-bits size array, each element contains 32 vlan bits, Find the > > * element first, then find the bits it belongs to > > */ > > - vid_idx = (uint32_t) ((vlan_id & VALID_VLAN_BIT_MASK) >> > > - sizeof(uint32_t)); > > - vid_bit = (uint32_t) (1 << (vlan_id & UINT32_BIT_MASK)); > > + vid_idx = (uint32_t) ((vlan_id >> 5 ) & 0x7F); > > + vid_bit = (uint32_t) (1 << (vlan_id & 0x1F)); > I don't understand why remove macros and use numeric instead? Those macros are wrongly defined. Correct macros are defined in second patch. > > > > > if (on) > > vsi->vfta[vid_idx] |= vid_bit; > > -- > > 1.8.1.4 > > Regards, > Helin
On 11/10/2014 2:42 PM, Xie, Huawei wrote: > >> -----Original Message----- >> From: Zhang, Helin >> Sent: Sunday, November 09, 2014 10:09 PM >> To: Xie, Huawei; dev@dpdk.org >> Subject: RE: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix >> >> >> >>> -----Original Message----- >>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Huawei Xie >>> Sent: Monday, November 10, 2014 10:46 AM >>> To: dev@dpdk.org >>> Subject: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix >>> >>> ">> 5" rather than ">> 4" >>> >>> Signed-off-by: Huawei Xie <huawei.xie@intel.com> >>> --- >>> lib/librte_pmd_i40e/i40e_ethdev.c | 7 ++----- >>> 1 file changed, 2 insertions(+), 5 deletions(-) >>> >>> diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c >>> b/lib/librte_pmd_i40e/i40e_ethdev.c >>> index 5074262..c0cf3cf 100644 >>> --- a/lib/librte_pmd_i40e/i40e_ethdev.c >>> +++ b/lib/librte_pmd_i40e/i40e_ethdev.c >>> @@ -4048,14 +4048,11 @@ i40e_set_vlan_filter(struct i40e_vsi *vsi, { >>> uint32_t vid_idx, vid_bit; >>> >>> -#define UINT32_BIT_MASK 0x1F >>> -#define VALID_VLAN_BIT_MASK 0xFFF >>> /* VFTA is 32-bits size array, each element contains 32 vlan bits, Find the >>> * element first, then find the bits it belongs to >>> */ >>> - vid_idx = (uint32_t) ((vlan_id & VALID_VLAN_BIT_MASK) >> >>> - sizeof(uint32_t)); >>> - vid_bit = (uint32_t) (1 << (vlan_id & UINT32_BIT_MASK)); >>> + vid_idx = (uint32_t) ((vlan_id >> 5 ) & 0x7F); ^^^^^^^^^^^^ No need additional space after '5' >>> + vid_bit = (uint32_t) (1 << (vlan_id & 0x1F)); >> I don't understand why remove macros and use numeric instead? > Those macros are wrongly defined. Correct macros are defined in second patch. Is there any issue to swap your patch order, and use your defined macros here? That would be much better if no other issue. Thanks, Michael >>> if (on) >>> vsi->vfta[vid_idx] |= vid_bit; >>> -- >>> 1.8.1.4 >> Regards, >> Helin
> -----Original Message----- > From: Qiu, Michael > Sent: Monday, November 24, 2014 1:33 AM > To: Xie, Huawei; Zhang, Helin; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > > On 11/10/2014 2:42 PM, Xie, Huawei wrote: > > > >> -----Original Message----- > >> From: Zhang, Helin > >> Sent: Sunday, November 09, 2014 10:09 PM > >> To: Xie, Huawei; dev@dpdk.org > >> Subject: RE: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > >> > >> > >> > >>> -----Original Message----- > >>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Huawei Xie > >>> Sent: Monday, November 10, 2014 10:46 AM > >>> To: dev@dpdk.org > >>> Subject: [dpdk-dev] [PATCH v2 1/2] lib/librte_pmd_i40e: set vlan filter fix > >>> > >>> ">> 5" rather than ">> 4" > >>> > >>> Signed-off-by: Huawei Xie <huawei.xie@intel.com> > >>> --- > >>> lib/librte_pmd_i40e/i40e_ethdev.c | 7 ++----- > >>> 1 file changed, 2 insertions(+), 5 deletions(-) > >>> > >>> diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c > >>> b/lib/librte_pmd_i40e/i40e_ethdev.c > >>> index 5074262..c0cf3cf 100644 > >>> --- a/lib/librte_pmd_i40e/i40e_ethdev.c > >>> +++ b/lib/librte_pmd_i40e/i40e_ethdev.c > >>> @@ -4048,14 +4048,11 @@ i40e_set_vlan_filter(struct i40e_vsi *vsi, { > >>> uint32_t vid_idx, vid_bit; > >>> > >>> -#define UINT32_BIT_MASK 0x1F > >>> -#define VALID_VLAN_BIT_MASK 0xFFF > >>> /* VFTA is 32-bits size array, each element contains 32 vlan bits, Find the > >>> * element first, then find the bits it belongs to > >>> */ > >>> - vid_idx = (uint32_t) ((vlan_id & VALID_VLAN_BIT_MASK) >> > >>> - sizeof(uint32_t)); > >>> - vid_bit = (uint32_t) (1 << (vlan_id & UINT32_BIT_MASK)); > >>> + vid_idx = (uint32_t) ((vlan_id >> 5 ) & 0x7F); > > > ^^^^^^^^^^^^ > > No need additional space after '5' > >>> + vid_bit = (uint32_t) (1 << (vlan_id & 0x1F)); > >> I don't understand why remove macros and use numeric instead? > > Those macros are wrongly defined. Correct macros are defined in second > patch. > > Is there any issue to swap your patch order, and use your defined macros > here? That would be much better if no other issue. The first patch shows clearly what we fixes. The second patch use MACROs for better code. > > Thanks, > Michael > >>> if (on) > >>> vsi->vfta[vid_idx] |= vid_bit; > >>> -- > >>> 1.8.1.4 > >> Regards, > >> Helin
diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index 5074262..c0cf3cf 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -4048,14 +4048,11 @@ i40e_set_vlan_filter(struct i40e_vsi *vsi, { uint32_t vid_idx, vid_bit; -#define UINT32_BIT_MASK 0x1F -#define VALID_VLAN_BIT_MASK 0xFFF /* VFTA is 32-bits size array, each element contains 32 vlan bits, Find the * element first, then find the bits it belongs to */ - vid_idx = (uint32_t) ((vlan_id & VALID_VLAN_BIT_MASK) >> - sizeof(uint32_t)); - vid_bit = (uint32_t) (1 << (vlan_id & UINT32_BIT_MASK)); + vid_idx = (uint32_t) ((vlan_id >> 5 ) & 0x7F); + vid_bit = (uint32_t) (1 << (vlan_id & 0x1F)); if (on) vsi->vfta[vid_idx] |= vid_bit;