+ clock_gettime(CLOCK_MONOTONIC, &t2);
+ break;
+ }
+ case MMSG: {
+ if (!quiet) fprintf(stderr, "Sending %d frames via sendmmsg()\n", count);
+ struct mmsghdr msgs[count];
+ struct iovec iovecs[count];
+ memset(msgs, 0, sizeof(msgs));
+ memset(iovecs, 0, sizeof(iovecs));
+ for (i = 0; i < count; i++) {
+ iovecs[i].iov_base = &cf;
+ iovecs[i].iov_len = sizeof(cf);
+ msgs[i].msg_hdr.msg_iov = &iovecs[i];
+ msgs[i].msg_hdr.msg_iovlen = 1;
+ }
+ clock_gettime(CLOCK_MONOTONIC, &t1);
+ for (i = 0; i < count; i += ret)
+ ret = CHECK(sendmmsg(ss, &msgs[i], count - i, 0));
+ clock_gettime(CLOCK_MONOTONIC, &t2);
+ break;
+ }