2002-09-25 23:55:54

by Nivedita Singhvi

[permalink] [raw]
Subject: Re: [ANNOUNCE] NF-HIPAC: High Performance Packet Classification


> Such a scheme can even obviate socket lookup if implemented properly.
> It'd basically be a flow cache, much like route lookups but with an
> expanded key set and the capability to stack routes. Such a flow
> cache could even be two level, with the top level being %100 cpu local
> on SMP (ie. no shared cache lines).

...

> Everything, from packet forwarding, to firewalling, to TCP socket
> packet receive, can be described with routes. It doesn't make sense
> for forwarding, TCP, netfilter, and encapsulation schemes to duplicate
> all of this table lookup logic and in fact it's entirely superfluous.

Are you saying combine the tables themselves?

One of the tradeoffs would be serialization of the access, then,
right? i.e. Much less stuff could happen in parallel? Or am I
completely misunderstanding your proposal?

> This stackable routes idea being worked on, watch this space over the
> next couple of weeks :-)

thanks,
Nivedita


2002-09-26 00:04:34

by David Miller

[permalink] [raw]
Subject: Re: [ANNOUNCE] NF-HIPAC: High Performance Packet Classification

From: "Nivedita Singhvi" <[email protected]>
Date: 25 Sep 2002 17:06:53 -0700
...

> Everything, from packet forwarding, to firewalling, to TCP socket
> packet receive, can be described with routes. It doesn't make sense
> for forwarding, TCP, netfilter, and encapsulation schemes to duplicate
> all of this table lookup logic and in fact it's entirely superfluous.

Are you saying combine the tables themselves?

One of the tradeoffs would be serialization of the access, then,
right? i.e. Much less stuff could happen in parallel? Or am I
completely misunderstanding your proposal?

In fact the exact opposite, such a suggested flow cache is about
as parallel as you can make it.

Even if the per-cpu toplevel flow cache idea were not implemented and
we used the current top-level route lookup infrastructure, it is fully
parallelized since the toplevel hash table uses per-hashchain locks.
Please see net/ipv4/route.c:ip_route_input() and friends.

I don't understand why you think using the routing tables to their
full potential would imply serialization. If you still believe this
you have to describe why in more detail.