|
@@ -56,7 +56,7 @@
|
|
|
#include <net/checksum.h>
|
|
|
#include <linux/mroute6.h>
|
|
|
|
|
|
-static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
|
|
|
+int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
|
|
|
|
|
|
int __ip6_local_out(struct sk_buff *skb)
|
|
|
{
|
|
@@ -145,14 +145,6 @@ static int ip6_finish_output2(struct sk_buff *skb)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
-static inline int ip6_skb_dst_mtu(struct sk_buff *skb)
|
|
|
-{
|
|
|
- struct ipv6_pinfo *np = skb->sk ? inet6_sk(skb->sk) : NULL;
|
|
|
-
|
|
|
- return (np && np->pmtudisc == IPV6_PMTUDISC_PROBE) ?
|
|
|
- skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb));
|
|
|
-}
|
|
|
-
|
|
|
static int ip6_finish_output(struct sk_buff *skb)
|
|
|
{
|
|
|
if ((skb->len > ip6_skb_dst_mtu(skb) && !skb_is_gso(skb)) ||
|
|
@@ -601,7 +593,7 @@ int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr)
|
|
|
return offset;
|
|
|
}
|
|
|
|
|
|
-static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
|
|
|
+int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
|
|
|
{
|
|
|
struct sk_buff *frag;
|
|
|
struct rt6_info *rt = (struct rt6_info*)skb_dst(skb);
|