From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
To: Steffen Klassert <steffen.klassert@secunet.com>
Cc: netdev@vger.kernel.org, linux-crypto@vger.kernel.org,
sowmini.varadhan@oracle.com
Subject: Re: ipsec impact on performance
Date: Wed, 2 Dec 2015 07:05:38 -0500 [thread overview]
Message-ID: <20151202120538.GJ23178@oracle.com> (raw)
In-Reply-To: <20151202065305.GB14008@secunet.com>
On (12/02/15 07:53), Steffen Klassert wrote:
>
> I'm currently working on a GRO/GSO codepath for IPsec too. The GRO part
> works already. I decapsulate/decrypt the packets on layer2 with a esp GRO
> callback function and reinject them into napi_gro_receive(). So in case
> the decapsulated packet is TCP, GRO can aggregate big packets.
Would you be able to share your patch with me? I'd like to give that a try
just to get preliminary numbers (and I could massage it as needed
for transport mode too).
> My approach to GSO is a bit different to yours. I focused on tunnel mode,
> but transport mode should work too. I encapsulate the big GSO packets
> but don't do the encryption. Then I've added a esp_gso_segment() function,
> so the (still not encrypted ESP packets) get segmented with GSO. Finally I
> do encryption for all segments. This works well as long as I do sync crypto.
> The hard part is when crypto returns async. This is what I'm working on now.
> I hope to get this ready during the next weeks that I can post a RFC version
> and some numbers.
I see. My thought for attacking tunnel mode would have been to
callout the esp code at the tail of gre_gso_segment, but I did not
yet consider this carefully - clearly you've spent more time on it,
and know more about all the gotchas there.
> Also I tried to consider the IPsec GRO/GSO codepath as a software fallback.
> So I added hooks for the encapsulation, encryption etc. If a NIC can do
> IPsec, it can use this hooks to prepare the packets the way it needs it.
> There are NICs that can do IPsec, it's just that our stack does not support
> it.
yes, this is one of the things I wanted to bring up at netdev 1.1.
Evidently many of the 10G NICS (Niantic, Twinville, Sageville) already
support ipsec offload but that feature is not enabled for BSD or linux
because the stack does not support it (though Microsoft does. The intel
folks pointed me at this doc:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff556996%28v=vs.85%29.aspx)
But quite independant of h/w offload, the s/w stack can already do
a very good job for 10G with just GSO and GRO, so being able to extend
that path to do encryption after segmentation should at least bridge
the huge gap between the ipsec and non-ipsec mech.
And that gap should be as small as possible for esp-null, so that
the only big hit we take is for the complexity of encryption itself!
> Another thing, I thought about setting up an IPsec BoF/workshop at
> netdev1.1. My main topic is GRO/GSO for IPsec. I'll send out a mail
> to the list later this week to see if there is enough interest and
> maybe some additional topics.
Sounds like an excellent idea. I'm certainly interested.
--Sowmini
>
next prev parent reply other threads:[~2015-12-02 12:05 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-01 17:59 ipsec impact on performance Sowmini Varadhan
2015-12-01 18:17 ` Rick Jones
2015-12-01 18:45 ` Sowmini Varadhan
2015-12-01 18:50 ` Rick Jones
2015-12-01 19:01 ` Sowmini Varadhan
2015-12-02 0:56 ` David Ahern
2015-12-02 1:09 ` Sowmini Varadhan
2015-12-02 1:25 ` David Ahern
2015-12-01 18:18 ` Tom Herbert
2015-12-01 18:37 ` Sowmini Varadhan
2015-12-02 11:56 ` David Laight
2015-12-02 12:11 ` Sowmini Varadhan
2015-12-02 12:41 ` David Laight
2015-12-02 13:25 ` Sowmini Varadhan
2015-12-02 20:50 ` Sowmini Varadhan
2015-12-02 21:07 ` Tom Herbert
2015-12-02 21:12 ` Sowmini Varadhan
2015-12-02 21:44 ` Tom Herbert
2015-12-02 21:47 ` Sowmini Varadhan
2015-12-02 22:01 ` Tom Herbert
2015-12-02 22:08 ` Sowmini Varadhan
2015-12-02 22:25 ` Eric Dumazet
2015-12-03 1:31 ` Rick Jones
2015-12-02 6:53 ` Steffen Klassert
2015-12-02 12:05 ` Sowmini Varadhan [this message]
2015-12-03 8:45 ` Steffen Klassert
2015-12-03 11:38 ` Sowmini Varadhan
2015-12-03 11:47 ` Steffen Klassert
2015-12-07 8:40 ` Steffen Klassert
2015-12-07 11:27 ` Sowmini Varadhan
2015-12-08 11:32 ` Steffen Klassert
2015-12-08 11:51 ` Sowmini Varadhan
2015-12-03 19:33 ` David Miller
2015-12-03 20:08 ` Eric Dumazet
2015-12-03 20:32 ` Sowmini Varadhan
2015-12-04 5:18 ` Sandy Harris
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=20151202120538.GJ23178@oracle.com \
--to=sowmini.varadhan@oracle.com \
--cc=linux-crypto@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=steffen.klassert@secunet.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).