Andrew,
On Tue, Dec 24, 2019 at 3:23 PM Andrew Rybchenko <arybche...@solarflare.com> wrote: > > On 12/24/19 6:16 AM, Somnath Kotur wrote: > > Given that we haven't heard any objection from anyone in a while on > > this ...can we get this in please? > > I'm sorry, but have you seen below? > It means that PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ, PKT_RX_VLAN > and PKT_RX_VLAN_STRIPPED must be clarified. > OK, not sure I understood what is the next action here? Will you or someone from the main tree maintainers be sending out a patch with this clarification? > It sounds like change of semantics in order to resolve the > problem, but anyway it is still a small change of semantics. > > BTW, it is better to make summary human readable and avoid > PKT_RX_QINQ_STRIPPED (I guess check-git-log.sh yells on it). > > Also RFC patch cannot be applied, non-RFC version is required. > > CC main tree maintainers. > > > Thanks > > > > On Mon, Dec 16, 2019 at 2:43 PM Andrew Rybchenko > > <arybche...@solarflare.com> wrote: > >> > >> On 12/16/19 11:47 AM, Somnath Kotur wrote: > >>> On Mon, Dec 16, 2019 at 12:01 PM Andrew Rybchenko > >>> <arybche...@solarflare.com> wrote: > >>>> > >>>> On 12/16/19 6:16 AM, Somnath Kotur wrote: > >>>>> Certain hardware may be able to strip and/or save only the outermost > >>>>> VLAN instead of both the VLANs in the mbuf in a QinQ scenario. > >>>>> To handle such cases, we could re-interpret setting of just > >>>>> PKT_RX_QINQ_STRIPPED > >>>>> to indicate that only the outermost VLAN has been stripped by the > >>>>> hardware and > >>>>> saved in mbuf->vlan_tci_outer. > >>>>> Only When both PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, > >>>>> the 2 vlans > >>>>> have been stripped by the hardware and their tci are saved in > >>>>> mbuf->vlan_tci (inner) > >>>>> and mbuf->vlan_tci_outer (outer). > >>>>> > >>>>> Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com> > >>>>> Signed-off-by: JP Lee <jongpil....@broadcom.com> > >>>>> --- > >>>>> lib/librte_mbuf/rte_mbuf_core.h | 15 +++++++++++---- > >>>>> 1 file changed, 11 insertions(+), 4 deletions(-) > >>>>> > >>>>> diff --git a/lib/librte_mbuf/rte_mbuf_core.h > >>>>> b/lib/librte_mbuf/rte_mbuf_core.h > >>>>> index 9a8557d..db1070b 100644 > >>>>> --- a/lib/librte_mbuf/rte_mbuf_core.h > >>>>> +++ b/lib/librte_mbuf/rte_mbuf_core.h > >>>>> @@ -124,12 +124,19 @@ > >>>>> #define PKT_RX_FDIR_FLX (1ULL << 14) > >>>>> > >>>>> /** > >>>>> - * The 2 vlans have been stripped by the hardware and their tci are > >>>>> - * saved in mbuf->vlan_tci (inner) and mbuf->vlan_tci_outer (outer). > >>>>> + * The outer vlan has been stripped by the hardware and their tci are > >>>>> + * saved in mbuf->vlan_tci_outer (outer). > >>>>> * This can only happen if vlan stripping is enabled in the RX > >>>>> * configuration of the PMD. > >>>>> - * When PKT_RX_QINQ_STRIPPED is set, the flags (PKT_RX_VLAN | > >>>>> - * PKT_RX_VLAN_STRIPPED | PKT_RX_QINQ) must also be set. > >>>>> + * When PKT_RX_QINQ_STRIPPED is set, the flags (PKT_RX_VLAN | > >>>>> PKT_RX_QINQ) > >>>>> + * must also be set. > >>>>> + * When both PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, > >>>>> the 2 vlans > >>>>> + * have been stripped by the hardware and their tci are saved in > >>>>> + * mbuf->vlan_tci (inner) and mbuf->vlan_tci_outer (outer). > >>>>> + * This can only happen if vlan stripping is enabled in the RX > >>>>> configuration > >>>>> + * of the PMD. > >>>>> + * When PKT_RX_QINQ_STRIPPED and PKT_RX_VLAN_STRIPPED are set, > >>>>> + * (PKT_RX_VLAN | PKT_RX_QINQ) must also be set. > >>>>> */ > >>>>> #define PKT_RX_QINQ_STRIPPED (1ULL << 15) > >>>>> > >>>> > >>>> I always thought that PKT_RX_VLAN_STRIPPED means *one* VLAN > >>>> stripped regardless if it is outer (if the packet is double > >>>> tagged) or inner (if only one VLAN tag was present). > >>>> > >>>> That's why PKT_RX_QINQ_STRIPPED description says that *two* > >>>> VLANs have been stripped. > >>>> > >>>> What is the problem with such approach? > >>> The problem is that RX_VLAN_STRIPPED implies that the stripped VLAN > >>> (outer or inner) is saved in mbuf->vlan_tci, correct? > >> > >> Yes. > >> > >>> There is no way to convey that it is in QinQ mode and yet only outer > >>> VLAN has been stripped and saved in mbuf->vlan_tci_outer ? > >> > >> Ah, it looks like I understand now that the problem is in > >> PKT_RX_QINQ description which claims that TCI is saved in > >> mbuf->vlan_tci_outer and PKT_RX_QINQ_STRIPPED means that > >> both VLAN tags are stripped regardless (PKT_RX_VLAN_STRIPPED). > >> Moreover PKT_RX_QINQ_STRIPPED requires PKT_RX_VLAN_STRIPPED. > >> > >> It means that PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ, PKT_RX_VLAN > >> and PKT_RX_VLAN_STRIPPED must be clarified. > >> > >> I'm not sure, but it looks like it could affect net/dpaa2, > >> so I'm including driver maintainers in CC. >