/**
* @file
*
- * RTE Flow Classify Library
+ * RTE Flow Classify Library.
*
- * @b EXPERIMENTAL: this API may change without prior notice
+ * @warning
+ * @b EXPERIMENTAL:
+ * All functions in this file may be changed or removed without prior notice.
*
* This library provides flow record information with some measured properties.
*
* with rte_flow_classifier_free()
*/
+#include <rte_compat.h>
+#include <rte_common.h>
#include <rte_ethdev.h>
#include <rte_ether.h>
#include <rte_flow.h>
extern int librte_flow_classify_logtype;
-#define RTE_FLOW_CLASSIFY_LOG(level, fmt, args...) \
-rte_log(RTE_LOG_ ## level, librte_flow_classify_logtype, "%s(): " fmt, \
- __func__, ## args)
+#define RTE_FLOW_CLASSIFY_LOG(level, ...) \
+ rte_log(RTE_LOG_ ## level, \
+ librte_flow_classify_logtype, \
+ RTE_FMT("%s(): " RTE_FMT_HEAD(__VA_ARGS__,), \
+ __func__, \
+ RTE_FMT_TAIL(__VA_ARGS__,)))
#ifndef RTE_FLOW_CLASSIFY_TABLE_MAX
#define RTE_FLOW_CLASSIFY_TABLE_MAX 32
* @return
* Handle to flow classifier instance on success or NULL otherwise
*/
+__rte_experimental
struct rte_flow_classifier *
rte_flow_classifier_create(struct rte_flow_classifier_params *params);
* @return
* 0 on success, error code otherwise
*/
+__rte_experimental
int
rte_flow_classifier_free(struct rte_flow_classifier *cls);
* @return
* 0 on success, error code otherwise
*/
+__rte_experimental
int
rte_flow_classify_table_create(struct rte_flow_classifier *cls,
struct rte_flow_classify_table_params *params);
* @return
* 0 on success, error code otherwise
*/
+__rte_experimental
int
rte_flow_classify_validate(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
struct rte_flow_error *error);
/**
- * Add a flow classify rule to the flow_classifer table.
+ * Add a flow classify rule to the flow_classifier table.
*
* @param[in] cls
* Flow classifier handle
* @return
* A valid handle in case of success, NULL otherwise.
*/
+__rte_experimental
struct rte_flow_classify_rule *
rte_flow_classify_table_entry_add(struct rte_flow_classifier *cls,
const struct rte_flow_attr *attr,
struct rte_flow_error *error);
/**
- * Delete a flow classify rule from the flow_classifer table.
+ * Delete a flow classify rule from the flow_classifier table.
*
* @param[in] cls
* Flow classifier handle
* @return
* 0 on success, error code otherwise.
*/
+__rte_experimental
int
rte_flow_classify_table_entry_delete(struct rte_flow_classifier *cls,
struct rte_flow_classify_rule *rule);
* @return
* 0 on success, error code otherwise.
*/
+__rte_experimental
int
rte_flow_classifier_query(struct rte_flow_classifier *cls,
struct rte_mbuf **pkts,