]> bbs.cooldavid.org Git - net-next-2.6.git/commit - net/ipv4/route.c
[IPV4]: Aggregate route entries with different TOS values
authorIlia Sotnikov <hostcc@gmail.com>
Sat, 25 Mar 2006 09:38:55 +0000 (01:38 -0800)
committerDavid S. Miller <davem@davemloft.net>
Sat, 25 Mar 2006 09:38:55 +0000 (01:38 -0800)
commitcef2685e0053945ea0f3c02297386b040f486ea7
tree869c11f64c5e2259342c228c80e93cbbbf8e4fc1
parentb8059eadf9f4dc24bd72da71daa832a9a9899fb4
[IPV4]: Aggregate route entries with different TOS values

When we get an ICMP need-to-frag message, the original TOS value in the
ICMP payload cannot be used as a key to look up the routes to update.
This is because the TOS field may have been modified by routers on the
way.  Similarly, ip_rt_redirect should also ignore the TOS as the router
that gave us the message may have modified the TOS value.

The patch achieves this objective by aggregating entries with different
TOS values (but are otherwise identical) into the same bucket.  This
makes it easy to update them at the same time when an ICMP message is
received.

In future we should use a twin-hashing scheme where teh aggregation
occurs at the entry level.  That is, the TOS goes back into the hash
for normal lookups while ICMP lookups will end up with a node that
gives us a list that contains all other route entries that differ
only by TOS.

Signed-off-by: Ilia Sotnikov <hostcc@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/route.h
net/ipv4/icmp.c
net/ipv4/route.c