linux/include/net
Ilia Sotnikov cef2685e00 [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>
2006-03-25 01:38:55 -08:00
..
bluetooth [Bluetooth] Reduce L2CAP MTU for RFCOMM connections 2006-02-13 11:39:57 +01:00
irda [IRDA]: Ratelimit messages. 2006-02-13 15:34:11 -08:00
netfilter [NETFILTER]: nf_conntrack: support for layer 3 protocol load on demand 2006-03-22 13:56:08 -08:00
sctp [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
tc_act [NETFILTER]: futher {ip,ip6,arp}_tables unification 2006-03-22 13:56:56 -08:00
tipc [TIPC] More updates of file headers 2006-01-12 14:06:39 -08:00
act_api.h [PKT_SCHED]: Convert tc action functions to single skb pointers 2006-01-09 14:16:08 -08:00
act_generic.h [PKT_SCHED]: Fixup simple action define. 2005-05-19 12:42:39 -07:00
addrconf.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
af_unix.h [NET]: sem2mutex part 2 2006-03-20 22:35:41 -08:00
ah.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
arp.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
atmclip.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ax25.h [AX.25]: Fix potencial memory hole. 2006-03-19 13:20:06 -08:00
checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
compat.h [NET]: socket timestamp 32 bit handler for 64 bit kernel 2006-03-21 23:59:39 -08:00
datalink.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
dn.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_dev.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_fib.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_neigh.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_nsp.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dn_route.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
dsfield.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dst.h [XFRM]: Netfilter IPsec output hooks 2006-01-07 12:57:28 -08:00
esp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
flow.h [DECnet]: Endian annotation and fixes for DECnet. 2006-03-20 22:42:39 -08:00
gen_stats.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
genetlink.h [PATCH] genetlink: don't touch module ref count 2006-01-13 13:06:40 -08:00
icmp.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ieee80211.h [PATCH] ieee80211: common wx auth code 2006-01-30 20:35:35 -05:00
ieee80211_crypt.h [PATCH] ieee80211: Add TKIP crypt->build_iv 2006-01-27 17:08:07 -05:00
ieee80211_radiotap.h [PATCH] ieee80211: Added ieee80211_radiotap.h 2005-09-21 23:03:55 -04:00
ieee80211softmac.h [PATCH] softmac: add copyright and license headers 2006-03-22 22:16:56 -05:00
ieee80211softmac_wx.h [PATCH] softmac: add copyright and license headers 2006-03-22 22:16:56 -05:00
if_inet6.h [IPV6]: ADDRCONF: Use our standard algorithm for randomized ifid. 2006-03-20 16:54:09 -08:00
inet6_connection_sock.h [IPV6]: Generalise some functions 2006-01-03 13:10:46 -08:00
inet6_hashtables.h [IPV6]: Introduce inet6_timewait_sock 2006-01-03 13:10:47 -08:00
inet_common.h [NET]: move struct proto_ops to const 2006-01-03 13:11:15 -08:00
inet_connection_sock.h [ICSK] compat: Introduce inet_csk_compat_[gs]etsockopt 2006-03-20 22:46:16 -08:00
inet_ecn.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_hashtables.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_sock.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inet_timewait_sock.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
inetpeer.h [IPV4]: Safer reassembly 2006-01-03 13:10:31 -08:00
ip.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
ip6_checksum.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip6_fib.h [IPV6]: V6 route events reported with wrong netlink PID and seq number 2005-06-21 13:51:04 -07:00
ip6_route.h [IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191). 2006-03-20 17:06:24 -08:00
ip6_tunnel.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_fib.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ip_mp_alg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip_vs.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
ipcomp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipconfig.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ipv6.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
ipx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iw_handler.h [PATCH] WE-20 for kernel 2.6.16 2006-03-23 07:12:57 -05:00
lapb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc.h [LLC]: llc_mac_hdr_init const arguments 2006-03-20 22:59:36 -08:00
llc_c_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_c_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_conn.h [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
llc_if.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_pdu.h [LLC]: Fix typo 2005-11-14 21:58:18 -08:00
llc_s_ac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_ev.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_s_st.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
llc_sap.h [LLC]: Fix the accept path 2005-09-22 07:57:21 -03:00
ndisc.h [IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191). 2006-03-20 17:06:24 -08:00
neighbour.h [NET]: Move destructor from neigh->ops to neigh_params 2006-03-20 22:25:41 -08:00
netlink.h [NETLINK]: Generic netlink receive queue processor 2005-11-10 02:26:40 +01:00
netrom.h drivers/net: Remove pointless checks for NULL prior to calling kfree() 2005-10-28 16:53:13 -04:00
p8022.h [NET]: Fix sparse warnings 2005-08-29 16:01:32 -07:00
pkt_act.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
pkt_cls.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
pkt_sched.h [PKT_SCHED]: Use USEC_PER_SEC 2006-01-09 14:16:05 -08:00
protocol.h [IPV6]: Move nextheader offset to the IP6CB 2006-01-07 12:57:29 -08:00
psnap.h [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
raw.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
rawv6.h [IPV4/6]: Check if packet was actually delivered to a raw socket to decide whether to send an ICMP unreachable 2005-08-29 15:37:22 -07:00
red.h [PKT_SCHED]: Generic RED layer 2005-11-05 22:02:24 +01:00
request_sock.h [IPV6]: Generalise tcp_v6_search_req & tcp_v6_synq_add 2006-01-03 13:10:36 -08:00
rose.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
route.h [IPV4]: Aggregate route entries with different TOS values 2006-03-25 01:38:55 -08:00
sch_generic.h [PKT_SCHED]: Cleanup qdisc creation and alignment macros 2005-07-05 14:15:09 -07:00
scm.h [AF_UNIX]: scm: better initialization 2006-03-20 21:31:51 -08:00
slhc_vj.h [NET]: Remove __ARGS from include/net/slhc_vj.h 2005-07-05 15:12:04 -07:00
snmp.h [PATCH] smp_processor_id() cleanup 2005-06-21 18:46:13 -07:00
sock.h [NET]: Fill in a 32-bit hole in struct sock on 64-bit platforms. 2006-03-24 15:45:00 -08:00
syncppp.h [PATCH] drivers/net/wan/: possible cleanups 2005-09-14 08:36:54 -04:00
tcp.h [NET]: {get|set}sockopt compatibility layer 2006-03-20 22:45:21 -08:00
tcp_ecn.h [NET]: Introduce inet_connection_sock 2005-08-29 15:43:19 -07:00
tcp_states.h [TCP]: Move the TCPF_ enum to tcp_states.h 2006-01-03 13:10:57 -08:00
timewait_sock.h [TWSK]: Introduce struct timewait_sock_ops 2006-01-03 13:10:54 -08:00
transp_v6.h [ICSK]: Rename struct tcp_func to struct inet_connection_sock_af_ops 2006-01-03 13:10:38 -08:00
udp.h [INET_SOCK]: Move struct inet_sock & helper functions to net/inet_sock.h 2006-01-03 13:11:21 -08:00
x25.h [X25]: allow ITU-T DTE facilities for x25 2006-03-22 00:01:31 -08:00
x25device.h [NET]: Remove explicit initializations of skb->input_dev 2005-08-29 15:33:26 -07:00
xfrm.h [XFRM]: Fix aevent related crash 2006-03-20 22:40:54 -08:00