From: Steffen Klassert <steffen.klassert@secunet.com>
To: Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
netfilter-devel <netfilter-devel@vger.kernel.org>,
Network Development <netdev@vger.kernel.org>
Subject: Re: [PATCH net-next,RFC 00/13] New fast forwarding path
Date: Fri, 15 Jun 2018 07:23:09 +0200 [thread overview]
Message-ID: <20180615052309.brad7wtaselcs6wq@gauss3.secunet.de> (raw)
In-Reply-To: <CAF=yD-+fJ_isaGtfLFVgMQ4_7K-v7b+Kyo6iOB-5kUbbPJXT7Q@mail.gmail.com>
On Thu, Jun 14, 2018 at 11:50:49AM -0400, Willem de Bruijn wrote:
> > This patchset supports both layer 3 IPv4 and IPv6, and layer 4 TCP and
> > UDP protocols. This fastpath also integrates with the IPSec
> > infrastructure and the ESP protocol.
> >
> > We have collected performance numbers:
> >
> > TCP TSO TCP Fast Forward
> > 32.5 Gbps 35.6 Gbps
> >
> > UDP UDP Fast Forward
> > 17.6 Gbps 35.6 Gbps
> >
> > ESP ESP Fast Forward
> > 6 Gbps 7.5 Gbps
> >
> > For UDP, this is doubling performance, and we almost achieve line rate
> > with one single CPU using the Intel i40e NIC. We got similar numbers
> > with the Mellanox ConnectX-4. For TCP, this is slightly improving things
> > even if TSO is being defeated given that we need to segment the packet
> > chain in software.
>
> The difference between TCP and UDP stems from lack of GRO for UDP.
Right.
> We
> recently added UDP GSO to allow for batch traversal of the UDP stack on
> transmission. Adding a UDP GRO handler can probably extend batching to
> the forwarding path in a similar way without the need for a new infrastructure.
That's more or less what we did. The batching method ist just
optimized for the forwarding path. We are generating skb chains
by chaning at the frag_list pointer of the first skb. With that,
we don't need to mange packet. We keep the packets in the native
form, so the 'segmentation' is rather easy.
The rest is just to be able to configure this and to make
sure that we handle only flows that are going to be (fast)
forwarded, as the upper stack can not (yet) handle such
skb chains.
next prev parent reply other threads:[~2018-06-15 5:23 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-14 14:19 [PATCH net-next,RFC 00/13] New fast forwarding path Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 01/13] net: Add a helper to get the packet offload callbacks by priority Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 02/13] net: Change priority of ipv4 and ipv6 packet offloads Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 03/13] net: Add a GSO feature bit for the netfilter forward fastpath Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 04/13] net: Use one bit of NAPI_GRO_CB for the netfilter fastpath Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 05/13] netfilter: add early ingress hook for IPv4 Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 06/13] netfilter: add early ingress support for IPv6 Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 07/13] netfilter: add ESP support for early ingress Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 08/13] netfilter: nft_chain_filter: add " Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 09/13] netfilter: nf_flow_table: add hooknum to flowtable type Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 10/13] netfilter: nf_flow_table: add flowtable for early ingress hook Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 11/13] netfilter: nft_flow_offload: enable offload after second packet is seen Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 12/13] netfilter: nft_flow_offload: remove secpath check Pablo Neira Ayuso
2018-06-14 14:19 ` [PATCH net-next,RFC 13/13] netfilter: nft_flow_offload: make sure route is not stale Pablo Neira Ayuso
2018-06-14 15:50 ` [PATCH net-next,RFC 00/13] New fast forwarding path Willem de Bruijn
2018-06-15 5:23 ` Steffen Klassert [this message]
2018-06-14 15:57 ` Eric Dumazet
2018-06-15 6:03 ` Steffen Klassert
2018-06-15 13:01 ` Eric Dumazet
2018-06-14 17:18 ` David Miller
2018-06-14 18:14 ` Florian Fainelli
2018-06-14 23:55 ` David Miller
2018-06-20 0:56 ` Andrew Collins
2018-06-15 6:17 ` Steffen Klassert
2018-06-15 13:22 ` Daniel Borkmann
2018-06-17 9:23 ` Steffen Klassert
2018-06-19 22:22 ` Daniel Borkmann
2018-06-14 20:52 ` Tom Herbert
2018-06-14 23:58 ` David Miller
2018-06-15 6:34 ` Steffen Klassert
2018-06-15 12:18 ` Edward Cree
2018-06-15 20:12 ` Tom Herbert
2018-06-15 6:27 ` Steffen Klassert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180615052309.brad7wtaselcs6wq@gauss3.secunet.de \
--to=steffen.klassert@secunet.com \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=pablo@netfilter.org \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).