Thread (7 messages) 7 messages, 3 authors, 2017-05-19

Re: ipsec doesn't route TCP with 4.11 kernel

From: Steffen Klassert <steffen.klassert@secunet.com>
Date: 2017-05-03 08:21:37
Also in: lkml

Possibly related (same subject, not in this thread)

On Fri, Apr 28, 2017 at 09:46:42AM -0700, Eric Dumazet wrote:
On Fri, 2017-04-28 at 09:13 +0200, Steffen Klassert wrote:
quoted
         encap type espinudp sport 4500 dport 4500 addr 0.0.0.0

Ok, this is espinudp. This information was important.
quoted
This is not a GRO issue as I thought, the TX side is already broken.

Could you please try the patch below?

Subject: [PATCH] esp4: Fix udpencap for local TCP packets.

Locally generated TCP packets are usually cloned, so we
do skb_cow_data() on this packets. After that we need to
reload the pointer to the esp header. On udpencap this
header has an offset to skb_transport_header, so take this
offset into account.

It looks like locally generated TCP packets could avoid the
skb_cow_data(), if you were using skb_header_cloned() instead of
skb_cloned()  ?
Yes, should be possible in the codepath where we do crypto
with separate src and dst buffers. Would require some
rearrangements to make sure we don't do inplace crypto
in this case.

Thanks for the hint!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help