On Wed, 10 Dec 2003, Nivedita Singhvi wrote:
> Julian Anastasov wrote:
> > It can be an option: pmtu_promisc or whatever (default 0).
> > We should avoid using TOS as hash key and if the var is 1 we should
> > ignore matching the tos keys in ip_rt_frag_needed and ip_rt_redirect.
> > By this way, all cache entries between saddr and daddr will be updated, no
> > matter the TOS or even OIF keys. Comments?
> This is what I was going to suggest too, but one of the drawbacks
> would be needing the user to recompile the distro kernel just
> for this..could we keep any fix to this dynamically tunable?
Yes, I mean sysctl var in /proc. For now, there are two
1. update PMTU info ignoring TOS and OIF
2. Reduce the number of hash entries by ignoring the TOS, may be
depending on CONFIG_IP_ROUTE_TOS, it would be preferred to be
sysctl var but the real benefits depend on the TOS usage.
I see three cases:
1. we do not route by TOS => we want to ignore TOS everywhere, if
possible, sysctl var variant for IPTOS_RT_MASK=0
2. we route by TOS (IPTOS_RT_MASK!=0) but we like the idea to
ignore TOS for PMTUD and ICMP redirects.
3. the current behavior, PMTUD does not work if TOS is changed,
the routing cache keeps many entries with different TOS
The question is how many proc entries are needed for these
cases. It seems, we can cover all cases with one proc entry: to
make IPTOS_RT_MASK a sysctl var. But there is still difference
between cases 1 and 2, may be the var will have more than 2 values?
Julian Anastasov <ja@xxxxxx>