To transmit and receive jumbo frames, it is necessary to specify packets that span
multiple hardware descriptors, and therefore multiple netmap slots. This is possible in
netmap by setting the NS_MOREFRAG flag in struct netmap_slot, for all the slots of
except for the last one.
This change adds the multi-slot (multi-descriptor) logic to the ixgbe rxsync and
txsync routines. The same logic is also used in the Linux ixgbe netmap driver.
Details
Details
Running tests with pkt-gen, with both regular and large MTU
` # for MTU in "1500 5000 9000"; do # ifconfig ixgbe0 mtu $MTU # ifconfig ixgbe1 mtu $MTU # pkt-gen -i ixgbe0 -f tx -l 1400 # pkt-gen -i ixgbe1 -f rx # on a different terminal # done `
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
Comment Actions
I didn't think this code was still in use... AFAIK, ixgbe uses the iflib netmap support now.
Comment Actions
You're right. I realized that just now.
I guess I could try to modify iflib_netmap_txsync and iflib_netmap_rxsync.
This patch could still be useful for FreeBSD 11, where ixgbe does not use iflib (as far as I see from the code).
Comment Actions
Yeah, ixgbe doesn't use iflib in 11.
sys/dev/netmap/ixgbe_netmap.h | ||
---|---|---|
477 | the braces here are unnecessary |