cnat: Fix conflicting rsession 09/35209/3
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>
Wed, 2 Feb 2022 18:31:43 +0000 (19:31 +0100)
committerBeno�t Ganne <bganne@cisco.com>
Fri, 18 Mar 2022 11:33:51 +0000 (11:33 +0000)
commit762cfd408b16b6ab43ade3ab491292b93bdeb9b3
tree3b303cb9db68a8003aca57820174b03902f3c714
parent6798e9ec34a49df008ecb7f84559e531f6c0d651
cnat: Fix conflicting rsession

When dNAT-ing to a VIP, it can happen
that the return session conflicts with
another forward session than the one
we own.

This patchs adds a rsession_flags
CNAT_SESSION_RETRY_SNAT that makes cnat_session_create
search for a free src port to use for the
resulting return session.

It also makes forward & return session
share their fate in the session scanner.

Type: fix

Change-Id: Id0edf59abf8e5bc0c0d8941ba289c4563c77dee0
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_session.c
src/plugins/cnat/cnat_session.h