All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stef Coene <stef.coene@docum.org>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] U32 port masks
Date: Tue, 27 May 2003 02:14:59 +0000	[thread overview]
Message-ID: <marc-lartc-105405581322185@msgid-missing> (raw)

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/

             reply	other threads:[~2003-05-27  2:14 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-27  2:14 Stef Coene [this message]
2003-05-27  9:49 ` [LARTC] U32 port masks Jurijs Dorofejevs

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-lartc-105405581322185@msgid-missing \
    --to=stef.coene@docum.org \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.