diff --git a/LINUX/ixgbe_netmap_linux.h b/LINUX/ixgbe_netmap_linux.h index 5d92379f4..2a97c93ac 100644 --- a/LINUX/ixgbe_netmap_linux.h +++ b/LINUX/ixgbe_netmap_linux.h @@ -358,7 +358,8 @@ ixgbe_netmap_rxsync(struct netmap_kring *kring, int flags) if ((staterr & IXGBE_RXD_STAT_DD) == 0) break; ring->slot[nm_i].len = le16toh(curr->wb.upper.length); - ring->slot[nm_i].flags = slot_flags; + ring->slot[nm_i].flags = (!(staterr & IXGBE_RXD_STAT_EOP) ? NS_MOREFRAG | + slot_flags:slot_flags); nm_i = nm_next(nm_i, lim); nic_i = nm_next(nic_i, lim); }