diff options
author | David S. Miller <davem@davemloft.net> | 2013-04-01 21:36:50 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-04-01 21:36:50 +0400 |
commit | a210576cf891e9e6d2c238eabcf5c1286b1e7526 (patch) | |
tree | 0fa81a901cf628b25e6ee79057700cf39e59818a /net/ipv6 | |
parent | 7d4c04fc170087119727119074e72445f2bb192b (diff) | |
parent | 3658f3604066d5500ebd73a04084f127dc779441 (diff) | |
download | linux-a210576cf891e9e6d2c238eabcf5c1286b1e7526.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
net/mac80211/sta_info.c
net/wireless/core.h
Two minor conflicts in wireless. Overlapping additions of extern
declarations in net/wireless/core.h and a bug fix overlapping with
the addition of a boolean parameter to __ieee80211_key_free().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ip6_input.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c index e33fe0ab2568..2bab2aa59745 100644 --- a/net/ipv6/ip6_input.c +++ b/net/ipv6/ip6_input.c @@ -118,6 +118,18 @@ int ipv6_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt ipv6_addr_loopback(&hdr->daddr)) goto err; + /* RFC4291 Errata ID: 3480 + * Interface-Local scope spans only a single interface on a + * node and is useful only for loopback transmission of + * multicast. Packets with interface-local scope received + * from another node must be discarded. + */ + if (!(skb->pkt_type == PACKET_LOOPBACK || + dev->flags & IFF_LOOPBACK) && + ipv6_addr_is_multicast(&hdr->daddr) && + IPV6_ADDR_MC_SCOPE(&hdr->daddr) == 1) + goto err; + /* RFC4291 2.7 * Nodes must not originate a packet to a multicast address whose scope * field contains the reserved value 0; if such a packet is received, it |