nvnet: Drop oversized frames

This commit is contained in:
Matt Borgerson 2021-06-11 20:37:55 -07:00 committed by mborgerson
parent 21c50f1782
commit 4b74e85379
1 changed files with 9 additions and 4 deletions

View File

@ -652,6 +652,11 @@ static ssize_t nvnet_receive(NetClientState *nc,
return nvnet_receive_iov(nc, &iov, 1);
}
static bool nvnet_is_packet_oversized(size_t size)
{
return size > RX_ALLOC_BUFSIZE;
}
static ssize_t nvnet_receive_iov(NetClientState *nc,
const struct iovec *iov, int iovcnt)
{
@ -660,10 +665,10 @@ static ssize_t nvnet_receive_iov(NetClientState *nc,
NVNET_DPRINTF("nvnet: Packet received!\n");
if (size > sizeof(s->rx_dma_buf)) {
NVNET_DPRINTF("nvnet_receive_iov packet too large!\n");
assert(0);
return -1;
if (nvnet_is_packet_oversized(size)) {
/* Drop */
NVNET_DPRINTF("%s packet too large!\n", __func__);
return size;
}
iov_to_buf(iov, iovcnt, 0, s->rx_dma_buf, size);