ip6_output.c (53c8b29abe42e5601cfa0ea5962532f0cfdec8a0) | ip6_output.c (9b1c1ef13b35fa35051b635ca9fbda39fe6bbc70) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * IPv6 output functions 4 * Linux INET6 implementation 5 * 6 * Authors: 7 * Pedro Roque <roque@di.fc.ul.pt> 8 * --- 45 unchanged lines hidden (view full) --- 54#include <linux/mroute6.h> 55#include <net/l3mdev.h> 56#include <net/lwtunnel.h> 57 58static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *skb) 59{ 60 struct dst_entry *dst = skb_dst(skb); 61 struct net_device *dev = dst->dev; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * IPv6 output functions 4 * Linux INET6 implementation 5 * 6 * Authors: 7 * Pedro Roque <roque@di.fc.ul.pt> 8 * --- 45 unchanged lines hidden (view full) --- 54#include <linux/mroute6.h> 55#include <net/l3mdev.h> 56#include <net/lwtunnel.h> 57 58static int ip6_finish_output2(struct net *net, struct sock *sk, struct sk_buff *skb) 59{ 60 struct dst_entry *dst = skb_dst(skb); 61 struct net_device *dev = dst->dev; |
62 const struct in6_addr *nexthop; |
|
62 struct neighbour *neigh; | 63 struct neighbour *neigh; |
63 struct in6_addr *nexthop; | |
64 int ret; 65 66 if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { 67 struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); 68 69 if (!(dev->flags & IFF_LOOPBACK) && sk_mc_loop(sk) && 70 ((mroute6_is_socket(net, skb) && 71 !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) || --- 1749 unchanged lines hidden --- | 64 int ret; 65 66 if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) { 67 struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb)); 68 69 if (!(dev->flags & IFF_LOOPBACK) && sk_mc_loop(sk) && 70 ((mroute6_is_socket(net, skb) && 71 !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) || --- 1749 unchanged lines hidden --- |