Lines Matching refs:imr

1790 static struct in_device *ip_mc_find_dev(struct net *net, struct ip_mreqn *imr)  in ip_mc_find_dev()  argument
1795 if (imr->imr_ifindex) { in ip_mc_find_dev()
1796 idev = inetdev_by_index(net, imr->imr_ifindex); in ip_mc_find_dev()
1799 if (imr->imr_address.s_addr) { in ip_mc_find_dev()
1800 dev = __ip_dev_find(net, imr->imr_address.s_addr, false); in ip_mc_find_dev()
1807 imr->imr_multiaddr.s_addr, in ip_mc_find_dev()
1815 imr->imr_ifindex = dev->ifindex; in ip_mc_find_dev()
2141 static int __ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr, in __ip_mc_join_group() argument
2144 __be32 addr = imr->imr_multiaddr.s_addr; in __ip_mc_join_group()
2158 in_dev = ip_mc_find_dev(net, imr); in __ip_mc_join_group()
2166 ifindex = imr->imr_ifindex; in __ip_mc_join_group()
2180 memcpy(&iml->multi, imr, sizeof(*imr)); in __ip_mc_join_group()
2193 int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr) in ip_mc_join_group() argument
2195 return __ip_mc_join_group(sk, imr, MCAST_EXCLUDE); in ip_mc_join_group()
2201 int ip_mc_join_group_ssm(struct sock *sk, struct ip_mreqn *imr, in ip_mc_join_group_ssm() argument
2204 return __ip_mc_join_group(sk, imr, mode); in ip_mc_join_group_ssm()
2227 int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr) in ip_mc_leave_group() argument
2234 __be32 group = imr->imr_multiaddr.s_addr; in ip_mc_leave_group()
2240 in_dev = ip_mc_find_dev(net, imr); in ip_mc_leave_group()
2241 if (!imr->imr_ifindex && !imr->imr_address.s_addr && !in_dev) { in ip_mc_leave_group()
2245 ifindex = imr->imr_ifindex; in ip_mc_leave_group()
2254 } else if (imr->imr_address.s_addr && imr->imr_address.s_addr != in ip_mc_leave_group()
2279 struct ip_mreqn imr; in ip_mc_source() local
2294 imr.imr_multiaddr.s_addr = mreqs->imr_multiaddr; in ip_mc_source()
2295 imr.imr_address.s_addr = mreqs->imr_interface; in ip_mc_source()
2296 imr.imr_ifindex = ifindex; in ip_mc_source()
2297 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_source()
2307 imr.imr_multiaddr.s_addr) && in ip_mc_source()
2308 (pmc->multi.imr_ifindex == imr.imr_ifindex)) in ip_mc_source()
2407 err = ip_mc_leave_group(sk, &imr); in ip_mc_source()
2414 struct ip_mreqn imr; in ip_mc_msfilter() local
2431 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr; in ip_mc_msfilter()
2432 imr.imr_address.s_addr = msf->imsf_interface; in ip_mc_msfilter()
2433 imr.imr_ifindex = ifindex; in ip_mc_msfilter()
2434 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_msfilter()
2449 pmc->multi.imr_ifindex == imr.imr_ifindex) in ip_mc_msfilter()
2492 err = ip_mc_leave_group(sk, &imr); in ip_mc_msfilter()
2500 struct ip_mreqn imr; in ip_mc_msfget() local
2513 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr; in ip_mc_msfget()
2514 imr.imr_address.s_addr = msf->imsf_interface; in ip_mc_msfget()
2515 imr.imr_ifindex = 0; in ip_mc_msfget()
2516 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_msfget()
2526 pmc->multi.imr_ifindex == imr.imr_ifindex) in ip_mc_msfget()