Lines Matching refs:imr

1695 static struct in_device *ip_mc_find_dev(struct net *net, struct ip_mreqn *imr)  in ip_mc_find_dev()  argument
1700 if (imr->imr_ifindex) { in ip_mc_find_dev()
1701 idev = inetdev_by_index(net, imr->imr_ifindex); in ip_mc_find_dev()
1704 if (imr->imr_address.s_addr) { in ip_mc_find_dev()
1705 dev = __ip_dev_find(net, imr->imr_address.s_addr, false); in ip_mc_find_dev()
1712 imr->imr_multiaddr.s_addr, in ip_mc_find_dev()
1720 imr->imr_ifindex = dev->ifindex; in ip_mc_find_dev()
2044 int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr) in ip_mc_join_group() argument
2046 __be32 addr = imr->imr_multiaddr.s_addr; in ip_mc_join_group()
2060 in_dev = ip_mc_find_dev(net, imr); in ip_mc_join_group()
2068 ifindex = imr->imr_ifindex; in ip_mc_join_group()
2082 memcpy(&iml->multi, imr, sizeof(*imr)); in ip_mc_join_group()
2114 int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr) in ip_mc_leave_group() argument
2121 __be32 group = imr->imr_multiaddr.s_addr; in ip_mc_leave_group()
2127 in_dev = ip_mc_find_dev(net, imr); in ip_mc_leave_group()
2128 if (!imr->imr_ifindex && !imr->imr_address.s_addr && !in_dev) { in ip_mc_leave_group()
2132 ifindex = imr->imr_ifindex; in ip_mc_leave_group()
2141 } else if (imr->imr_address.s_addr && imr->imr_address.s_addr != in ip_mc_leave_group()
2166 struct ip_mreqn imr; in ip_mc_source() local
2181 imr.imr_multiaddr.s_addr = mreqs->imr_multiaddr; in ip_mc_source()
2182 imr.imr_address.s_addr = mreqs->imr_interface; in ip_mc_source()
2183 imr.imr_ifindex = ifindex; in ip_mc_source()
2184 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_source()
2194 imr.imr_multiaddr.s_addr) && in ip_mc_source()
2195 (pmc->multi.imr_ifindex == imr.imr_ifindex)) in ip_mc_source()
2294 err = ip_mc_leave_group(sk, &imr); in ip_mc_source()
2301 struct ip_mreqn imr; in ip_mc_msfilter() local
2318 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr; in ip_mc_msfilter()
2319 imr.imr_address.s_addr = msf->imsf_interface; in ip_mc_msfilter()
2320 imr.imr_ifindex = ifindex; in ip_mc_msfilter()
2321 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_msfilter()
2336 pmc->multi.imr_ifindex == imr.imr_ifindex) in ip_mc_msfilter()
2379 err = ip_mc_leave_group(sk, &imr); in ip_mc_msfilter()
2387 struct ip_mreqn imr; in ip_mc_msfget() local
2400 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr; in ip_mc_msfget()
2401 imr.imr_address.s_addr = msf->imsf_interface; in ip_mc_msfget()
2402 imr.imr_ifindex = 0; in ip_mc_msfget()
2403 in_dev = ip_mc_find_dev(net, &imr); in ip_mc_msfget()
2413 pmc->multi.imr_ifindex == imr.imr_ifindex) in ip_mc_msfget()