* UDP GRO without Merging
@ 2018-07-25 9:53 Gauvain Roussel-Tarbouriech
2018-07-25 10:52 ` Steffen Klassert
0 siblings, 1 reply; 2+ messages in thread
From: Gauvain Roussel-Tarbouriech @ 2018-07-25 9:53 UTC (permalink / raw)
To: netdev
Subject:
Hello Netdev,
I am working on WireGuard as part of Google Summer of Code and Jason and
I are working on adding GRO to WireGuard, on the udp_tunnel side of
things. The goal is to inform udp_tunnel’s gro_receive that certain
packets are part of the same flow. Then sometime later, we’d like to
have a list of those same-flow packets appear in gro_complete. As far as
I can tell, the API seems well suited for merging packets in
gro_receive, such that gro_complete only then gets one single merged
packet. However, we need to receive the entire list of same-flow packets
in gro_complete, unmerged. Is this possible with the present APIs?
The goal of this, by the way, is to have more efficient clumping in
multi-core packet decryption, similar to what’s done using GSO on the
send/encryption side. See Jason’s netdevconf presentation for details on
this: https://www.wireguard.com/papers/wireguard-netdev22.pdf (section
“Generic Segmentation Offload Batching”).
Thanks,
-G
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: UDP GRO without Merging
2018-07-25 9:53 UDP GRO without Merging Gauvain Roussel-Tarbouriech
@ 2018-07-25 10:52 ` Steffen Klassert
0 siblings, 0 replies; 2+ messages in thread
From: Steffen Klassert @ 2018-07-25 10:52 UTC (permalink / raw)
To: Gauvain Roussel-Tarbouriech; +Cc: netdev
On Wed, Jul 25, 2018 at 11:53:45AM +0200, Gauvain Roussel-Tarbouriech wrote:
> Subject:
>
> Hello Netdev,
>
> I am working on WireGuard as part of Google Summer of Code and Jason and
> I are working on adding GRO to WireGuard, on the udp_tunnel side of
> things. The goal is to inform udp_tunnel’s gro_receive that certain
> packets are part of the same flow. Then sometime later, we’d like to
> have a list of those same-flow packets appear in gro_complete. As far as
> I can tell, the API seems well suited for merging packets in
> gro_receive, such that gro_complete only then gets one single merged
> packet. However, we need to receive the entire list of same-flow packets
> in gro_complete, unmerged. Is this possible with the present APIs?
We recently posted a patchset that does this GRO packet chaining.
Not sure if this is exactly what you need, but you can have a look here:
https://www.spinics.net/lists/netdev/msg508093.html
This is implemented as a part of a forward fastpath, but
could be also moved generic code if needed.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-07-25 12:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-25 9:53 UDP GRO without Merging Gauvain Roussel-Tarbouriech
2018-07-25 10:52 ` Steffen Klassert
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).