Lines Matching defs:mreq
3675 static int packet_mc_add(struct sock *sk, struct packet_mreq_max *mreq)
3685 dev = __dev_get_by_index(sock_net(sk), mreq->mr_ifindex);
3690 if (mreq->mr_alen > dev->addr_len)
3700 if (ml->ifindex == mreq->mr_ifindex &&
3701 ml->type == mreq->mr_type &&
3702 ml->alen == mreq->mr_alen &&
3703 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) {
3711 i->type = mreq->mr_type;
3712 i->ifindex = mreq->mr_ifindex;
3713 i->alen = mreq->mr_alen;
3714 memcpy(i->addr, mreq->mr_address, i->alen);
3731 static int packet_mc_drop(struct sock *sk, struct packet_mreq_max *mreq)
3738 if (ml->ifindex == mreq->mr_ifindex &&
3739 ml->type == mreq->mr_type &&
3740 ml->alen == mreq->mr_alen &&
3741 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) {
3793 struct packet_mreq_max mreq;
3795 memset(&mreq, 0, sizeof(mreq));
3798 if (len > sizeof(mreq))
3799 len = sizeof(mreq);
3800 if (copy_from_sockptr(&mreq, optval, len))
3802 if (len < (mreq.mr_alen + offsetof(struct packet_mreq, mr_address)))
3805 ret = packet_mc_add(sk, &mreq);
3807 ret = packet_mc_drop(sk, &mreq);