"David S. Miller" wrote:
>
> 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.
Well, true - we have per hashchain locks, but are we now adding
the times we need to lookup something on this chain because we now
have additional info other than the route, is what I was
wondering..?
> 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.
thanks,
Nivedita
From: Nivedita Singhvi <[email protected]>
Date: Wed, 25 Sep 2002 17:50:11 -0700
Well, true - we have per hashchain locks, but are we now adding
the times we need to lookup something on this chain because we now
have additional info other than the route, is what I was
wondering..?
That's what I meant by "extending the lookup key", consider if we
took "next protocol, src port, dst port" into account.