[dpdk-dev] [PATCH 2/2] examples/ipsec-secgw: add UDP encapsulation for inline protocol

Srujana Challa schalla at marvell.com
Tue Jul 13 09:42:18 CEST 2021


Adds support to allow udp-encap option for
RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL mode also.

Signed-off-by: Srujana Challa <schalla at marvell.com>
---
 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.29.0



More information about the dev mailing list