Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Jun 2016 09:18:03 +0200
From:      Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
To:        Dominik Schoeffmann <schoeffm@in.tum.de>
Cc:        Jim Thompson <jim@netgate.com>, Navdeep Parhar <np@FreeBSD.org>, "net@freebsd.org" <net@freebsd.org>, Andrey Yakovlev <andy.yakov@ya.ru>
Subject:   Re: Netmap Checksum Offloading
Message-ID:  <CDFB8500-24F6-47AB-9352-E7E08EAED761@lurchi.franken.de>
In-Reply-To: <576249FA.2050809@in.tum.de>
References:  <57601DFA.2040008@in.tum.de> <470941466032510@web23o.yandex.ru> <dd9058ce-ac8a-0c79-a8b0-e4814a17e504@FreeBSD.org> <DA81EB82-4D4A-44F6-87F7-CD854AFF8694@netgate.com> <576249FA.2050809@in.tum.de>

next in thread | previous in thread | raw e-mail | index | archive | help
> On 16 Jun 2016, at 08:40, Dominik Schoeffmann <schoeffm@in.tum.de> =
wrote:
>=20
> 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.
I would also be interested in it... For looking at SCTP checksum =
offloading.

Best regards
Michael
>=20
> Best regards,
> Dominik
>=20
> On 16.06.2016 02:04, Jim Thompson wrote:
>>=20
>> Luiz Otavio O Souza (loos@) developed these for igb(4) and, by =
extension, em(4) for use in netmap-fwd.
>>=20
>> He=E2=80=99s just gone back to Brazil with 82599 ixgb(4) hardware.  =
I=E2=80=99m sure he=E2=80=99ll develop similar patches for ixgb(4) in =
the near future.
>>=20
>> Chelsio is also =E2=80=9Con the list=E2=80=9D, but I figured I=E2=80=99=
d speak to np@ about it first.  ;-) =20
>> We might do ixl(4) as well. =20
>>=20
>> Before Luiz retired to Brazil, we discussed upstreaming these to =
FreeBSD.  We=E2=80=99re committed to make it happen, but I doubt they =
make 11.
>>=20
>> Jim
>>=20
>>> On Jun 15, 2016, at 6:50 PM, Navdeep Parhar <np@FreeBSD.org> wrote:
>>>=20
>>> 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
>>>=20
>>> 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.
>>>=20
>>> Regards,
>>> Navdeep
>>>=20
>>>>=20
>>>> --=20
>>>> ./andy
>>>>=20
>>>>=20
>>>> 14.06.2016, 12:15, "Dominik Schoeffmann" <schoeffm@in.tum.de>:
>>>>> Dear Netmap Developers,
>>>>>=20
>>>>> 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.
>>>>>=20
>>>>> 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.
>>>>>=20
>>>>> Best Regards,
>>>>> Dominik Schoeffmann
>>>>>=20
>>>>> [1] https://github.com/dschoeffm/MoonGen/tree/netmap
>>>>> [2] https://github.com/dschoeffm/netmap/tree/mg-chksum-offloading
>>>> _______________________________________________
>>>> freebsd-net@freebsd.org mailing list
>>>> https://lists.freebsd.org/mailman/listinfo/freebsd-net
>>>> To unsubscribe, send any mail to =
"freebsd-net-unsubscribe@freebsd.org"
>>>>=20
>>>=20
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to =
"freebsd-net-unsubscribe@freebsd.org"
>>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CDFB8500-24F6-47AB-9352-E7E08EAED761>