cnat: Support offloaded check sums 49/31449/14
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>
Thu, 25 Feb 2021 18:13:19 +0000 (19:13 +0100)
committerNathan Skrzypczak <nathan.skrzypczak@gmail.com>
Mon, 7 Aug 2023 09:34:48 +0000 (11:34 +0200)
commitb22da9c7d101dca833a5c4183e7cf13943f16715
tree80c21ea31740ee9dd3ec48f94368067e05656b90
parent994a58997dec4a1a34efd8e43440b56d100d44af
cnat: Support offloaded check sums

This patch removes zero checks for new_addr, new_port
meaning sessions with zero values will rewrite the packet
with a 0 value instead of leaving it in place. This allows
to reduce branchiness in the code, and sessions are fully
resolved at creation time anyway.

This also adds support for checksum offloads:
- IP checksum offload : we always compute the checksum to
avoid issues with drivers. We'll revert this if we realize
cost gets too important.
- TCP/UDP checksum offload : we add the implementation for
pseudo header checksum computation. This is needed for the
drivers that do not re-compute this pseudo-checksum before
the packet is TX-ed (e.g. a few DPDK drivers).

Type: improvement

Change-Id: I6543f3aec8c120ec50f4219108609138283620ef
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
src/plugins/cnat/cnat_node.h
src/plugins/cnat/cnat_node_feature.c
src/plugins/cnat/cnat_node_snat.c
src/plugins/cnat/cnat_node_vip.c