u32 match packet length

Fernando Xavier <[email protected]> Wed, 17 Nov 2021 19:13:21 -0300
Newsgroups gmane.linux.network.routing
Message-ID <[email protected]>
Hi there, I'm wondering if someone here can help me

I'm trying a simple prio qos based on packet length on 3 bands

1st: packets that are less than 100 bytes

2nd: packets that are less than 500 bytes

3rd: catch-all

So I did this:

tc qdisc replace dev eth0 root handle 1: prio
   tc qdisc add dev eth0 parent 1:1 pfifo
     tc filter add dev eth0 protocol all parent 1: u32 match u16 0x0000 
0xff9c at 2 flowid 1:1
   tc qdisc add dev eth0 parent 1:2 pfifo
     tc filter add dev eth0 protocol all parent 1: u32 match u16 0x0000 
0xfe0c at 2 flowid 1:2
   tc qdisc add dev eth0 parent 1:3 pfifo
     tc filter add dev eth0 protocol all parent 1: prio 2 u32 match u32 
0 0 flowid 1:3

But when looking with:


watch -n 0.1 tc -s class show dev eth0

I see no packets enqueued on 1:1, the other bands show packets being sent

That makes me believe that my u32 match is all wrong, how can I achieve 
this using u32?

Thanks.