examples/ipsec-secgw: support fragmentation and reassembly
authorKonstantin Ananyev <konstantin.ananyev@intel.com>
Tue, 25 Jun 2019 23:16:47 +0000 (00:16 +0100)
committerAkhil Goyal <akhil.goyal@nxp.com>
Fri, 5 Jul 2019 13:28:14 +0000 (15:28 +0200)
commitb01d1cd213d26c42082632e61145e541f8002b15
tree5e4619285607f0aa8e41e73f4237545b3c4aab31
parenta135e050ad5b6d20fa18e6e18dcc86443be6cc30
examples/ipsec-secgw: support fragmentation and reassembly

Add optional ability to fragment packet bigger then mtu,
and reassemble fragmented packet.
To minimize possible performance effect, reassembly is
implemented as RX callback.
To support these features ipsec-secgw relies on librte_ipsec ability
to handle multi-segment packets.
Also when reassemble/fragmentation support is enabled, attached
crypto devices have to support 'In Place SGL' offload capability.
To enable/disable this functionality, two new optional command-line
options are introduced:
  --reassemble <val> - number of entries in reassemble table
  --mtu <val> - MTU value for all attached ports
As separate '--mtu' option is introduced, '-j <val>' option is now used
to specify mbuf data buffer size only.

Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
doc/guides/sample_app_ug/ipsec_secgw.rst
examples/ipsec-secgw/ipsec-secgw.c
examples/ipsec-secgw/ipsec.h
examples/ipsec-secgw/meson.build