ipv6: Make ipv6_is_mld() inline and use it from ip6_mc_input().
Move generalized version of ipv6_is_mld() to header, and use it from ip6_mc_input(). Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
e7219858ac
commit
daad151263
@@ -934,33 +934,6 @@ int ipv6_dev_mc_dec(struct net_device *dev, const struct in6_addr *addr)
|
||||
return err;
|
||||
}
|
||||
|
||||
/*
|
||||
* identify MLD packets for MLD filter exceptions
|
||||
*/
|
||||
bool ipv6_is_mld(struct sk_buff *skb, int nexthdr)
|
||||
{
|
||||
struct icmp6hdr *pic;
|
||||
|
||||
if (nexthdr != IPPROTO_ICMPV6)
|
||||
return false;
|
||||
|
||||
if (!pskb_may_pull(skb, sizeof(struct icmp6hdr)))
|
||||
return false;
|
||||
|
||||
pic = icmp6_hdr(skb);
|
||||
|
||||
switch (pic->icmp6_type) {
|
||||
case ICMPV6_MGM_QUERY:
|
||||
case ICMPV6_MGM_REPORT:
|
||||
case ICMPV6_MGM_REDUCTION:
|
||||
case ICMPV6_MLD2_REPORT:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* check if the interface/address pair is valid
|
||||
*/
|
||||
|
Reference in New Issue
Block a user