From 7eb312e3423a082cfcbc4297a23798f3a3090420 Mon Sep 17 00:00:00 2001 From: Adrien Mazarguil Date: Wed, 25 Apr 2018 17:27:38 +0200 Subject: [PATCH] ethdev: add error types to flow API These enable more precise reporting of objects responsible for errors. This breaks ABI compatibility for the following public functions: - rte_flow_create() - rte_flow_destroy() - rte_flow_error_set() - rte_flow_flush() - rte_flow_isolate() - rte_flow_query() - rte_flow_validate() Signed-off-by: Adrien Mazarguil Acked-by: Andrew Rybchenko --- app/test-pmd/config.c | 4 ++++ doc/guides/rel_notes/release_18_05.rst | 7 +++++++ lib/librte_ether/rte_ethdev_version.map | 14 +++++++------- lib/librte_ether/rte_flow.h | 4 ++++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 5379f27e6c..f3ff008e9a 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1261,8 +1261,12 @@ port_flow_complain(struct rte_flow_error *error) [RTE_FLOW_ERROR_TYPE_ATTR_EGRESS] = "egress field", [RTE_FLOW_ERROR_TYPE_ATTR] = "attributes structure", [RTE_FLOW_ERROR_TYPE_ITEM_NUM] = "pattern length", + [RTE_FLOW_ERROR_TYPE_ITEM_SPEC] = "item specification", + [RTE_FLOW_ERROR_TYPE_ITEM_LAST] = "item specification range", + [RTE_FLOW_ERROR_TYPE_ITEM_MASK] = "item specification mask", [RTE_FLOW_ERROR_TYPE_ITEM] = "specific pattern item", [RTE_FLOW_ERROR_TYPE_ACTION_NUM] = "number of actions", + [RTE_FLOW_ERROR_TYPE_ACTION_CONF] = "action configuration", [RTE_FLOW_ERROR_TYPE_ACTION] = "specific action", }; const char *errstr; diff --git a/doc/guides/rel_notes/release_18_05.rst b/doc/guides/rel_notes/release_18_05.rst index 1029ec0b53..816ab23940 100644 --- a/doc/guides/rel_notes/release_18_05.rst +++ b/doc/guides/rel_notes/release_18_05.rst @@ -298,6 +298,13 @@ ABI Changes type ``uint16_t``: ``burst_size``, ``ring_size``, and ``nb_queues``. These are parameter values recommended for use by the PMD. +* ethdev: ABI for most flow API functions was updated. + + This includes functions ``rte_flow_create``, ``rte_flow_destroy``, + ``rte_flow_error_set``, ``rte_flow_flush``, ``rte_flow_isolate``, + ``rte_flow_query`` and ``rte_flow_validate``, due to changes in error type + definitions (``enum rte_flow_error_type``). + Removed Items ------------- diff --git a/lib/librte_ether/rte_ethdev_version.map b/lib/librte_ether/rte_ethdev_version.map index 02713e430f..180d2ca2d0 100644 --- a/lib/librte_ether/rte_ethdev_version.map +++ b/lib/librte_ether/rte_ethdev_version.map @@ -127,11 +127,6 @@ DPDK_17.02 { _rte_eth_dev_reset; rte_eth_dev_fw_version_get; - rte_flow_create; - rte_flow_destroy; - rte_flow_flush; - rte_flow_query; - rte_flow_validate; } DPDK_16.07; @@ -153,7 +148,6 @@ DPDK_17.08 { _rte_eth_dev_callback_process; rte_eth_dev_adjust_nb_rx_tx_desc; rte_flow_copy; - rte_flow_isolate; rte_tm_capabilities_get; rte_tm_hierarchy_commit; rte_tm_level_capabilities_get; @@ -192,7 +186,6 @@ DPDK_17.11 { rte_eth_dev_get_sec_ctx; rte_eth_dev_pool_ops_supported; rte_eth_dev_reset; - rte_flow_error_set; } DPDK_17.08; @@ -208,6 +201,13 @@ DPDK_18.05 { rte_eth_dev_count_avail; rte_eth_find_next_owned_by; + rte_flow_create; + rte_flow_destroy; + rte_flow_error_set; + rte_flow_flush; + rte_flow_isolate; + rte_flow_query; + rte_flow_validate; } DPDK_18.02; diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h index 44ae19d3b2..26b95c7722 100644 --- a/lib/librte_ether/rte_flow.h +++ b/lib/librte_ether/rte_flow.h @@ -1186,8 +1186,12 @@ enum rte_flow_error_type { RTE_FLOW_ERROR_TYPE_ATTR_EGRESS, /**< Egress field. */ RTE_FLOW_ERROR_TYPE_ATTR, /**< Attributes structure. */ RTE_FLOW_ERROR_TYPE_ITEM_NUM, /**< Pattern length. */ + RTE_FLOW_ERROR_TYPE_ITEM_SPEC, /**< Item specification. */ + RTE_FLOW_ERROR_TYPE_ITEM_LAST, /**< Item specification range. */ + RTE_FLOW_ERROR_TYPE_ITEM_MASK, /**< Item specification mask. */ RTE_FLOW_ERROR_TYPE_ITEM, /**< Specific pattern item. */ RTE_FLOW_ERROR_TYPE_ACTION_NUM, /**< Number of actions. */ + RTE_FLOW_ERROR_TYPE_ACTION_CONF, /**< Action configuration. */ RTE_FLOW_ERROR_TYPE_ACTION, /**< Specific action. */ };