Index: dev/ixl/ixl_txrx.c =================================================================== --- dev/ixl/ixl_txrx.c +++ dev/ixl/ixl_txrx.c @@ -1504,6 +1504,7 @@ int i, nextp, processed = 0; union i40e_rx_desc *cur; struct ixl_rx_buf *rbuf, *nbuf; + u32 status = 0; IXL_RX_LOCK(rxr); @@ -1517,7 +1518,7 @@ for (i = rxr->next_check; count != 0;) { struct mbuf *sendmp, *mh, *mp; - u32 status, error; + u32 error; u16 hlen, plen, vtag; u64 qword; u8 ptype; @@ -1699,7 +1700,8 @@ le32toh(cur->wb.qword0.hi_dword.rss); M_HASHTYPE_SET(sendmp, ixl_ptype_to_hash(ptype)); #else - sendmp->m_pkthdr.flowid = que->msix; + /* que->msix is one based and flowid is zero based */ + sendmp->m_pkthdr.flowid = que->msix - 1; M_HASHTYPE_SET(sendmp, M_HASHTYPE_OPAQUE); #endif } @@ -1750,7 +1752,10 @@ #endif #endif /* defined(INET6) || defined(INET) */ - return (FALSE); + if ((status & (1 << I40E_RX_DESC_STATUS_DD_SHIFT)) == 0) + return (FALSE); + else + return (TRUE); }