From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9F8B7A0487 for ; Tue, 2 Jul 2019 10:14:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D74D15B3C; Tue, 2 Jul 2019 10:14:21 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [148.163.129.52]) by dpdk.org (Postfix) with ESMTP id CC44C5B3A for ; Tue, 2 Jul 2019 10:14:20 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us2.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 156BB700079; Tue, 2 Jul 2019 08:14:19 +0000 (UTC) Received: from [192.168.1.11] (85.187.13.154) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 2 Jul 2019 09:14:10 +0100 To: Dekel Peled , , , , , , , , CC: , References: <1553177917-43297-1-git-send-email-dekelp@mellanox.com> <359385afd8826483cd8b7af2c8a5ea45d4d5a9b2.1561994563.git.dekelp@mellanox.com> From: Andrew Rybchenko Message-ID: <7ebe9e0c-cd76-28ef-0788-1b5a81177139@solarflare.com> Date: Tue, 2 Jul 2019 11:14:06 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 In-Reply-To: <359385afd8826483cd8b7af2c8a5ea45d4d5a9b2.1561994563.git.dekelp@mellanox.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-Originating-IP: [85.187.13.154] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24734.003 X-TM-AS-Result: No-10.328200-8.000000-10 X-TMASE-MatchedRID: VfovoVrt/obmLzc6AOD8DfHkpkyUphL9NV9S7O+u3KYfVuGrjP7J9IBv JfFbsOF2zi5dYQjfWjm9ETSqcPWvPDM9BBRuZZ1vnMQdNQ64xfdr9+Kgn2XgeC556rUMDXk2cij MZrr2iZ2t2gtuWr1LmpCE/hrvAVoGy7mv6nWHz+y5bYpizETL0H4JYJwdJw4T8jflxBKMkr6hYX BVKAz4H1824W2CoDk/AUZWrMnznJrOugYCEJUMNYvqrlGw2G/kTPM1foW4ZgM9nHaKSI6z3ReWU U3XBE1U4vM1YF6AJbZFi+KwZZttLwSz8fXAzKymseWplitmp0j6C0ePs7A07RRAJC2k3BZ6F2/A L3RE4SZDhp9LevJ6/12gXIbGySGfbei8E831PTw= X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--10.328200-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24734.003 X-MDID: 1562055260-G16EK-fWY570 Subject: Re: [dpdk-dev] [PATCH v9 1/3] ethdev: add actions to modify TCP header fields 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 01.07.2019 18:43, Dekel Peled wrote: > Add actions: > - INC_TCP_SEQ - Increase sequence number in the outermost TCP header. > - DEC_TCP_SEQ - Decrease sequence number in the outermost TCP header. > - INC_TCP_ACK - Increase acknowledgment number in the outermost TCP > header. > - DEC_TCP_ACK - Decrease acknowledgment number in the outermost TCP > header. > > Original work by Xiaoyu Min. > > This patch uses the new approach introduced by [1], using a simple > integer instead of using an action-specific structure for each of > the new actions. > > [1] http://patches.dpdk.org/patch/55773/ > > Signed-off-by: Dekel Peled > Acked-by: Andrew Rybchenko > --- > doc/guides/prog_guide/rte_flow.rst | 32 ++++++++++++++++++++++++++++++++ > lib/librte_ethdev/rte_flow.c | 4 ++++ > lib/librte_ethdev/rte_flow.h | 32 ++++++++++++++++++++++++++++++++ > 3 files changed, 68 insertions(+) > > diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst > index 67deed7..bbe32db 100644 > --- a/doc/guides/prog_guide/rte_flow.rst > +++ b/doc/guides/prog_guide/rte_flow.rst > @@ -2346,6 +2346,38 @@ Otherwise, RTE_FLOW_ERROR_TYPE_ACTION error will be returned. > | ``mac_addr`` | MAC address | > +--------------+---------------+ > > +Action: ``INC_TCP_SEQ`` > +^^^^^^^^^^^^^^^^^^^^^^^ > + > +Increase sequence number in the outermost TCP header. > +Value to increase TCP sequence number by is a big-endian 32 bit integer. > + > +Using this action on non-matching traffic will result in undefined behavior. > + > +Action: ``DEC_TCP_SEQ`` > +^^^^^^^^^^^^^^^^^^^^^^^ > + > +Decrease sequence number in the outermost TCP header. > +Value to decrease TCP sequence number by is a big-endian 32 bit integer. > + > +Using this action on non-matching traffic will result in undefined behavior. > + > +Action: ``INC_TCP_ACK`` > +^^^^^^^^^^^^^^^^^^^^^^^ > + > +Increase acknowledgment number in the outermost TCP header. > +Value to increase TCP acknowledgment number by is a big-endian 32 bit integer. > + > +Using this action on non-matching traffic will result in undefined behavior. > + > +Action: ``DEC_TCP_ACK`` > +^^^^^^^^^^^^^^^^^^^^^^^ > + > +Decrease acknowledgment number in the outermost TCP header. > +Value to decrease TCP acknowledgment number by is a big-endian 32 bit integer. > + > +Using this action on non-matching traffic will result in undefined behavior. > + > Negative types > ~~~~~~~~~~~~~~ > > diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c > index 3277be1..0c9f6c6 100644 > --- a/lib/librte_ethdev/rte_flow.c > +++ b/lib/librte_ethdev/rte_flow.c > @@ -143,6 +143,10 @@ struct rte_flow_desc_data { > MK_FLOW_ACTION(SET_TTL, sizeof(struct rte_flow_action_set_ttl)), > MK_FLOW_ACTION(SET_MAC_SRC, sizeof(struct rte_flow_action_set_mac)), > MK_FLOW_ACTION(SET_MAC_DST, sizeof(struct rte_flow_action_set_mac)), > + MK_FLOW_ACTION(INC_TCP_SEQ, sizeof(rte_be32_t)), > + MK_FLOW_ACTION(DEC_TCP_SEQ, sizeof(rte_be32_t)), > + MK_FLOW_ACTION(INC_TCP_ACK, sizeof(rte_be32_t)), > + MK_FLOW_ACTION(DEC_TCP_ACK, sizeof(rte_be32_t)), > }; > > static int > diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h > index 2232856..28445f4 100644 > --- a/lib/librte_ethdev/rte_flow.h > +++ b/lib/librte_ethdev/rte_flow.h > @@ -1651,6 +1651,38 @@ enum rte_flow_action_type { > * See struct rte_flow_action_set_mac. > */ > RTE_FLOW_ACTION_TYPE_SET_MAC_DST, > + > + /** > + * Increase sequence number in the outermost TCP header. > + * > + * Using this action on non-matching traffic will result in > + * undefined behavior. > + */ > + RTE_FLOW_ACTION_TYPE_INC_TCP_SEQ, > + > + /** > + * Decrease sequence number in the outermost TCP header. > + * > + * Using this action on non-matching traffic will result in > + * undefined behavior. > + */ > + RTE_FLOW_ACTION_TYPE_DEC_TCP_SEQ, > + > + /** > + * Increase acknowledgment number in the outermost TCP header. > + * > + * Using this action on non-matching traffic will result in > + * undefined behavior. > + */ > + RTE_FLOW_ACTION_TYPE_INC_TCP_ACK, > + > + /** > + * Decrease acknowledgment number in the outermost TCP header. > + * > + * Using this action on non-matching traffic will result in > + * undefined behavior. > + */ > + RTE_FLOW_ACTION_TYPE_DEC_TCP_ACK, > }; > > /** Other actions have type of configuration data description in a comment just before the action enum element. I'm not sure why it is skipped here. It is really vital information.