esp4/6: Fix GSO path for non-GSO SW-crypto packets
authorIlan Tayari <ilant@mellanox.com>
Wed, 19 Apr 2017 05:41:01 +0000 (08:41 +0300)
committerSteffen Klassert <steffen.klassert@secunet.com>
Wed, 19 Apr 2017 05:48:57 +0000 (07:48 +0200)
commit8f92e03ecca390beed3d5ccc81023d050f0369fd
tree59af1b45995e4ba7491f7540616aa11ad3bdc048
parentffa6f571e4e20bbe5b3d8b5e112e66b3b6c29632
esp4/6: Fix GSO path for non-GSO SW-crypto packets

If esp*_offload module is loaded, outbound packets take the
GSO code path, being encapsulated at layer 3, but encrypted
in layer 2. validate_xmit_xfrm calls esp*_xmit for that.

esp*_xmit was wrongfully detecting these packets as going
through hardware crypto offload, while in fact they should
be encrypted in software, causing plaintext leakage to
the network, and also dropping at the receiver side.

Perform the encryption in esp*_xmit, if the SA doesn't have
a hardware offload_handle.

Also, align esp6 code to esp4 logic.

Fixes: fca11ebde3f0 ("esp4: Reorganize esp_output")
Fixes: 383d0350f2cc ("esp6: Reorganize esp_output")
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
net/ipv4/esp4_offload.c
net/ipv6/esp6_offload.c