diff options
author | Linus Lüssing <linus.luessing@web.de> | 2013-06-16 17:20:34 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-17 20:11:22 -0400 |
commit | 32de868cbc6bee010d2cee95b5071b25ecbec8c3 (patch) | |
tree | 4732265c9470bf469793c090eaa844f972a3bceb /net | |
parent | 788dfcacacfbdd51f9c92065bd8e136686f07a29 (diff) |
bridge: fix switched interval for MLD Query types
General Queries (the one with the Multicast Address field
set to zero / '::') are supposed to have a Maximum Response Delay
of [Query Response Interval], while for Multicast-Address-Specific
Queries it is [Last Listener Query Interval] - not the other way
round. (see RFC2710, section 7.3+7.8)
Signed-off-by: Linus Lüssing <linus.luessing@web.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/bridge/br_multicast.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c index 81f2389f78eb..d6448e35e027 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c | |||
@@ -465,8 +465,9 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br, | |||
465 | skb_set_transport_header(skb, skb->len); | 465 | skb_set_transport_header(skb, skb->len); |
466 | mldq = (struct mld_msg *) icmp6_hdr(skb); | 466 | mldq = (struct mld_msg *) icmp6_hdr(skb); |
467 | 467 | ||
468 | interval = ipv6_addr_any(group) ? br->multicast_last_member_interval : | 468 | interval = ipv6_addr_any(group) ? |
469 | br->multicast_query_response_interval; | 469 | br->multicast_query_response_interval : |
470 | br->multicast_last_member_interval; | ||
470 | 471 | ||
471 | mldq->mld_type = ICMPV6_MGM_QUERY; | 472 | mldq->mld_type = ICMPV6_MGM_QUERY; |
472 | mldq->mld_code = 0; | 473 | mldq->mld_code = 0; |