From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 0AA471E880; Tue, 12 Jun 2018 10:43:32 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jun 2018 01:43:31 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,213,1526367600"; d="scan'208";a="49203602" Received: from kmsmsx153.gar.corp.intel.com ([172.21.73.88]) by orsmga006.jf.intel.com with ESMTP; 12 Jun 2018 01:43:30 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.131]) by KMSMSX153.gar.corp.intel.com ([169.254.5.15]) with mapi id 14.03.0319.002; Tue, 12 Jun 2018 16:43:29 +0800 From: "Zhao1, Wei" To: "Lu, Wenzhuo" , "dev@dpdk.org" CC: "stable@dpdk.org" Thread-Topic: [PATCH] net/ixgbe: fix tunnel id format error for FDIR Thread-Index: AQHT/LA07YU48/9fCUed58sucMViGqRbl78AgACvmQD//4rYAIAAhliw Date: Tue, 12 Jun 2018 08:43:28 +0000 Message-ID: References: <1528189935-34943-1-git-send-email-wei.zhao1@intel.com> <1528189935-34943-4-git-send-email-wei.zhao1@intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B7E8449@shsmsx102.ccr.corp.intel.com> <6A0DE07E22DDAD4C9103DF62FEBC09093B7E84D6@shsmsx102.ccr.corp.intel.com> In-Reply-To: <6A0DE07E22DDAD4C9103DF62FEBC09093B7E84D6@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix tunnel id format error for FDIR X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Jun 2018 08:43:33 -0000 Hi,wenzhuo > -----Original Message----- > From: Lu, Wenzhuo > Sent: Tuesday, June 12, 2018 4:39 PM > To: Zhao1, Wei ; dev@dpdk.org > Cc: stable@dpdk.org > Subject: RE: [PATCH] net/ixgbe: fix tunnel id format error for FDIR >=20 > Hi Wei, >=20 > > -----Original Message----- > > From: Zhao1, Wei > > Sent: Tuesday, June 12, 2018 3:49 PM > > To: Lu, Wenzhuo ; dev@dpdk.org > > Cc: stable@dpdk.org > > Subject: RE: [PATCH] net/ixgbe: fix tunnel id format error for FDIR > > > > > > Hi, Wenzhuo > > > > > -----Original Message----- > > > From: Lu, Wenzhuo > > > Sent: Tuesday, June 12, 2018 1:10 PM > > > To: Zhao1, Wei ; dev@dpdk.org > > > Cc: stable@dpdk.org > > > Subject: RE: [PATCH] net/ixgbe: fix tunnel id format error for FDIR > > > > > > Hi Wei, > > > > > > > > > > -----Original Message----- > > > > From: Zhao1, Wei > > > > Sent: Tuesday, June 5, 2018 5:12 PM > > > > To: dev@dpdk.org > > > > Cc: Lu, Wenzhuo ; stable@dpdk.org; Zhao1, > > > > Wei > > > > Subject: [PATCH] net/ixgbe: fix tunnel id format error for FDIR > > > > > > > > In cloud mode for FDIR, tunnel id should be set as protocol > > > > request, the lower 8 bits should be set as reserved. > > > To my opinion, the original implementation and this patch have > > > different understanding of the 'tunnel_id' in ' struct > > > rte_eth_tunnel_flow'. Originally it only means the tunnel id but not > > including the reserved 8 bits. > > > This patch means it should include the reserved bits. Maybe it makes > > > things easier because the whole 4 bytes are big endian. > > > So, may I suggest to add some comments in ' struct > > > rte_eth_tunnel_flow' to let the users know what the 'tunnel_id' > > > really > > means? > > > > The format from input for 'tunnel_id' should be network network byte > > order And it also should not contain reserved 1 byte, but hardware > > HASH need the format include reserved 1 byte And in network byte > > order. So, this patch convert to that format. > > I will add some comment in function ixgbe_fdir_filter_to_atr_input > > and ixgbe_parse_fdir_filter_tunnel, That will not Influence other NIC > > format for this struct member. > > Is that ok? > It's not appropriate that different NIC has different understanding of th= e > same info provided by APP. > And I found this tunnel_id is already used by other NICs. We cannot chang= e > the meaning. So I think this patch is not good. We do not change the input format in testpmd level, but we MUST change in o= ur IXGBE PMD, because this request by hardware HASH. This is the most important root cause for IXGBE vxlan packet fail. =20 >=20 > > > > > > > > > > > > > > > Fixes: 82fb702077f6 ("ixgbe: support new flow director modes for > > > > X550") > > > > Fixes: 11777435c727 ("net/ixgbe: parse flow director filter") > > > > > > > > Signed-off-by: Wei Zhao > > > > --- > > > > drivers/net/ixgbe/ixgbe_fdir.c | 2 +- > > > > drivers/net/ixgbe/ixgbe_flow.c > > > > | 5 ++--- > > > > 2 files changed, 3 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/drivers/net/ixgbe/ixgbe_fdir.c > > > > b/drivers/net/ixgbe/ixgbe_fdir.c index d5e5179..67ab627 100644 > > > > --- a/drivers/net/ixgbe/ixgbe_fdir.c > > > > +++ b/drivers/net/ixgbe/ixgbe_fdir.c > > > > @@ -774,7 +774,7 @@ ixgbe_fdir_filter_to_atr_input(const struct > > > > rte_eth_fdir_filter *fdir_filter, > > > > input->formatted.tunnel_type =3D > > > > fdir_filter->input.flow.tunnel_flow.tunnel_type; > > > > input->formatted.tni_vni =3D > > > > - fdir_filter->input.flow.tunnel_flow.tunnel_id; > > > > + fdir_filter->input.flow.tunnel_flow.tunnel_id >> 8; > > > > } > > > > > > > > return 0; > > > > diff --git a/drivers/net/ixgbe/ixgbe_flow.c > > > > b/drivers/net/ixgbe/ixgbe_flow.c index eb0644c..64af777 100644 > > > > --- a/drivers/net/ixgbe/ixgbe_flow.c > > > > +++ b/drivers/net/ixgbe/ixgbe_flow.c > > > > @@ -2489,8 +2489,7 @@ ixgbe_parse_fdir_filter_tunnel(const struct > > > > rte_flow_attr *attr, > > > > rte_memcpy(((uint8_t *) > > > > &rule->ixgbe_fdir.formatted.tni_vni + 1), > > > > vxlan_spec->vni, RTE_DIM(vxlan_spec->vni)); > > > > - rule->ixgbe_fdir.formatted.tni_vni =3D > > > > rte_be_to_cpu_32( > > > > - rule->ixgbe_fdir.formatted.tni_vni); > > > > + rule->ixgbe_fdir.formatted.tni_vni >>=3D 8; > > > > } > > > > } > > > > > > > > @@ -2587,7 +2586,7 @@ ixgbe_parse_fdir_filter_tunnel(const struct > > > > rte_flow_attr *attr, > > > > /* tni is a 24-bits bit field */ > > > > rte_memcpy(&rule->ixgbe_fdir.formatted.tni_vni, > > > > nvgre_spec->tni, RTE_DIM(nvgre_spec->tni)); > > > > - rule->ixgbe_fdir.formatted.tni_vni <<=3D 8; > > > > + rule->ixgbe_fdir.formatted.tni_vni >>=3D 8; > > > > } > > > > } > > > > > > > > -- > > > > 2.7.5