--- zzzz-none-000/linux-4.1.38/net/ipv4/ip_output.c 2017-01-18 18:48:06.000000000 +0000 +++ bcm63-7582-715/linux-4.1.38/net/ipv4/ip_output.c 2020-11-25 10:06:48.000000000 +0000 @@ -79,6 +79,9 @@ #include #include #include +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) +#include +#endif int sysctl_ip_default_ttl __read_mostly = IPDEFTTL; EXPORT_SYMBOL(sysctl_ip_default_ttl); @@ -312,9 +315,16 @@ ) { struct sk_buff *newskb = skb_clone(skb, GFP_ATOMIC); if (newskb) +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + { + blog_clone(skb, blog_ptr(newskb)); +#endif NF_HOOK(NFPROTO_IPV4, NF_INET_POST_ROUTING, sk, newskb, NULL, newskb->dev, dev_loopback_xmit); +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + } +#endif } /* Multicasts with ttl 0 must not go beyond the host */ @@ -518,6 +528,17 @@ return -EMSGSIZE; } +#if defined(CONFIG_BCM_KF_IP) + /* + * Do not fragment the packets going to 4in6 tunnel: + * RFC2473 sec 7.2: fragmentation should happen in tunnel + */ + if (strstr(dev->name, "ip6tnl")) + { + return output(sk, skb); + } +#endif + /* * Setup starting values. */ @@ -706,6 +727,9 @@ BUG(); left -= len; +#if defined(CONFIG_BCM_KF_BLOG) && defined(CONFIG_BLOG) + blog_xfer(skb2, skb); +#endif /* * Fill in the new header fields. */