Page MenuHomeFreeBSD

netmap: ixgbe: add support for jumbo frames
AbandonedPublic

Authored by vmaffione on Dec 1 2018, 6:16 PM.
Tags
None
Referenced Files
F81424890: D18402.id.diff
Tue, Apr 16, 4:09 AM
Unknown Object (File)
Wed, Apr 10, 2:17 PM
Unknown Object (File)
Sat, Mar 30, 10:01 PM
Unknown Object (File)
Mar 8 2024, 4:57 AM
Unknown Object (File)
Feb 11 2024, 12:08 AM
Unknown Object (File)
Jan 3 2024, 3:59 PM
Unknown Object (File)
Jan 2 2024, 7:11 PM
Unknown Object (File)
Dec 30 2023, 3:53 AM

Details

Reviewers
imp
sbruno
gnn
hrs
shurd
erj
Group Reviewers
Intel Networking
Summary

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.

Test Plan

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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Forgot to upload updated patch.

I didn't think this code was still in use... AFAIK, ixgbe uses the iflib netmap support now.

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).

In D18402#392608, @v.maffione_gmail.com wrote:

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).

Yeah, ixgbe doesn't use iflib in 11.

sys/dev/netmap/ixgbe_netmap.h
476

the braces here are unnecessary