Lines Matching defs:mreq
1210 static int packet_mc_add(struct sock *sk, struct packet_mreq_max *mreq)
1220 dev = __dev_get_by_index(mreq->mr_ifindex);
1225 if (mreq->mr_alen > dev->addr_len)
1235 if (ml->ifindex == mreq->mr_ifindex &&
1236 ml->type == mreq->mr_type &&
1237 ml->alen == mreq->mr_alen &&
1238 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) {
1246 i->type = mreq->mr_type;
1247 i->ifindex = mreq->mr_ifindex;
1248 i->alen = mreq->mr_alen;
1249 memcpy(i->addr, mreq->mr_address, i->alen);
1260 static int packet_mc_drop(struct sock *sk, struct packet_mreq_max *mreq)
1267 if (ml->ifindex == mreq->mr_ifindex &&
1268 ml->type == mreq->mr_type &&
1269 ml->alen == mreq->mr_alen &&
1270 memcmp(ml->addr, mreq->mr_address, ml->alen) == 0) {
1325 struct packet_mreq_max mreq;
1327 memset(&mreq, 0, sizeof(mreq));
1330 if (len > sizeof(mreq))
1331 len = sizeof(mreq);
1332 if (copy_from_user(&mreq,optval,len))
1334 if (len < (mreq.mr_alen + offsetof(struct packet_mreq, mr_address)))
1337 ret = packet_mc_add(sk, &mreq);
1339 ret = packet_mc_drop(sk, &mreq);