ipv4: Don't pre-seed hoplimit metric.
Always go through a new ip4_dst_hoplimit() helper, just like ipv6. This allowed several simplifications: 1) The interim dst_metric_hoplimit() can go as it's no longer userd. 2) The sysctl_ip_default_ttl entry no longer needs to use ipv4_doint_and_flush, since the sysctl is not cached in routing cache metrics any longer. 3) ipv4_doint_and_flush no longer needs to be exported and therefore can be marked static. When ipv4_doint_and_flush_strategy was removed some time ago, the external declaration in ip.h was mistakenly left around so kill that off too. We have to move the sysctl_ip_default_ttl declaration into ipv4's route cache definition header net/route.h, because currently net/ip.h (where the declaration lives now) has a back dependency on net/route.h Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -116,12 +116,6 @@ dst_metric(const struct dst_entry *dst, const int metric)
|
||||
return dst_metric_raw(dst, metric);
|
||||
}
|
||||
|
||||
static inline u32
|
||||
dst_metric_hoplimit(const struct dst_entry *dst)
|
||||
{
|
||||
return dst_metric_raw(dst, RTAX_HOPLIMIT);
|
||||
}
|
||||
|
||||
static inline void dst_metric_set(struct dst_entry *dst, int metric, u32 val)
|
||||
{
|
||||
dst->_metrics[metric-1] = val;
|
||||
|
||||
@@ -201,7 +201,6 @@ static inline int inet_is_reserved_local_port(int port)
|
||||
return test_bit(port, sysctl_local_reserved_ports);
|
||||
}
|
||||
|
||||
extern int sysctl_ip_default_ttl;
|
||||
extern int sysctl_ip_nonlocal_bind;
|
||||
|
||||
extern struct ctl_path net_core_path[];
|
||||
@@ -428,15 +427,6 @@ extern void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err,
|
||||
extern void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 dport,
|
||||
u32 info);
|
||||
|
||||
/* sysctl helpers - any sysctl which holds a value that ends up being
|
||||
* fed into the routing cache should use these handlers.
|
||||
*/
|
||||
int ipv4_doint_and_flush(ctl_table *ctl, int write,
|
||||
void __user *buffer,
|
||||
size_t *lenp, loff_t *ppos);
|
||||
int ipv4_doint_and_flush_strategy(ctl_table *table,
|
||||
void __user *oldval, size_t __user *oldlenp,
|
||||
void __user *newval, size_t newlen);
|
||||
#ifdef CONFIG_PROC_FS
|
||||
extern int ip_misc_proc_init(void);
|
||||
#endif
|
||||
|
||||
@@ -231,4 +231,15 @@ static inline int inet_iif(const struct sk_buff *skb)
|
||||
return skb_rtable(skb)->rt_iif;
|
||||
}
|
||||
|
||||
extern int sysctl_ip_default_ttl;
|
||||
|
||||
static inline int ip4_dst_hoplimit(const struct dst_entry *dst)
|
||||
{
|
||||
int hoplimit = dst_metric_raw(dst, RTAX_HOPLIMIT);
|
||||
|
||||
if (hoplimit == 0)
|
||||
hoplimit = sysctl_ip_default_ttl;
|
||||
return hoplimit;
|
||||
}
|
||||
|
||||
#endif /* _ROUTE_H */
|
||||
|
||||
Reference in New Issue
Block a user