ip6_output.c (6e360f7331132822f096399a54f40bc61887aa3c) ip6_output.c (f839a6c92504cff92a10f522cf686b51ff18dd35)
1/*
2 * IPv6 output functions
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/net/ipv4/ip_output.c

--- 364 unchanged lines hidden (view full) ---

373static inline int ip6_forward_finish(struct net *net, struct sock *sk,
374 struct sk_buff *skb)
375{
376 struct dst_entry *dst = skb_dst(skb);
377
378 __IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS);
379 __IP6_ADD_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTOCTETS, skb->len);
380
1/*
2 * IPv6 output functions
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on linux/net/ipv4/ip_output.c

--- 364 unchanged lines hidden (view full) ---

373static inline int ip6_forward_finish(struct net *net, struct sock *sk,
374 struct sk_buff *skb)
375{
376 struct dst_entry *dst = skb_dst(skb);
377
378 __IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTFORWDATAGRAMS);
379 __IP6_ADD_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTOCTETS, skb->len);
380
381#ifdef CONFIG_NET_SWITCHDEV
382 if (skb->offload_l3_fwd_mark) {
383 consume_skb(skb);
384 return 0;
385 }
386#endif
387
381 return dst_output(net, sk, skb);
382}
383
384static bool ip6_pkt_too_big(const struct sk_buff *skb, unsigned int mtu)
385{
386 if (skb->len <= mtu)
387 return false;
388

--- 1418 unchanged lines hidden ---
388 return dst_output(net, sk, skb);
389}
390
391static bool ip6_pkt_too_big(const struct sk_buff *skb, unsigned int mtu)
392{
393 if (skb->len <= mtu)
394 return false;
395

--- 1418 unchanged lines hidden ---