<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/include/net/xfrm.h, branch linux-4.16.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.16.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2018-01-18T09:42:59Z</updated>
<entry>
<title>xfrm: Add ESN support for IPSec HW offload</title>
<updated>2018-01-18T09:42:59Z</updated>
<author>
<name>Yossef Efraim</name>
<email>yossefe@mellanox.com</email>
</author>
<published>2018-01-14T09:39:10Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=50bd870a9e5cca9fcf5fb4c130c373643d7d9906'/>
<id>urn:sha1:50bd870a9e5cca9fcf5fb4c130c373643d7d9906</id>
<content type='text'>
This patch adds ESN support to IPsec device offload.
Adding new xfrm device operation to synchronize device ESN.

Signed-off-by: Yossef Efraim &lt;yossefe@mellanox.com&gt;
Signed-off-by: Shannon Nelson &lt;shannon.nelson@oracle.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2017-12-29T20:42:26Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2017-12-29T20:14:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6bb8824732f69de0f233ae6b1a8158e149627b38'/>
<id>urn:sha1:6bb8824732f69de0f233ae6b1a8158e149627b38</id>
<content type='text'>
net/ipv6/ip6_gre.c is a case of parallel adds.

include/trace/events/tcp.h is a little bit more tricky.  The removal
of in-trace-macro ifdefs in 'net' paralleled with moving
show_tcp_state_name and friends over to include/trace/events/sock.h
in 'net-next'.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>xfrm: check for xdo_dev_state_free</title>
<updated>2017-12-21T07:17:48Z</updated>
<author>
<name>Shannon Nelson</name>
<email>shannon.nelson@oracle.com</email>
</author>
<published>2017-12-19T23:35:47Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7f05b467a735aba1476d9ae8e0ae9d9d8e60066c'/>
<id>urn:sha1:7f05b467a735aba1476d9ae8e0ae9d9d8e60066c</id>
<content type='text'>
The current XFRM code assumes that we've implemented the
xdo_dev_state_free() callback, even if it is meaningless to the driver.
This patch adds a check for it before calling, as done in other APIs,
to prevent a NULL function pointer kernel crash.

Signed-off-by: Shannon Nelson &lt;shannon.nelson@oracle.com&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>xfrm: Allow IPsec GSO with software crypto for local sockets.</title>
<updated>2017-12-20T09:41:48Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2017-12-20T09:41:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=2271d5190ec60b06921c2e4e184fd1f4fad4e634'/>
<id>urn:sha1:2271d5190ec60b06921c2e4e184fd1f4fad4e634</id>
<content type='text'>
With support of async crypto operations in the GSO codepath
we have everything in place to allow GSO for local sockets.
This patch enables the GSO codepath.

Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>net: Add asynchronous callbacks for xfrm on layer 2.</title>
<updated>2017-12-20T09:41:36Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2017-12-20T09:41:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f53c723902d1ac5f0b0a11d7c9dcbff748dde74e'/>
<id>urn:sha1:f53c723902d1ac5f0b0a11d7c9dcbff748dde74e</id>
<content type='text'>
This patch implements asynchronous crypto callbacks
and a backlog handler that can be used when IPsec
is done at layer 2 in the TX path. It also extends
the skb validate functions so that we can update
the driver transmit return codes based on async
crypto operation or to indicate that we queued the
packet in a backlog queue.

Joint work with: Aviv Heller &lt;avivh@mellanox.com&gt;

Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>xfrm: Separate ESP handling from segmentation for GRO packets.</title>
<updated>2017-12-20T09:41:31Z</updated>
<author>
<name>Steffen Klassert</name>
<email>steffen.klassert@secunet.com</email>
</author>
<published>2017-12-20T09:41:31Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3dca3f38cfb8efb8571040568cac7d0025fa5bb1'/>
<id>urn:sha1:3dca3f38cfb8efb8571040568cac7d0025fa5bb1</id>
<content type='text'>
We change the ESP GSO handlers to only segment the packets.
The ESP handling and encryption is defered to validate_xmit_xfrm()
where this is done for non GRO packets too. This makes the code
more robust and prepares for asynchronous crypto handling.

Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>xfrm: Reinject transport-mode packets through tasklet</title>
<updated>2017-12-19T07:23:21Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2017-12-15T05:40:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=acf568ee859f098279eadf551612f103afdacb4e'/>
<id>urn:sha1:acf568ee859f098279eadf551612f103afdacb4e</id>
<content type='text'>
This is an old bugbear of mine:

https://www.mail-archive.com/netdev@vger.kernel.org/msg03894.html

By crafting special packets, it is possible to cause recursion
in our kernel when processing transport-mode packets at levels
that are only limited by packet size.

The easiest one is with DNAT, but an even worse one is where
UDP encapsulation is used in which case you just have to insert
an UDP encapsulation header in between each level of recursion.

This patch avoids this problem by reinjecting tranport-mode packets
through a tasklet.

Fixes: b05e106698d9 ("[IPV4/6]: Netfilter IPsec input hooks")
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: Steffen Klassert &lt;steffen.klassert@secunet.com&gt;
</content>
</entry>
<entry>
<title>xfrm: Move dst-&gt;path into struct xfrm_dst</title>
<updated>2017-11-30T14:54:26Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2017-11-28T20:40:46Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0f6c480f23f49b53644b383c5554e579498347f3'/>
<id>urn:sha1:0f6c480f23f49b53644b383c5554e579498347f3</id>
<content type='text'>
The first member of an IPSEC route bundle chain sets it's dst-&gt;path to
the underlying ipv4/ipv6 route that carries the bundle.

Stated another way, if one were to follow the xfrm_dst-&gt;child chain of
the bundle, the final non-NULL pointer would be the path and point to
either an ipv4 or an ipv6 route.

This is largely used to make sure that PMTU events propagate down to
the correct ipv4 or ipv6 route.

When we don't have the top of an IPSEC bundle 'dst-&gt;path == dst'.

Move it down into xfrm_dst and key off of dst-&gt;xfrm.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;
</content>
</entry>
<entry>
<title>xfrm: Move child route linkage into xfrm_dst.</title>
<updated>2017-11-30T14:54:26Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2017-11-28T20:45:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b6ca8bd5a9198c70c48297390723e4e56bd6e879'/>
<id>urn:sha1:b6ca8bd5a9198c70c48297390723e4e56bd6e879</id>
<content type='text'>
XFRM bundle child chains look like this:

	xdst1 --&gt; xdst2 --&gt; xdst3 --&gt; path_dst

All of xdstN are xfrm_dst objects and xdst-&gt;u.dst.xfrm is non-NULL.
The final child pointer in the chain, here called 'path_dst', is some
other kind of route such as an ipv4 or ipv6 one.

The xfrm output path pops routes, one at a time, via the child
pointer, until we hit one which has a dst-&gt;xfrm pointer which
is NULL.

We can easily preserve the above mechanisms with child sitting
only in the xfrm_dst structure.  All children in the chain
before we break out of the xfrm_output() loop have dst-&gt;xfrm
non-NULL and are therefore xfrm_dst objects.

Since we break out of the loop when we find dst-&gt;xfrm NULL, we
will not try to dereference 'dst' as if it were an xfrm_dst.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipsec: Create and use new helpers for dst child access.</title>
<updated>2017-11-30T14:54:26Z</updated>
<author>
<name>David Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2017-11-28T20:40:28Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=45b018beddb631fb9a0ecbc3ba103521b03c4c80'/>
<id>urn:sha1:45b018beddb631fb9a0ecbc3ba103521b03c4c80</id>
<content type='text'>
This will make a future change moving the dst-&gt;child pointer less
invasive.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Reviewed-by: Eric Dumazet &lt;edumazet@google.com&gt;
</content>
</entry>
</feed>
