aboutsummaryrefslogtreecommitdiff
path: root/test/validation/api/classification/odp_classification_testsuites.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/validation/api/classification/odp_classification_testsuites.h')
-rw-r--r--test/validation/api/classification/odp_classification_testsuites.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/test/validation/api/classification/odp_classification_testsuites.h b/test/validation/api/classification/odp_classification_testsuites.h
new file mode 100644
index 000000000..34f93ee8d
--- /dev/null
+++ b/test/validation/api/classification/odp_classification_testsuites.h
@@ -0,0 +1,92 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2015-2018 Linaro Limited
+ */
+
+#ifndef ODP_CLASSIFICATION_TESTSUITES_H_
+#define ODP_CLASSIFICATION_TESTSUITES_H_
+
+#include <odp_api.h>
+#include <odp/helper/odph_api.h>
+#include <odp_cunit_common.h>
+#include <stdbool.h>
+
+typedef enum cls_packet_l4_info {
+ CLS_PKT_L4_TCP,
+ CLS_PKT_L4_UDP,
+ CLS_PKT_L4_SCTP,
+ CLS_PKT_L4_ICMP,
+ CLS_PKT_L4_GTP,
+ CLS_PKT_L4_IGMP,
+ CLS_PKT_L4_AH,
+ CLS_PKT_L4_ESP
+} cls_packet_l4_info;
+
+typedef struct cls_packet_info {
+ odp_pool_t pool;
+ bool vlan;
+ bool vlan_qinq;
+ odp_atomic_u32_t *seq;
+ cls_packet_l4_info l4_type;
+ odp_bool_t ipv6;
+ uint8_t dscp;
+ uint32_t len;
+} cls_packet_info_t;
+
+typedef union odp_cls_testcase {
+ struct {
+ uint32_t default_cos:1;
+ uint32_t drop_cos:1;
+ uint32_t error_cos:1;
+ uint32_t pmr_chain:1;
+ uint32_t pmr_cos:1;
+ uint32_t pmr_composite_cos:1;
+ };
+ uint32_t all_bits;
+} odp_cls_testcase_u;
+
+extern odp_testinfo_t classification_suite[];
+extern odp_testinfo_t classification_suite_basic[];
+extern odp_testinfo_t classification_suite_pmr[];
+extern odp_testinfo_t classification_suite_pktv[];
+
+int classification_suite_init(void);
+int classification_suite_term(void);
+
+int classification_suite_pmr_term(void);
+int classification_suite_pmr_init(void);
+
+int classification_suite_pktv_init(void);
+int classification_suite_pktv_term(void);
+
+odp_packet_t create_packet(cls_packet_info_t pkt_info);
+int cls_pkt_set_seq(odp_packet_t pkt);
+uint32_t cls_pkt_get_seq(odp_packet_t pkt);
+odp_pktio_t create_pktio(odp_queue_type_t q_type, odp_pool_t pool,
+ odp_bool_t cls_enable);
+void configure_default_cos(odp_pktio_t pktio, odp_cos_t *cos,
+ odp_queue_t *queue, odp_pool_t *pool);
+int parse_ipv4_string(const char *ipaddress, uint32_t *addr, uint32_t *mask);
+void enqueue_pktio_interface(odp_packet_t pkt, odp_pktio_t pktio);
+odp_packet_t receive_packet(odp_queue_t *queue, uint64_t ns, odp_bool_t enable_pktv);
+odp_pool_t pool_create(const char *poolname);
+odp_pool_t pktv_pool_create(const char *poolname);
+odp_queue_t queue_create(const char *queuename, bool sched);
+void configure_pktio_default_cos(odp_bool_t enable_pktv);
+void test_pktio_default_cos(odp_bool_t enable_pktv);
+void configure_pktio_drop_cos(odp_bool_t enable_pktv, uint32_t max_cos_stats);
+void test_pktio_drop_cos(odp_bool_t enable_pktv);
+void configure_pktio_error_cos(odp_bool_t enable_pktv);
+void test_pktio_error_cos(odp_bool_t enable_pktv);
+void configure_cls_pmr_chain(odp_bool_t enable_pktv);
+void test_cls_pmr_chain(odp_bool_t enable_pktv);
+void configure_cos_with_l2_priority(odp_bool_t enable_pktv);
+void test_cos_with_l2_priority(odp_bool_t enable_pktv);
+void configure_pmr_cos(odp_bool_t enable_pktv);
+void test_pmr_cos(odp_bool_t enable_pktv);
+void configure_pktio_pmr_composite(odp_bool_t enable_pktv);
+void test_pktio_pmr_composite_cos(odp_bool_t enable_pktv);
+int stop_pktio(odp_pktio_t pktio);
+odp_cls_pmr_term_t find_first_supported_l3_pmr(void);
+int set_first_supported_pmr_port(odp_packet_t pkt, uint16_t port);
+
+#endif /* ODP_BUFFER_TESTSUITES_H_ */