Netmap Checksum Offloading
Jim Thompson
jim at netgate.com
Thu Jun 16 00:04:56 UTC 2016
Luiz Otavio O Souza (loos@) developed these for igb(4) and, by extension, em(4) for use in netmap-fwd.
He’s just gone back to Brazil with 82599 ixgb(4) hardware. I’m sure he’ll develop similar patches for ixgb(4) in the near future.
Chelsio is also “on the list”, but I figured I’d speak to np@ about it first. ;-)
We might do ixl(4) as well.
Before Luiz retired to Brazil, we discussed upstreaming these to FreeBSD. We’re committed to make it happen, but I doubt they make 11.
Jim
> On Jun 15, 2016, at 6:50 PM, Navdeep Parhar <np at FreeBSD.org> wrote:
>
> On 06/15/2016 16:15, Andrey Yakovlev wrote:
>> ive heard on bsdcan this year that some patches exist to add hwcsum offloading to netmap, hope to see it chelsio at least
>
> cxgbe/cxl is a bit sneaky and will let you override netmap (on tx only).
> The ncxl interfaces declare themselves capable of checksumming but all
> such capabilities are disabled by default. Just enable txcsum on the
> interface and the hardware will do checksum insertion on tx. No way to
> solve the rx part entirely within the driver -- netmap has to be willing
> to accept checksum related flags from the driver.
>
> Regards,
> Navdeep
>
>>
>> --
>> ./andy
>>
>>
>> 14.06.2016, 12:15, "Dominik Schoeffmann" <schoeffm at in.tum.de>:
>>> Dear Netmap Developers,
>>>
>>> during the course of my bachelor's thesis, I modified a packet generator
>>> called MoonGen [1] in order to utilize netmap.
>>> One key component was to flexibly offload checksums for different kinds
>>> of packets (IPv4, UDP, TCP).
>>> The ixgbe netmap patch was modified [2] in order to construct context
>>> descriptors and suitable data descriptors. This is implemented in less
>>> than 250 LoC (including pseudo-header calculations).
>>> The man page states, that checksum offloading is available via ethtool,
>>> although a solution inside the netmap API might be a cleaner way for
>>> applications to actually use these features.
>>> Attached is a graph showing the performance implication of using
>>> offloading in the current implementation.
>>> As can be seen, offloading has only a minor impact.
>>> When regarding this data (and comparing it to other frameworks), please
>>> keep in mind, that internally a lot of per-packet effort is needed due
>>> to the software architecture of the packet generator.
>>>
>>> The question being:
>>> Would it not make sense to include checksum offloading inside of netmap
>>> in order to accomodate applications operating on layer 3 and above?
>>> As these programs need to calculate the checksums in software, it would
>>> be just as fast to move these calculations to the kernel for NICs
>>> without checksum offloading support (and the kernel would act as a library).
>>> The problem which currently is imposed by the fact, that netmap exports
>>> the complete ring, is that context descriptors disrupt the data
>>> descriptors, which is unpleasant for the application.
>>> But you may find the data interesting nevertheless.
>>>
>>> Best Regards,
>>> Dominik Schoeffmann
>>>
>>> [1] https://github.com/dschoeffm/MoonGen/tree/netmap
>>> [2] https://github.com/dschoeffm/netmap/tree/mg-chksum-offloading
>> _______________________________________________
>> freebsd-net at freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-net
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
>>
>
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"
More information about the freebsd-net
mailing list