public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* What about adding range support for u32 classifier?
@ 2005-08-30  3:23 zhang yuanyi
  2005-08-30 12:14 ` Jesper Juhl
  0 siblings, 1 reply; 3+ messages in thread
From: zhang yuanyi @ 2005-08-30  3:23 UTC (permalink / raw)
  To: linux-kernel

Hello, everyone!

The "range support" may be puzzled, but I don't know how to express my
problem exactly because of my poor english.

Just take an example, I may need all udp packets received on eth0
which source port is greater than 53 going into flow 10:1,  and I only
wanna to type one tc command like this(In fact, I communicated with
kernel directly):

    tc filter add dev eth0 parent ffff: protocol ip prio 20 \
                                  u32 match udp sport gt 53 0xffff \
                                        match ip protocol 17 0xff\
                                   flowid 10:1

But I found I can't, because u32 classifier doesn't support matching
multi-value in one key.So I need to add (65535-53) keys to a u32
filter to implement this.

I intend to solve this problem by modifying u32 filter to match
multi-value in one key, but I am worrying the preformance.

Can someone give me some suggestions?

Sincerely.
Yuanyi Zhang

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

* Re: What about adding range support for u32 classifier?
  2005-08-30  3:23 What about adding range support for u32 classifier? zhang yuanyi
@ 2005-08-30 12:14 ` Jesper Juhl
  2005-09-01  7:26   ` zhang yuanyi
  0 siblings, 1 reply; 3+ messages in thread
From: Jesper Juhl @ 2005-08-30 12:14 UTC (permalink / raw)
  To: zhang yuanyi; +Cc: Alexey Kuznetsov, linux-kernel

On 8/30/05, zhang yuanyi <zhangyuanyi@gmail.com> wrote:
> Hello, everyone!
> 
> The "range support" may be puzzled, but I don't know how to express my
> problem exactly because of my poor english.
> 
> Just take an example, I may need all udp packets received on eth0
> which source port is greater than 53 going into flow 10:1,  and I only
> wanna to type one tc command like this(In fact, I communicated with
> kernel directly):
> 
>     tc filter add dev eth0 parent ffff: protocol ip prio 20 \
>                                   u32 match udp sport gt 53 0xffff \
>                                         match ip protocol 17 0xff\
>                                    flowid 10:1
> 
> But I found I can't, because u32 classifier doesn't support matching
> multi-value in one key.So I need to add (65535-53) keys to a u32
> filter to implement this.
> 
> I intend to solve this problem by modifying u32 filter to match
> multi-value in one key, but I am worrying the preformance.
> 
> Can someone give me some suggestions?
> 
How is this a kernel problem?
"tc" is a userspace app. I think you'd be better off talking to Alexey
Kuznetsov (added to Cc), who wrote tc, about this.

-- 
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html

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

* Re: What about adding range support for u32 classifier?
  2005-08-30 12:14 ` Jesper Juhl
@ 2005-09-01  7:26   ` zhang yuanyi
  0 siblings, 0 replies; 3+ messages in thread
From: zhang yuanyi @ 2005-09-01  7:26 UTC (permalink / raw)
  To: Jesper Juhl; +Cc: Alexey Kuznetsov, linux-kernel

2005/8/30, Jesper Juhl <jesper.juhl@gmail.com>:
> On 8/30/05, zhang yuanyi <zhangyuanyi@gmail.com> wrote:
> > Hello, everyone!
> >
> > The "range support" may be puzzled, but I don't know how to express my
> > problem exactly because of my poor english.
> >
> > Just take an example, I may need all udp packets received on eth0
> > which source port is greater than 53 going into flow 10:1,  and I only
> > wanna to type one tc command like this(In fact, I communicated with
> > kernel directly):
> >
> >     tc filter add dev eth0 parent ffff: protocol ip prio 20 \
> >                                   u32 match udp sport gt 53 0xffff \
> >                                         match ip protocol 17 0xff\
> >                                    flowid 10:1
> >
> > But I found I can't, because u32 classifier doesn't support matching
> > multi-value in one key.So I need to add (65535-53) keys to a u32
> > filter to implement this.
> >
> > I intend to solve this problem by modifying u32 filter to match
> > multi-value in one key, but I am worrying the preformance.
> >
> > Can someone give me some suggestions?
> >
> How is this a kernel problem?
> "tc" is a userspace app. I think you'd be better off talking to Alexey
> Kuznetsov (added to Cc), who wrote tc, about this.
> 
Actually, I communicated with kernel directly in my app and don't use tc at all.

That tc command is used just for expressing my problem conveniently.

My problem is that I need to match udp/tcp packets with different s/d
port(f.e., all udp packets which source port is greater than 53 and
less than 5069) on ingress, but u32 classifier in kernel(not the tc
app) doesn't support matching value in a range.

So I think I may need to modify the kernel to add range support for
u32 classifier. But I am worrying its performance will be down.

Does anyone have a more clever solution?

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

end of thread, other threads:[~2005-09-01  7:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-30  3:23 What about adding range support for u32 classifier? zhang yuanyi
2005-08-30 12:14 ` Jesper Juhl
2005-09-01  7:26   ` zhang yuanyi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox