diff options
| author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-05-10 07:32:55 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2010-05-17 20:18:51 -0400 |
| commit | 407eadd996dc62a827db85f1d0c286a98fd5d336 (patch) | |
| tree | 199b695cd045650b939aab61cbb55c31d9165b4e /include/net/route.h | |
| parent | 7fee226ad2397b635e2fd565a59ca3ae08a164cd (diff) | |
net: implements ip_route_input_noref()
ip_route_input() is the version returning a refcounted dst, while
ip_route_input_noref() returns a non refcounted one.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/route.h')
| -rw-r--r-- | include/net/route.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/net/route.h b/include/net/route.h index 2c9fba7f7731..af6cf4b4c9dc 100644 --- a/include/net/route.h +++ b/include/net/route.h | |||
| @@ -112,7 +112,22 @@ extern void rt_cache_flush_batch(void); | |||
| 112 | extern int __ip_route_output_key(struct net *, struct rtable **, const struct flowi *flp); | 112 | extern int __ip_route_output_key(struct net *, struct rtable **, const struct flowi *flp); |
| 113 | extern int ip_route_output_key(struct net *, struct rtable **, struct flowi *flp); | 113 | extern int ip_route_output_key(struct net *, struct rtable **, struct flowi *flp); |
| 114 | extern int ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk, int flags); | 114 | extern int ip_route_output_flow(struct net *, struct rtable **rp, struct flowi *flp, struct sock *sk, int flags); |
| 115 | extern int ip_route_input(struct sk_buff*, __be32 dst, __be32 src, u8 tos, struct net_device *devin); | 115 | |
| 116 | extern int ip_route_input_common(struct sk_buff *skb, __be32 dst, __be32 src, | ||
| 117 | u8 tos, struct net_device *devin, bool noref); | ||
| 118 | |||
| 119 | static inline int ip_route_input(struct sk_buff *skb, __be32 dst, __be32 src, | ||
| 120 | u8 tos, struct net_device *devin) | ||
| 121 | { | ||
| 122 | return ip_route_input_common(skb, dst, src, tos, devin, false); | ||
| 123 | } | ||
| 124 | |||
| 125 | static inline int ip_route_input_noref(struct sk_buff *skb, __be32 dst, __be32 src, | ||
| 126 | u8 tos, struct net_device *devin) | ||
| 127 | { | ||
| 128 | return ip_route_input_common(skb, dst, src, tos, devin, true); | ||
| 129 | } | ||
| 130 | |||
| 116 | extern unsigned short ip_rt_frag_needed(struct net *net, struct iphdr *iph, unsigned short new_mtu, struct net_device *dev); | 131 | extern unsigned short ip_rt_frag_needed(struct net *net, struct iphdr *iph, unsigned short new_mtu, struct net_device *dev); |
| 117 | extern void ip_rt_send_redirect(struct sk_buff *skb); | 132 | extern void ip_rt_send_redirect(struct sk_buff *skb); |
| 118 | 133 | ||
