From: Tejasree Kondoj Date: Mon, 6 Dec 2021 11:07:57 +0000 (+0530) Subject: test/crypto: add fragmented packet case X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=825ab5c31a74ce88514a9d57258f44ea81b3498d;p=dpdk.git 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 --- 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); + } + } }