Netmap Checksum Offloading

Dominik Schoeffmann schoeffm at in.tum.de
Thu Jun 16 06:41:40 UTC 2016


Is the checksum offloading patch for the igb(4) driver available online?
(I could not find it)
I would really like to take a look at it, espacially the context
descriptor part of it.

Best regards,
Dominik

On 16.06.2016 02:04, Jim Thompson wrote:
> 
> 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"
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/freebsd-net/attachments/20160616/ccc0335f/attachment.sig>


More information about the freebsd-net mailing list