net: bridge: extend MLD/IGMP query stats
As was suggested this patch adds support for the different versions of MLD and IGMP query types. Since the user visible structure is still in net-next we can augment it instead of adding netlink attributes. The distinction between the different IGMP/MLD query types is done as suggested in Section 7.1, RFC 3376 [1] and Section 8.1, RFC 3810 [2] based on query payload size and code for IGMP. Since all IGMP packets go through multicast_rcv() and it uses ip_mc_check_igmp/ipv6_mc_check_mld we can be sure that at least the ip/ipv6 header can be directly used. [1] https://tools.ietf.org/html/rfc3376#section-7 [2] https://tools.ietf.org/html/rfc3810#section-8.1 Suggested-by: Linus Lüssing <linus.luessing@c0d3.blue> Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
f1533cce60
commit
a65056ecf4
@@ -586,7 +586,7 @@ void br_mdb_notify(struct net_device *dev, struct net_bridge_port *port,
|
||||
void br_rtr_notify(struct net_device *dev, struct net_bridge_port *port,
|
||||
int type);
|
||||
void br_multicast_count(struct net_bridge *br, const struct net_bridge_port *p,
|
||||
__be16 proto, u8 type, u8 dir);
|
||||
const struct sk_buff *skb, u8 type, u8 dir);
|
||||
int br_multicast_init_stats(struct net_bridge *br);
|
||||
void br_multicast_get_stats(const struct net_bridge *br,
|
||||
const struct net_bridge_port *p,
|
||||
@@ -719,7 +719,8 @@ static inline void br_mdb_uninit(void)
|
||||
|
||||
static inline void br_multicast_count(struct net_bridge *br,
|
||||
const struct net_bridge_port *p,
|
||||
__be16 proto, u8 type, u8 dir)
|
||||
const struct sk_buff *skb,
|
||||
u8 type, u8 dir)
|
||||
{
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user