Subject: Re: [PATCH iproute2-next v3 0/2] f_flower: match on the number of vlan tags

From: Boris Sukholitko <[email-masked]>
Date: Wed, 27 Apr 2022 17:32:00 +0300

Hi Stephen,

On Tue, Apr 26, 2022 at 08:11:42AM -0700, Stephen Hemminger wrote:
> On Tue, 26 Apr 2022 12:14:15 +0300
> Boris Sukholitko <[email-masked]> wrote:
> 
> > Hi,
> > 
> > Our customers in the fiber telecom world have network configurations
> > where they would like to control their traffic according to the number
> > of tags appearing in the packet.
> > 
> > For example, TR247 GPON conformance test suite specification mostly
> > talks about untagged, single, double tagged packets and gives lax
> > guidelines on the vlan protocol vs. number of vlan tags.
> > 
> > This is different from the common IT networks where 802.1Q and 802.1ad
> > protocols are usually describe single and double tagged packet. GPON
> > configurations that we work with have arbitrary mix the above protocols
> > and number of vlan tags in the packet.
> > 
> > The following patch series implement number of vlans flower filter. They
> > add num_of_vlans flower filter as an alternative to vlan ethtype protocol
> > matching. The end result is that the following command becomes possible:
> > 
> > tc filter add dev eth1 ingress flower \
> >   num_of_vlans 1 vlan_prio 5 action drop
> > 
> > Also, from our logs, we have redirect rules such that:
> > 
> > tc filter add dev $GPON ingress flower num_of_vlans $N \
> >      action mirred egress redirect dev $DEV
> > 
> > where N can range from 0 to 3 and $DEV is the function of $N.
> > 
> > Also there are rules setting skb mark based on the number of vlans:
> > 
> > tc filter add dev $GPON ingress flower num_of_vlans $N vlan_prio \
> >     $P action skbedit mark $M
> > 
> > Thanks,
> > Boris.
> > 
> > - v3: rebased to the latest iproute2-next
> > - v2: add missing f_flower subject prefix
> > 
> > Boris Sukholitko (2):
> >   f_flower: Add num of vlans parameter
> >   f_flower: Check args with num_of_vlans
> > 
> >  tc/f_flower.c | 57 ++++++++++++++++++++++++++++++++++++---------------
> >  1 file changed, 41 insertions(+), 16 deletions(-)
> 
> Can you do this with BPF? instead of kernel change?

You may have missed my reply to this question at:

https://lore.kernel.org/netdev/20220412104514.GB27480@noodle/

There is also Jamal's reply further at the thread:

https://lore.kernel.org/netdev/[email-masked]/

Thanks,
Boris.