From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by dpdk.org (Postfix) with ESMTP id 7A9AE1BAF5 for ; Tue, 10 Apr 2018 18:36:59 +0200 (CEST) Received: by mail-wm0-f65.google.com with SMTP id t67so27614193wmt.0 for ; Tue, 10 Apr 2018 09:36:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=9092qQE4wT0KSX8vIh/OekQVdHQ/eQqhVLyU5kEq37k=; b=j7A/s7mE6yZvJ5Z0jqexZG2yQTd7lGgdXlO9EO/H9w89hbbWDQrUu//qhqBCQ8a9mV MP40V5WQFEMi2pLCCrXwa1ZaYo/uWXGQZCmDa5KP3vZ1MYJZQ1j3et+Mw7OrdiXkIGRn Gc8C/E53EIBKp8y8IKDI4dywOpOo/gBxNSpUqWVAB1FqImbfbqnNgU6PZ2KUFMQH9UIG U2yWmyVhWUPXrOG9s/GG0GB9mDR/XjHsqFHFhp+og4/VpILk3yDuDkaGnsJ+RcNuifXK F8PlfvSG1/m1z4TfwQ5QJvS5vkvd1kdfTm0OBEVTLn9LhRqaDTWe7lX0UpDN8zS8kK14 wqNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=9092qQE4wT0KSX8vIh/OekQVdHQ/eQqhVLyU5kEq37k=; b=KnulOQvMQftCipQlyPXP6UeFYL5wrb0wedfS2s2RByJPVNmB5eYEyh0SZiSUq6kAuZ e7qFYWciyu46TE+F1+5LEPYawJjnaO0wGdA9PZBj7MEPgF2AiBzZXC8Pm+mENqiagJeK vXBGj1cu02FlPQoctsAPtk9FeZ8YxFWEDEabwaHUfjkl9AnqFK7v1lW7mkCAOFS84rIo UdlVvFXET46V4q5jOByKecPTnPfLBiwtwG2vv1ja/lmz57cPecgWPcYx+dVwATddyU0H 0gAFc0DQUsJYausCvXpqRrjYQuD8rHJIALI/PJuuLah0Kmj4QLCw4BD/GNe8h9RL35cF RMaw== X-Gm-Message-State: ALQs6tA0OgAZj+j295RV3mThxI6zQVMwOmoIQ43C2xr5RO4K6+GdDSPz Kn+a6W20TWgGBsmXjgD7HZiqjlsx X-Google-Smtp-Source: AIpwx49Z9j+j93jCZVzN2+ckmMhCFvBZkFW/dLqd34uBGI4n8MOZpv2xLyjpS6wAf8IYGwT+kC3MYA== X-Received: by 10.28.133.197 with SMTP id h188mr157638wmd.18.1523378219104; Tue, 10 Apr 2018 09:36:59 -0700 (PDT) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id 78sm3907186wmm.19.2018.04.10.09.36.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Apr 2018 09:36:58 -0700 (PDT) Date: Tue, 10 Apr 2018 18:36:45 +0200 From: Adrien Mazarguil To: Thomas Monjalon , Ferruh Yigit , dev@dpdk.org Message-ID: <20180410162022.9101-5-adrien.mazarguil@6wind.com> References: <20180406131736.19145-1-adrien.mazarguil@6wind.com> <20180410162022.9101-1-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180410162022.9101-1-adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.11.0 Subject: [dpdk-dev] [PATCH v3 04/16] ethdev: remove DUP action from flow API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Apr 2018 16:36:59 -0000 Upcoming changes in relation to the handling of actions list will make the DUP action redundant as specifying several QUEUE actions will achieve the same behavior. Besides, no PMD implements this action. By removing an entry from enum rte_flow_action_type, this patch breaks ABI compatibility for the following public functions: - rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate() Signed-off-by: Adrien Mazarguil Acked-by: Andrew Rybchenko --- app/test-pmd/cmdline_flow.c | 23 ----------------------- app/test-pmd/config.c | 1 - doc/guides/prog_guide/rte_flow.rst | 23 ----------------------- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 -------- lib/librte_ether/rte_ethdev_version.map | 2 +- lib/librte_ether/rte_flow.c | 1 - lib/librte_ether/rte_flow.h | 24 ------------------------ 7 files changed, 1 insertion(+), 81 deletions(-) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index ac4b51a8a..be867b0ec 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -164,8 +164,6 @@ enum index { ACTION_QUEUE_INDEX, ACTION_DROP, ACTION_COUNT, - ACTION_DUP, - ACTION_DUP_INDEX, ACTION_RSS, ACTION_RSS_TYPES, ACTION_RSS_TYPE, @@ -625,7 +623,6 @@ static const enum index next_action[] = { ACTION_QUEUE, ACTION_DROP, ACTION_COUNT, - ACTION_DUP, ACTION_RSS, ACTION_PF, ACTION_VF, @@ -645,12 +642,6 @@ static const enum index action_queue[] = { ZERO, }; -static const enum index action_dup[] = { - ACTION_DUP_INDEX, - ACTION_NEXT, - ZERO, -}; - static const enum index action_rss[] = { ACTION_RSS_TYPES, ACTION_RSS_KEY, @@ -1597,20 +1588,6 @@ static const struct token token_list[] = { .next = NEXT(NEXT_ENTRY(ACTION_NEXT)), .call = parse_vc, }, - [ACTION_DUP] = { - .name = "dup", - .help = "duplicate packets to a given queue index", - .priv = PRIV_ACTION(DUP, sizeof(struct rte_flow_action_dup)), - .next = NEXT(action_dup), - .call = parse_vc, - }, - [ACTION_DUP_INDEX] = { - .name = "index", - .help = "queue index to duplicate packets to", - .next = NEXT(action_dup, NEXT_ENTRY(UNSIGNED)), - .args = ARGS(ARGS_ENTRY(struct rte_flow_action_dup, index)), - .call = parse_vc_conf, - }, [ACTION_RSS] = { .name = "rss", .help = "spread packets among several queues", diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 7ae0295f6..8d42ea9a9 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1049,7 +1049,6 @@ static const struct { MK_FLOW_ACTION(QUEUE, sizeof(struct rte_flow_action_queue)), MK_FLOW_ACTION(DROP, 0), MK_FLOW_ACTION(COUNT, 0), - MK_FLOW_ACTION(DUP, sizeof(struct rte_flow_action_dup)), MK_FLOW_ACTION(RSS, sizeof(struct rte_flow_action_rss)), /* +queue[] */ MK_FLOW_ACTION(PF, 0), MK_FLOW_ACTION(VF, sizeof(struct rte_flow_action_vf)), diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 51826d04c..a237e4fd2 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -1299,26 +1299,6 @@ Query structure to retrieve and reset flow rule counters: | ``bytes`` | out | number of bytes through this rule | +---------------+-----+-----------------------------------+ -Action: ``DUP`` -^^^^^^^^^^^^^^^ - -Duplicates packets to a given queue index. - -This is normally combined with QUEUE, however when used alone, it is -actually similar to QUEUE + PASSTHRU. - -- Non-terminating by default. - -.. _table_rte_flow_action_dup: - -.. table:: DUP - - +-----------+------------------------------------+ - | Field | Value | - +===========+====================================+ - | ``index`` | queue index to duplicate packet to | - +-----------+------------------------------------+ - Action: ``RSS`` ^^^^^^^^^^^^^^^ @@ -2010,9 +1990,6 @@ Unsupported actions and tagging (`Action: MARK`_ or `Action: FLAG`_) may be implemented in software as long as the target queue is used by a single rule. -- A rule specifying both `Action: DUP`_ + `Action: QUEUE`_ may be translated - to two hidden rules combining `Action: QUEUE`_ and `Action: PASSTHRU`_. - - When a single target queue is provided, `Action: RSS`_ can also be implemented through `Action: QUEUE`_. diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index cb6f201e1..a015d02a4 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -3363,10 +3363,6 @@ actions can sometimes be combined when the end result is unambiguous:: :: - drop / dup index 6 / end # same as above - -:: - queue index 6 / rss queues 6 7 8 / end # queue has no effect :: @@ -3400,10 +3396,6 @@ This section lists supported actions and their attributes, if any. - ``count``: enable counters for this rule. -- ``dup``: duplicate packets to a given queue index. - - - ``index {unsigned}``: queue index to duplicate packets to. - - ``rss``: spread packets among several queues. - ``types [{RSS hash type} [...]] end``: RSS hash types, allowed tokens diff --git a/lib/librte_ether/rte_ethdev_version.map b/lib/librte_ether/rte_ethdev_version.map index e915e7929..8f1ae5ed2 100644 --- a/lib/librte_ether/rte_ethdev_version.map +++ b/lib/librte_ether/rte_ethdev_version.map @@ -147,7 +147,6 @@ DPDK_17.08 { _rte_eth_dev_callback_process; rte_eth_dev_adjust_nb_rx_tx_desc; - rte_flow_copy; rte_tm_capabilities_get; rte_tm_hierarchy_commit; rte_tm_level_capabilities_get; @@ -199,6 +198,7 @@ DPDK_18.02 { DPDK_18.05 { global: + rte_flow_copy; rte_flow_create; rte_flow_destroy; rte_flow_error_set; diff --git a/lib/librte_ether/rte_flow.c b/lib/librte_ether/rte_flow.c index ba6feddee..db04c4f94 100644 --- a/lib/librte_ether/rte_flow.c +++ b/lib/librte_ether/rte_flow.c @@ -73,7 +73,6 @@ static const struct rte_flow_desc_data rte_flow_desc_action[] = { MK_FLOW_ACTION(QUEUE, sizeof(struct rte_flow_action_queue)), MK_FLOW_ACTION(DROP, 0), MK_FLOW_ACTION(COUNT, 0), - MK_FLOW_ACTION(DUP, sizeof(struct rte_flow_action_dup)), MK_FLOW_ACTION(RSS, sizeof(struct rte_flow_action_rss)), /* +queue[] */ MK_FLOW_ACTION(PF, 0), MK_FLOW_ACTION(VF, sizeof(struct rte_flow_action_vf)), diff --git a/lib/librte_ether/rte_flow.h b/lib/librte_ether/rte_flow.h index 36fd38ffa..aab637a2c 100644 --- a/lib/librte_ether/rte_flow.h +++ b/lib/librte_ether/rte_flow.h @@ -961,16 +961,6 @@ enum rte_flow_action_type { RTE_FLOW_ACTION_TYPE_COUNT, /** - * Duplicates packets to a given queue index. - * - * This is normally combined with QUEUE, however when used alone, it - * is actually similar to QUEUE + PASSTHRU. - * - * See struct rte_flow_action_dup. - */ - RTE_FLOW_ACTION_TYPE_DUP, - - /** * Similar to QUEUE, except RSS is additionally performed on packets * to spread them among several queues according to the provided * parameters. @@ -1052,20 +1042,6 @@ struct rte_flow_query_count { }; /** - * RTE_FLOW_ACTION_TYPE_DUP - * - * Duplicates packets to a given queue index. - * - * This is normally combined with QUEUE, however when used alone, it is - * actually similar to QUEUE + PASSTHRU. - * - * Non-terminating by default. - */ -struct rte_flow_action_dup { - uint16_t index; /**< Queue index to duplicate packets to. */ -}; - -/** * RTE_FLOW_ACTION_TYPE_RSS * * Similar to QUEUE, except RSS is additionally performed on packets to -- 2.11.0