From 825ab5c31a74ce88514a9d57258f44ea81b3498d Mon Sep 17 00:00:00 2001 From: Tejasree Kondoj Date: Mon, 6 Dec 2021 16:37:57 +0530 Subject: [PATCH] test/crypto: add fragmented packet case Add fragmented plain packet test case in combined mode. The test case leverages combined mode framework to generate IPsec packet from a fragment and verify that headers are formed correctly. The IPsec packet would be decapsulated and the plain packet is compared against the original packet. Signed-off-by: Tejasree Kondoj Acked-by: Akhil Goyal --- app/test/test_cryptodev.c | 16 ++++++++++++++++ app/test/test_cryptodev_security_ipsec.c | 7 +++++++ 2 files changed, 23 insertions(+) diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c index 38648f4b92..4c00b62f0e 100644 --- a/app/test/test_cryptodev.c +++ b/app/test/test_cryptodev.c @@ -9669,6 +9669,18 @@ test_ipsec_proto_stats(const void *data __rte_unused) return test_ipsec_proto_all(&flags); } +static int +test_ipsec_proto_pkt_fragment(const void *data __rte_unused) +{ + struct ipsec_test_flags flags; + + memset(&flags, 0, sizeof(flags)); + + flags.fragment = true; + + return test_ipsec_proto_all(&flags); +} + static int test_PDCP_PROTO_all(void) { @@ -14677,6 +14689,10 @@ static struct unit_test_suite ipsec_proto_testsuite = { "Statistics: success", ut_setup_security, ut_teardown, test_ipsec_proto_stats), + TEST_CASE_NAMED_ST( + "Fragmented packet", + ut_setup_security, ut_teardown, + test_ipsec_proto_pkt_fragment), TEST_CASES_END() /**< NULL terminate unit test array */ } }; diff --git a/app/test/test_cryptodev_security_ipsec.c b/app/test/test_cryptodev_security_ipsec.c index 6fa1d3d90a..832f9d844d 100644 --- a/app/test/test_cryptodev_security_ipsec.c +++ b/app/test/test_cryptodev_security_ipsec.c @@ -418,6 +418,13 @@ test_ipsec_td_prepare(const struct crypto_param *param1, if (flags->stats_success) td->ipsec_xform.options.stats = 1; + if (flags->fragment) { + struct rte_ipv4_hdr *ip; + ip = (struct rte_ipv4_hdr *)&td->input_text.data; + ip->fragment_offset = 4; + ip->hdr_checksum = rte_ipv4_cksum(ip); + } + } } -- 2.20.1