Lines Matching refs:mreq

3670 static int packet_mc_add(struct sock *sk, struct packet_mreq_max *mreq)  in packet_mc_add()  argument
3680 dev = __dev_get_by_index(sock_net(sk), mreq->mr_ifindex); in packet_mc_add()
3685 if (mreq->mr_alen > dev->addr_len) in packet_mc_add()
3695 if (ml->ifindex == mreq->mr_ifindex && in packet_mc_add()
3696 ml->type == mreq->mr_type && in packet_mc_add()
3697 ml->alen == mreq->mr_alen && in packet_mc_add()
3698 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) { in packet_mc_add()
3706 i->type = mreq->mr_type; in packet_mc_add()
3707 i->ifindex = mreq->mr_ifindex; in packet_mc_add()
3708 i->alen = mreq->mr_alen; in packet_mc_add()
3709 memcpy(i->addr, mreq->mr_address, i->alen); in packet_mc_add()
3725 static int packet_mc_drop(struct sock *sk, struct packet_mreq_max *mreq) in packet_mc_drop() argument
3732 if (ml->ifindex == mreq->mr_ifindex && in packet_mc_drop()
3733 ml->type == mreq->mr_type && in packet_mc_drop()
3734 ml->alen == mreq->mr_alen && in packet_mc_drop()
3735 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) { in packet_mc_drop()
3787 struct packet_mreq_max mreq; in packet_setsockopt() local
3789 memset(&mreq, 0, sizeof(mreq)); in packet_setsockopt()
3792 if (len > sizeof(mreq)) in packet_setsockopt()
3793 len = sizeof(mreq); in packet_setsockopt()
3794 if (copy_from_sockptr(&mreq, optval, len)) in packet_setsockopt()
3796 if (len < (mreq.mr_alen + offsetof(struct packet_mreq, mr_address))) in packet_setsockopt()
3799 ret = packet_mc_add(sk, &mreq); in packet_setsockopt()
3801 ret = packet_mc_drop(sk, &mreq); in packet_setsockopt()