diff options
author | Nathan Skrzypczak <nathan.skrzypczak@gmail.com> | 2021-10-14 18:41:57 +0300 |
---|---|---|
committer | Beno�t Ganne <bganne@cisco.com> | 2023-08-08 14:06:08 +0000 |
commit | 6631032791f842017c20ddf217e915c465ff809d (patch) | |
tree | 80c72dd02c55f96bed52821b9a24404599055166 /src/plugins/cnat/cnat_node_feature.c | |
parent | cad2111129b57c9c14f5c6bc645286fdc5bf4a3c (diff) |
cnat: flag to disable rsession
This adds a flag on the translation
asking the VIP & input-feature nodes
not to create the return session when
translating / load-balancing an incoming
flow. This is needed with maglev & DSR
Type: feature
Change-Id: I699012310ddc59f6ceeeb4878638eac6da5128dc
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
Diffstat (limited to 'src/plugins/cnat/cnat_node_feature.c')
-rw-r--r-- | src/plugins/cnat/cnat_node_feature.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/plugins/cnat/cnat_node_feature.c b/src/plugins/cnat/cnat_node_feature.c index 2ab5cb232b4..9b2c0c2fe06 100644 --- a/src/plugins/cnat/cnat_node_feature.c +++ b/src/plugins/cnat/cnat_node_feature.c @@ -143,7 +143,10 @@ cnat_input_feature_fn (vlib_main_t *vm, vlib_node_runtime_t *node, /* refcnt session in current client */ cnat_client_cnt_session (cc); - cnat_session_create (session, ctx, CNAT_LOCATION_OUTPUT, rsession_flags); + cnat_session_create (session, ctx); + if (!(ct->flags & CNAT_TR_FLAG_NO_RETURN_SESSION)) + cnat_rsession_create (session, ctx, CNAT_LOCATION_OUTPUT, + rsession_flags); trace_flags |= CNAT_TRACE_SESSION_CREATED; } @@ -320,9 +323,11 @@ cnat_output_feature_fn (vlib_main_t *vm, vlib_node_runtime_t *node, CNAT_SESSION_FLAG_NO_CLIENT | CNAT_SESSION_FLAG_ALLOC_PORT; trace_flags |= CNAT_TRACE_SESSION_CREATED; - cnat_session_create (session, ctx, CNAT_LOCATION_INPUT, - CNAT_SESSION_FLAG_NO_CLIENT | - CNAT_SESSION_RETRY_SNAT); + + cnat_session_create (session, ctx); + cnat_rsession_create (session, ctx, CNAT_LOCATION_INPUT, + CNAT_SESSION_FLAG_NO_CLIENT | + CNAT_SESSION_RETRY_SNAT); } if (AF_IP4 == ctx->af) |