From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ananyev, Konstantin" Subject: Re: [PATCH v2] mbuf: new flag when Vlan is stripped Date: Mon, 13 Jun 2016 16:31:49 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725836B703CC@irsmsx105.ger.corp.intel.com> References: <1463993205-5623-1-git-send-email-olivier.matz@6wind.com> <1464359593-3534-1-git-send-email-olivier.matz@6wind.com> <2601191342CEEE43887BDE71AB97725836B70190@irsmsx105.ger.corp.intel.com> <575EDA24.3020405@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Cc: "johndale@cisco.com" , "Zhang, Helin" , "adrien.mazarguil@6wind.com" , "rahul.lakkireddy@chelsio.com" , "alejandro.lucero@netronome.com" , "sony.chacko@qlogic.com" To: Olivier Matz , "dev@dpdk.org" Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id DFCC7558D for ; Mon, 13 Jun 2016 18:31:52 +0200 (CEST) In-Reply-To: <575EDA24.3020405@6wind.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Olivier, > =09 > Hi Konstantin, >=20 > On 06/13/2016 04:42 PM, Ananyev, Konstantin wrote: > >> The behavior of PKT_RX_VLAN_PKT was not very well defined, resulting i= n > >> PMDs not advertising the same flags in similar conditions. > >> > >> Following discussion in [1], introduce 2 new flags PKT_RX_VLAN_STRIPPE= D > >> and PKT_RX_QINQ_STRIPPED that are better defined: > >> > >> PKT_RX_VLAN_STRIPPED: a vlan has been stripped by the hardware and i= ts > >> tci is saved in mbuf->vlan_tci. This can only happen if vlan strippi= ng > >> is enabled in the RX configuration of the PMD. > >> > >> For now, the old flag PKT_RX_VLAN_PKT is kept but marked as deprecated= . > >> It should be removed from applications and PMDs in a future revision. > > > > I am not sure it has to be deprecated & removed. > > ixgbe (and igb as I can read the specs) devices can provide information= is that > > a vlan packet or not even when vlan stripping is disabled. > > Right now ixgbe PMD do carry thins information to the user, > > and I suppose igb could be improved to carry it too. > > So obviously we need a way to pass that information to the upper layer. > > I remember it was a discussion about introducing new packet_type > > instead of ol_flag value PKT_RX_VLAN_PKT. > > But right now it is not there, and again I don't know how easy it would= be to replace > > one with another without performance considering that packet_type is no= t supported > > now by ixgbe vRX. > > If we would be able to replace it, then yes we can deprecate and drop t= he PKT_RX_VLAN_PKT. > > But till then, I think we'd better keep it. >=20 > I think the packet_type feature would be more appropriate than a flag > for carrying this kind of info. >=20 > Currently the behavior of PKT_RX_VLAN_PKT is not properly defined, > and it is not the same on all PMDs. So, from an application > perspective, it's not usable except if it knows that the underlying > PMD is an ixgbe. Yes, but it might be apps which do use that ixgbe functionality. > This is not acceptable for a generic API and that's > why I think this flag, as it is today, should be deprecated. I suppose we can't deprecate existing functionality without providing working alternative. I agree there is no proper way to know right now which device supports it, which not, but to me it means we should add such ability, not deprecate existing and (I believe) useful functionality. >=20 > It won't prevent an application from using the flag right after my > commit, but it will warn the user that the flag should not be used > as is. If someone is willing to work on this feature for 16.11, why > not but again, I think using the packet_type is more appropriate. I am not against providing that information via packet_type. What I am saying: 1) right now it is not here. 2) it might not that easy in terms of performance. =20 > The problem is that I don't want to have this flag in this state > forever, and I also don't want to add in rte_mbuf.h a comment > saying "this flag does this on ixgbe and that on other drivers". Then we need either: - implement it as ptype - add user ability to query is that flag is supported by the underlying dev= ice. >=20 > If we decide to generalize the ixgbe behavior for all PMDs for this > flag, it will break the applications relying on this flag but with > other PMDs. So for the same reason we added a new PKT_RX_VLAN_STRIPPED > we cannot change the behavior of an existing flag. Ok, then let's make PKT_RX_VLAN_STRIPPED =3D=3D PKT_RX_VLAN, and assign new value to the PKT_RX_VLAN. Or have PKT_RX_VLAN_STRIPPED =3D=3D PKT_RX_VLAN and create a new one: PKT_RX_VLAN_PRESENT or so. ? Konstantin