Lines Matching refs:imr

1827 static struct in_device *ip_mc_find_dev(struct net *net, struct ip_mreqn *imr)
1832 if (imr->imr_ifindex) {
1833 idev = inetdev_by_index(net, imr->imr_ifindex);
1836 if (imr->imr_address.s_addr) {
1837 dev = __ip_dev_find(net, imr->imr_address.s_addr, false);
1844 imr->imr_multiaddr.s_addr,
1853 imr->imr_ifindex = dev->ifindex;
2173 static int __ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr,
2176 __be32 addr = imr->imr_multiaddr.s_addr;
2190 in_dev = ip_mc_find_dev(net, imr);
2198 ifindex = imr->imr_ifindex;
2212 memcpy(&iml->multi, imr, sizeof(*imr));
2225 int ip_mc_join_group(struct sock *sk, struct ip_mreqn *imr)
2227 return __ip_mc_join_group(sk, imr, MCAST_EXCLUDE);
2233 int ip_mc_join_group_ssm(struct sock *sk, struct ip_mreqn *imr,
2236 return __ip_mc_join_group(sk, imr, mode);
2259 int ip_mc_leave_group(struct sock *sk, struct ip_mreqn *imr)
2266 __be32 group = imr->imr_multiaddr.s_addr;
2272 in_dev = ip_mc_find_dev(net, imr);
2273 if (!imr->imr_ifindex && !imr->imr_address.s_addr && !in_dev) {
2277 ifindex = imr->imr_ifindex;
2286 } else if (imr->imr_address.s_addr && imr->imr_address.s_addr !=
2311 struct ip_mreqn imr;
2326 imr.imr_multiaddr.s_addr = mreqs->imr_multiaddr;
2327 imr.imr_address.s_addr = mreqs->imr_interface;
2328 imr.imr_ifindex = ifindex;
2329 in_dev = ip_mc_find_dev(net, &imr);
2339 imr.imr_multiaddr.s_addr) &&
2340 (pmc->multi.imr_ifindex == imr.imr_ifindex))
2442 err = ip_mc_leave_group(sk, &imr);
2449 struct ip_mreqn imr;
2466 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr;
2467 imr.imr_address.s_addr = msf->imsf_interface;
2468 imr.imr_ifindex = ifindex;
2469 in_dev = ip_mc_find_dev(net, &imr);
2484 pmc->multi.imr_ifindex == imr.imr_ifindex)
2533 err = ip_mc_leave_group(sk, &imr);
2540 struct ip_mreqn imr;
2553 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr;
2554 imr.imr_address.s_addr = msf->imsf_interface;
2555 imr.imr_ifindex = 0;
2556 in_dev = ip_mc_find_dev(net, &imr);
2566 pmc->multi.imr_ifindex == imr.imr_ifindex)