From 6425d95ad1f507c3f4f039688d90051fee39ea22 Mon Sep 17 00:00:00 2001 From: Srujana Challa Date: Tue, 13 Jul 2021 13:12:18 +0530 Subject: [PATCH] examples/ipsec-secgw: support inline UDP encapsulation Adds support to allow udp-encap option for RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL mode also. Signed-off-by: Srujana Challa Acked-by: Akhil Goyal Acked-by: Konstantin Ananyev --- examples/ipsec-secgw/sa.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/examples/ipsec-secgw/sa.c b/examples/ipsec-secgw/sa.c index 7bb9ef36c2..17a28556c9 100644 --- a/examples/ipsec-secgw/sa.c +++ b/examples/ipsec-secgw/sa.c @@ -759,20 +759,25 @@ parse_sa_tokens(char **tokens, uint32_t n_tokens, continue; } if (strcmp(tokens[ti], "udp-encap") == 0) { - APP_CHECK(ips->type == - RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL, - status, "UDP encapsulation is allowed if the " - "session is of type lookaside-protocol-offload " - "only."); - if (status->status < 0) - return; - APP_CHECK_PRESENCE(udp_encap_p, tokens[ti], status); - if (status->status < 0) - return; + switch (ips->type) { + case RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL: + case RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL: + APP_CHECK_PRESENCE(udp_encap_p, tokens[ti], + status); + if (status->status < 0) + return; - rule->udp_encap = 1; - app_sa_prm.udp_encap = 1; - udp_encap_p = 1; + rule->udp_encap = 1; + app_sa_prm.udp_encap = 1; + udp_encap_p = 1; + break; + default: + APP_CHECK(0, status, + "UDP encapsulation not supported for " + "security session type %d", + ips->type); + return; + } continue; } -- 2.20.1