xfrm: Add virtual xfrm interfaces
authorSteffen Klassert <steffen.klassert@secunet.com>
Tue, 12 Jun 2018 12:07:12 +0000 (14:07 +0200)
committerSteffen Klassert <steffen.klassert@secunet.com>
Sat, 23 Jun 2018 14:07:25 +0000 (16:07 +0200)
commitf203b76d78092faf248db3f851840fbecf80b40e
tree108d48fe7d28b6096f1bc209bc497c36406c12f5
parent7e6526404adedf079279aa7aa11722deaca8fe2e
xfrm: Add virtual xfrm interfaces

This patch adds support for virtual xfrm interfaces.
Packets that are routed through such an interface
are guaranteed to be IPsec transformed or dropped.
It is a generic virtual interface that ensures IPsec
transformation, no need to know what happens behind
the interface. This means that we can tunnel IPv4 and
IPv6 through the same interface and support all xfrm
modes (tunnel, transport and beet) on it.

Co-developed-by: Lorenzo Colitti <lorenzo@google.com>
Co-developed-by: Benedict Wong <benedictwong@google.com>
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: Benedict Wong <benedictwong@google.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Acked-by: Shannon Nelson <shannon.nelson@oracle.com>
Tested-by: Benedict Wong <benedictwong@google.com>
Tested-by: Antony Antony <antony@phenome.org>
Reviewed-by: Eyal Birger <eyal.birger@gmail.com>
include/net/xfrm.h
include/uapi/linux/if_link.h
net/xfrm/Kconfig
net/xfrm/Makefile
net/xfrm/xfrm_input.c
net/xfrm/xfrm_interface.c [new file with mode: 0644]
net/xfrm/xfrm_policy.c