Lines Matching defs:msf
2443 int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf, int ifindex)
2447 __be32 addr = msf->imsf_multiaddr;
2457 if (msf->imsf_fmode != MCAST_INCLUDE &&
2458 msf->imsf_fmode != MCAST_EXCLUDE)
2463 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr;
2464 imr.imr_address.s_addr = msf->imsf_interface;
2474 if (msf->imsf_fmode == MCAST_INCLUDE && msf->imsf_numsrc == 0) {
2480 if (pmc->multi.imr_multiaddr.s_addr == msf->imsf_multiaddr &&
2488 if (msf->imsf_numsrc) {
2489 newpsl = sock_kmalloc(sk, IP_SFLSIZE(msf->imsf_numsrc),
2495 newpsl->sl_max = newpsl->sl_count = msf->imsf_numsrc;
2496 memcpy(newpsl->sl_addr, msf->imsf_slist,
2497 msf->imsf_numsrc * sizeof(msf->imsf_slist[0]));
2498 err = ip_mc_add_src(in_dev, &msf->imsf_multiaddr,
2499 msf->imsf_fmode, newpsl->sl_count, newpsl->sl_addr, 0);
2506 (void) ip_mc_add_src(in_dev, &msf->imsf_multiaddr,
2507 msf->imsf_fmode, 0, NULL, 0);
2511 (void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
2516 (void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
2522 pmc->sfmode = msf->imsf_fmode;
2530 int ip_mc_msfget(struct sock *sk, struct ip_msfilter *msf,
2535 __be32 addr = msf->imsf_multiaddr;
2547 imr.imr_multiaddr.s_addr = msf->imsf_multiaddr;
2548 imr.imr_address.s_addr = msf->imsf_interface;
2559 if (pmc->multi.imr_multiaddr.s_addr == msf->imsf_multiaddr &&
2565 msf->imsf_fmode = pmc->sfmode;
2573 copycount = count < msf->imsf_numsrc ? count : msf->imsf_numsrc;
2575 msf->imsf_numsrc = count;
2577 copy_to_user(optval, msf, IP_MSFILTER_SIZE(0))) {