diff options
author | Aakash Sasidharan <asasidharan@marvell.com> | 2021-05-03 19:35:07 +0530 |
---|---|---|
committer | Petri Savolainen <petri.savolainen@nokia.com> | 2021-05-31 13:26:57 +0300 |
commit | 8d3851e136aa38336a550cd6e9696bf225a75926 (patch) | |
tree | d3b4d379c21da73d13a078ea84e6d1d75b23c2b0 /test/validation/api | |
parent | 354436420de43e51281af685471f59a882f18089 (diff) |
validation: ipsec: check if success_bytes is updated
Check if stats.succes_bytes is updated for stats success
tests.
Also remove rundundant check for inbound SA stats from
the current code.
Signed-off-by: Aakash Sasidharan <asasidharan@marvell.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Diffstat (limited to 'test/validation/api')
-rw-r--r-- | test/validation/api/ipsec/ipsec_test_out.c | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/test/validation/api/ipsec/ipsec_test_out.c b/test/validation/api/ipsec/ipsec_test_out.c index 15342dac4..7c1121579 100644 --- a/test/validation/api/ipsec/ipsec_test_out.c +++ b/test/validation/api/ipsec/ipsec_test_out.c @@ -359,17 +359,19 @@ static void test_ipsec_stats_zero_assert(odp_ipsec_stats_t *stats) CU_ASSERT_EQUAL(stats->mtu_err, 0); CU_ASSERT_EQUAL(stats->hard_exp_bytes_err, 0); CU_ASSERT_EQUAL(stats->hard_exp_pkts_err, 0); + CU_ASSERT_EQUAL(stats->success_bytes, 0); } static void test_ipsec_stats_test_assert(odp_ipsec_stats_t *stats, - enum ipsec_test_stats test) + enum ipsec_test_stats test, + uint64_t succ_bytes) { if (test == IPSEC_TEST_STATS_SUCCESS) { - /* Braces needed by CU macro */ CU_ASSERT_EQUAL(stats->success, 1); + CU_ASSERT(stats->success_bytes >= succ_bytes); } else { - /* Braces needed by CU macro */ CU_ASSERT_EQUAL(stats->success, 0); + CU_ASSERT_EQUAL(stats->success_bytes, 0); } if (test == IPSEC_TEST_STATS_PROTO_ERR) { @@ -606,20 +608,36 @@ static void test_out_in_common(const ipsec_test_flags *flags, ipsec_check_out_in_one(&test_out, &test_in, sa_out, sa_in, flags); - if (flags->stats == IPSEC_TEST_STATS_SUCCESS) { - CU_ASSERT_EQUAL(odp_ipsec_stats(sa_in, &stats), 0); - test_ipsec_stats_test_assert(&stats, flags->stats); - } - if (flags->stats != IPSEC_TEST_STATS_NONE) { + uint64_t succ_bytes = 0; + + /* Minimum bytes to be counted for stats.success_bytes */ + if (!flags->ah) { + succ_bytes = test_out.pkt_in[0].len - + test_out.pkt_in[0].l4_offset; + + if (flags->tunnel) + succ_bytes += test_out.pkt_in[0].l4_offset - + test_out.pkt_in[0].l3_offset; + } else { + succ_bytes = test_out.pkt_in[0].len - + test_out.pkt_in[0].l3_offset; + + if (flags->tunnel) + succ_bytes += (flags->tunnel_is_v6 ? + ODPH_IPV6HDR_LEN : + ODPH_IPV4HDR_LEN); + } + /* All stats tests have outbound operation success and inbound * varying. */ CU_ASSERT_EQUAL(odp_ipsec_stats(sa_out, &stats), 0); - test_ipsec_stats_test_assert(&stats, IPSEC_TEST_STATS_SUCCESS); + test_ipsec_stats_test_assert(&stats, IPSEC_TEST_STATS_SUCCESS, + succ_bytes); CU_ASSERT_EQUAL(odp_ipsec_stats(sa_in, &stats), 0); - test_ipsec_stats_test_assert(&stats, flags->stats); + test_ipsec_stats_test_assert(&stats, flags->stats, succ_bytes); } ipsec_sa_destroy(sa_out); |