| 686 | |
| 687 | |
| 688 | static int32_t |
| 689 | __test_lookup_order(int ipv6, union rte_ipsec_sad_key *tuple, |
| 690 | union rte_ipsec_sad_key *tuple_1, union rte_ipsec_sad_key *tuple_2) |
| 691 | { |
| 692 | int status; |
| 693 | struct rte_ipsec_sad *sad = NULL; |
| 694 | struct rte_ipsec_sad_conf config; |
| 695 | const union rte_ipsec_sad_key *key_arr[] = {tuple, tuple_1, tuple_2,}; |
| 696 | uint64_t tmp1, tmp2, tmp3; |
| 697 | void *install_sa; |
| 698 | void *sa[3]; |
| 699 | |
| 700 | config.max_sa[RTE_IPSEC_SAD_SPI_ONLY] = MAX_SA; |
| 701 | config.max_sa[RTE_IPSEC_SAD_SPI_DIP] = MAX_SA; |
| 702 | config.max_sa[RTE_IPSEC_SAD_SPI_DIP_SIP] = MAX_SA; |
| 703 | config.socket_id = SOCKET_ID_ANY; |
| 704 | config.flags = 0; |
| 705 | if (ipv6) |
| 706 | config.flags = RTE_IPSEC_SAD_FLAG_IPV6; |
| 707 | sad = rte_ipsec_sad_create(__func__, &config); |
| 708 | RTE_TEST_ASSERT_NOT_NULL(sad, "Failed to create SAD\n"); |
| 709 | |
| 710 | /* install RTE_IPSEC_SAD_SPI_ONLY */ |
| 711 | install_sa = &tmp1; |
| 712 | status = rte_ipsec_sad_add(sad, tuple, |
| 713 | RTE_IPSEC_SAD_SPI_ONLY, install_sa); |
| 714 | RTE_TEST_ASSERT(status == 0, "Failed to add a rule\n"); |
| 715 | |
| 716 | status = rte_ipsec_sad_lookup(sad, key_arr, sa, 3); |
| 717 | RTE_TEST_ASSERT(status == 3, "Lookup returns an unexpected result\n"); |
| 718 | RTE_TEST_ASSERT(sa[0] == &tmp1, |
| 719 | "Lookup returns an unexpected result\n"); |
| 720 | RTE_TEST_ASSERT(sa[1] == &tmp1, |
| 721 | "Lookup returns an unexpected result\n"); |
| 722 | RTE_TEST_ASSERT(sa[2] == &tmp1, |
| 723 | "Lookup returns an unexpected result\n"); |
| 724 | |
| 725 | /* add RTE_IPSEC_SAD_SPI_DIP */ |
| 726 | install_sa = &tmp2; |
| 727 | status = rte_ipsec_sad_add(sad, tuple, |
| 728 | RTE_IPSEC_SAD_SPI_DIP, install_sa); |
| 729 | RTE_TEST_ASSERT(status == 0, "Failed to add a rule\n"); |
| 730 | |
| 731 | status = rte_ipsec_sad_lookup(sad, key_arr, sa, 3); |
| 732 | RTE_TEST_ASSERT(status == 3, "Lookup returns an unexpected result\n"); |
| 733 | RTE_TEST_ASSERT(sa[0] == &tmp2, |
| 734 | "Lookup returns an unexpected result\n"); |
| 735 | RTE_TEST_ASSERT(sa[1] == &tmp2, |
| 736 | "Lookup returns an unexpected result\n"); |
| 737 | RTE_TEST_ASSERT(sa[2] == &tmp1, |
| 738 | "Lookup returns an unexpected result\n"); |
| 739 | |
| 740 | /* add RTE_IPSEC_SAD_SPI_DIP_SIP */ |
| 741 | install_sa = &tmp3; |
| 742 | status = rte_ipsec_sad_add(sad, tuple, |
| 743 | RTE_IPSEC_SAD_SPI_DIP_SIP, install_sa); |
| 744 | RTE_TEST_ASSERT(status == 0, "Failed to add a rule\n"); |
| 745 |
no test coverage detected