Apparently the length field in advanced descriptors
does not include the CRC irrespective of the setting of CRCSTRIP. The 82599 data sheets (sec. 7.1.6) say differently. Very strange. Need to check what happens on legacy descriptors, but for the time being this restores functionality.
This commit is contained in:
parent
d6a537d930
commit
6f01bcaac2
@ -474,7 +474,12 @@ ixgbe_netmap_rxsync(struct ifnet *ifp, u_int ring_nr, int do_lock)
|
|||||||
* rxr->next_to_check is set to 0 on a ring reinit
|
* rxr->next_to_check is set to 0 on a ring reinit
|
||||||
*/
|
*/
|
||||||
if (netmap_no_pendintr || force_update) {
|
if (netmap_no_pendintr || force_update) {
|
||||||
int crclen = ix_crcstrip ? 0 : 4;
|
/* XXX apparently the length field in advanced descriptors
|
||||||
|
* does not include the CRC irrespective of the setting
|
||||||
|
* of CRCSTRIP. The data sheets say differently.
|
||||||
|
* Very strange.
|
||||||
|
*/
|
||||||
|
int crclen = 0; // ix_crcstrip ? 0 : 4;
|
||||||
l = rxr->next_to_check;
|
l = rxr->next_to_check;
|
||||||
j = netmap_idx_n2k(kring, l);
|
j = netmap_idx_n2k(kring, l);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user