dd->pkthdr.pktlen = d->length;
dd->pkthdr.address_space_id = d->address_space_id;
dd->msg.data = vc->bpools[d->buffer_pool].base + d->offset;
+ dd->msg.data_len = d->length;
next = next + 1;
msgs[0] = &dd->msg;
{
VPP_Context_t *vc = (VPP_Context_t *) handle;
uint32_t n_qpairs_left = vc->num_qpairs;
- uint32_t n, n_events, n_recv = 0;
+ uint32_t n, n_recv = 0;
+ int32_t n_events;
/* If the receive has been interrupted, break out of loop and return. */
if (vc->interrupted)
n_events = epoll_wait (vc->epoll_fd, vc->epoll_events, vc->num_qpairs, 1000);
- if (n_events < 1)
+ if (n_events == 0)
{
- *rstat = n_events == -1 ? DAQ_RSTAT_ERROR : DAQ_RSTAT_TIMEOUT;
+ *rstat = DAQ_RSTAT_TIMEOUT;
+ return 0;
+ }
+ if (n_events < 0)
+ {
+ *rstat = errno == EINTR ? DAQ_RSTAT_TIMEOUT : DAQ_RSTAT_ERROR;
return 0;
}
msgs += n;
n_recv += n;
}
-
- (void) read (qp->enq_fd, &ctr, sizeof (ctr));
+ ssize_t __clib_unused size = read (qp->enq_fd, &ctr, sizeof (ctr));
}
*rstat = DAQ_RSTAT_OK;