All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [LARTC] U32 port masks
@ 2003-05-27  2:14 Stef Coene
  2003-05-27  9:49 ` Jurijs Dorofejevs
  0 siblings, 1 reply; 2+ messages in thread
From: Stef Coene @ 2003-05-27  2:14 UTC (permalink / raw)
  To: lartc

On Tuesday 27 May 2003 11:49, Jurijs Dorofejevs wrote:
> Hi!
>
> Can anybody explain me how does the mask work in filters?
>
> This example set filter for exactly port #2000 :
> tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip sport
> 2000 0xffff classid 1:256
>
> But if I need to set filter for the range of ports, for example, ports
> from 2000 till 3000, what mask do I need?
>
> Trying google, I've read that Mask = 0xffff - (high_port - low_port),
> that in my case will be: Mask = 0xffff - (3000 - 2000) = 0xfc17
>
> tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip sport
> 2000 0xfc17 classid 1:256
>
> But this example doesn't work correctly and I suppose that I'm wrong
> with mask defying algorithm.
>
> Any ideas?
I don't use the u32 mask myself, but I think you have to write it down in 
binary to understand.  

Easy example : 
match ip sport 2000 0xffff
	2000   = 0000 0111 1101 0000
	0xfff0 = 1111 1111 1111 0000
So all packets going from 0000 0111 1101 0000 (2000) to 0000 0111 1101 0000 
(2031) are matched.

Other example :
match ip sport 2000 0xfc17
	2000   = 0000 0111 1101 0000
	0xfc17 = 1111 1100 0001 0111
This is more complicated.  This matches all packets with 0000 01xx xxx1 x000 
(x = 0 or 1) as source port.

Stef

-- 

stef.coene@docum.org
 "Using Linux as bandwidth manager"
     http://www.docum.org/
     #lartc @ irc.oftc.net

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [LARTC] U32 port masks
  2003-05-27  2:14 [LARTC] U32 port masks Stef Coene
@ 2003-05-27  9:49 ` Jurijs Dorofejevs
  0 siblings, 0 replies; 2+ messages in thread
From: Jurijs Dorofejevs @ 2003-05-27  9:49 UTC (permalink / raw)
  To: lartc

Hi!

Can anybody explain me how does the mask work in filters?

This example set filter for exactly port #2000 :
tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip sport 2000
0xffff classid 1:256

But if I need to set filter for the range of ports, for example, ports
from 2000 till 3000, what mask do I need?

Trying google, I've read that Mask = 0xffff - (high_port - low_port),
that in my case will be: Mask = 0xffff - (3000 - 2000) = 0xfc17

tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip sport 2000
0xfc17 classid 1:256

But this example doesn't work correctly and I suppose that I'm wrong
with mask defying algorithm.

Any ideas?
Hope for your help!

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-05-27  9:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-05-27  2:14 [LARTC] U32 port masks Stef Coene
2003-05-27  9:49 ` Jurijs Dorofejevs

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.