U32 port matching trouble

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm having some trouble with the u32 port match and that is when specifying a mask.

tc filter add prio 1 dev ppp1 parent 2:0 protocol ip u32 match ip dst 0.0.0.0/0 match ip protocol 17 0xff match ip dport 27015 0xffff flowid 2:4

Using 27015 0xffff works just fine, all packets to dport 27015 go to 2:4


tc filter add prio 1 dev ppp2 parent 2:0 protocol ip u32 match ip dst 0.0.0.0/0 match ip protocol 17 0xff match ip dport 27015 0xFFD2 flowid 2:4


Using 27015 0xffd2, no packets go to 2:4. What should happen if my theory below is right is putting ports 27015 - 27050 in 2:4


The way I calculate the mask is: - Convert lowest boundary of port range to binary (27015) - Convert highest boundary of port range to binary (27050) - XOR every bit of the low port with the negated bit of the high port - Convert calculated value to base 16 and use as 0x$MASK

So basically I assume that:

[ ] I have no idea how the mask field works
[ ] There is an error in the implementation

Can anyone confirm my understanding of the mask calculation?
Can anyone confirm an error in the implementation?

I'm running iproute2-ss050112 on a 2.4.28 kernel (with several patches)

_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux