mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 22:51:37 +00:00
[IPV6] MROUTE: Support multicast forwarding.
Based on ancient patch by Mickael Hoerdt <hoerdt@clarinet.u-strasbg.fr>, which is available at <http://www-r2.u-strasbg.fr/~hoerdt/dev/linux_ipv6_mforwarding/patch-linux-ipv6-mforwarding-0.1a>. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
parent
80a9492a33
commit
7bc570c8b4
13 changed files with 1751 additions and 27 deletions
|
@ -55,6 +55,7 @@
|
|||
#include <net/icmp.h>
|
||||
#include <net/xfrm.h>
|
||||
#include <net/checksum.h>
|
||||
#include <linux/mroute6.h>
|
||||
|
||||
static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *));
|
||||
|
||||
|
@ -137,8 +138,9 @@ static int ip6_output2(struct sk_buff *skb)
|
|||
struct inet6_dev *idev = ip6_dst_idev(skb->dst);
|
||||
|
||||
if (!(dev->flags & IFF_LOOPBACK) && (!np || np->mc_loop) &&
|
||||
ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr,
|
||||
&ipv6_hdr(skb)->saddr)) {
|
||||
((mroute6_socket && !(IP6CB(skb)->flags & IP6SKB_FORWARDED)) ||
|
||||
ipv6_chk_mcast_addr(dev, &ipv6_hdr(skb)->daddr,
|
||||
&ipv6_hdr(skb)->saddr))) {
|
||||
struct sk_buff *newskb = skb_clone(skb, GFP_ATOMIC);
|
||||
|
||||
/* Do not check for IFF_ALLMULTI; multicast routing
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue