From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by dpdk.org (Postfix) with ESMTP id 1E5B91C6B6 for ; Wed, 4 Apr 2018 17:56:43 +0200 (CEST) Received: by mail-wm0-f42.google.com with SMTP id r191so11797359wmg.4 for ; Wed, 04 Apr 2018 08:56:43 -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:mime-version:content-disposition; bh=LwPdR3/Qs0k0Cly9YR9Tv9xaHMVTxOWaBv67RM04FKc=; b=c2Taq7XboO/CzpYt1+5eQmVQD6IWlmMVA3PIqn/2pE8SGfH8cunEwrIIM70ymiJ305 6/vj/AN6baCiRJfpsj9TUda48/mhZrjn/XUlPiizYBOTsdwPHczYR1QgXyXz0m8it8vx 8NRg84FGToJNVEVjPHBrIcb0MQa9jR22I61HhGBx5Zpf13IJJQOgWXga1N5A07PPAgej szDOxGlXhVgg9W0QFlEBc2JK5WPkllZezbK3pIUhtrGg7a0ji1+9w+MXFRXNKTTgdW00 TKXRjebGRboBUAAh3PcZ6IcrxjCic2fgMcZ5g24vMUOSQfe6BDNVQwtJT9O8gaTsU6Ou aK8Q== 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:mime-version :content-disposition; bh=LwPdR3/Qs0k0Cly9YR9Tv9xaHMVTxOWaBv67RM04FKc=; b=PxYqzT11lWt52gnein1hszAaBrJF8fPsINLLvJqRmOyNyYt1SjQHc1MFlyLsQO2yTm PP3ik86H3lVONh19Q/r6Eqx6T42sZw0bfmDDv89/K7NP0BTrmixa2MSN52lWutttYntJ FEH2ElHVXdG37fO4oEnxr6AdZRQq4dTyH0da2rZgjW0PK3tmO2pPXLIb24EwU5OCkkzX xhwssSgbBHWIEaFfzdAcX83+HpCMCGT7/3VQ06ski+trb9fngOUB7FTfdbn4yvX7tiYq +nt9NvQhhUMwlfenAh6IqTUCs/CPCf0gq5u5wTeq3nBIluFGdkC3eNdqcntnZPEgbdTx mpQw== X-Gm-Message-State: AElRT7E/ej+GYp/TwqTSdnvIf4uISPLLy3IE91R7RbaMlLEgkpwaGkNS 3j7f1GT+GxFamZf93gP9EjxUgROw X-Google-Smtp-Source: AIpwx48BKsKSnZCRIXf35/AC41YK3tdDwmtulMqfJVKd3pa58IlzixdxPiCXdUsrnXS+CQCHlGcfmw== X-Received: by 10.28.105.19 with SMTP id e19mr8345006wmc.3.1522857402794; Wed, 04 Apr 2018 08:56:42 -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 n21sm5864916wmi.37.2018.04.04.08.56.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Apr 2018 08:56:42 -0700 (PDT) Date: Wed, 4 Apr 2018 17:56:28 +0200 From: Adrien Mazarguil To: Thomas Monjalon , Ferruh Yigit , dev@dpdk.org Message-ID: <20180404150312.12304-1-adrien.mazarguil@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Mailer: git-send-email 2.11.0 Subject: [dpdk-dev] [PATCH v1 00/16] Flow API overhaul for switch offloads 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: Wed, 04 Apr 2018 15:56:43 -0000 As summarized in a prior RFC [1], the flow API (rte_flow) was chosen as a means to manage switch offloads supported by many devices (usually going by names such as E-Switch or vSwitch) through user-specified flow rules. Combined with the need to support encap/decap actions, this requires a change in the way flow actions are processed (in order and possibly repeated) which modifies the behavior of some of the existing actions, thus warranting a major ABI breakage. Given this ABI breakage is also required by other work submitted for the current release [2][3], this series addresses various longstanding issues with the flow API and makes minor improvements in preparation for upcoming features. Changes summary: - Additional error types. - Clearer documentation. - Improved C++ compatibility. - Exhaustive RSS action. - Consistent behavior of VLAN pattern item. - New "transfer" attribute bringing consistency to VF/PF pattern items. - Confusing "PORT" pattern item renamed "PHY_PORT", with new action counterpart. - New "PORT_ID" pattern item and action to be used with port representors. This series piggybacks on the major ABI update introduced by a prior commit [4] for DPDK 18.05 and depends on several fixes [5] which must be applied first. [1] "[RFC] Switch device offload with DPDK" http://dpdk.org/ml/archives/dev/2018-March/092513.html [2] commit 676b605182a5 ("doc: announce ethdev API change for RSS configuration") [3] "[PATCH v1 00/21] MLX5 tunnel Rx offloading" http://dpdk.org/ml/archives/dev/2018-March/092264.html [4] commit 653e038efc9b ("ethdev: remove versioning of filter control function") [5] "[PATCH v2 00/13] Bunch of flow API-related fixes" http://dpdk.org/ml/archives/dev/2018-April/095273.html Adrien Mazarguil (16): ethdev: update ABI for flow API functions ethdev: add error types to flow API ethdev: clarify flow API pattern items and actions doc: remove flow API migration section ethdev: remove DUP action from flow API ethdev: alter behavior of flow API actions ethdev: remove C99 flexible arrays from flow API ethdev: flatten RSS configuration in flow API ethdev: add hash function to RSS flow API action ethdev: add encap level to RSS flow API action ethdev: refine TPID handling in flow API ethdev: add transfer attribute to flow API ethdev: update behavior of VF/PF in flow API ethdev: rename physical port item in flow API ethdev: add physical port action to flow API ethdev: add port ID item and action to flow API app/test-pmd/cmdline_flow.c | 405 ++++++++++----- app/test-pmd/config.c | 78 +-- doc/guides/nics/tap.rst | 2 +- doc/guides/prog_guide/rte_flow.rst | 601 ++++++++--------------- doc/guides/testpmd_app_ug/testpmd_funcs.rst | 54 +- drivers/net/bnxt/bnxt_filter.c | 52 +- drivers/net/e1000/e1000_ethdev.h | 13 +- drivers/net/e1000/igb_ethdev.c | 4 +- drivers/net/e1000/igb_flow.c | 83 +++- drivers/net/e1000/igb_rxtx.c | 55 ++- drivers/net/enic/enic_flow.c | 52 +- drivers/net/i40e/i40e_ethdev.c | 57 ++- drivers/net/i40e/i40e_ethdev.h | 15 +- drivers/net/i40e/i40e_flow.c | 144 ++++-- drivers/net/ixgbe/ixgbe_ethdev.c | 4 +- drivers/net/ixgbe/ixgbe_ethdev.h | 13 +- drivers/net/ixgbe/ixgbe_flow.c | 91 +++- drivers/net/ixgbe/ixgbe_rxtx.c | 55 ++- drivers/net/mlx4/mlx4.c | 2 +- drivers/net/mlx4/mlx4_flow.c | 117 +++-- drivers/net/mlx4/mlx4_flow.h | 2 +- drivers/net/mlx4/mlx4_rxq.c | 2 +- drivers/net/mlx4/mlx4_rxtx.h | 2 +- drivers/net/mlx5/mlx5_flow.c | 317 ++++++------ drivers/net/mlx5/mlx5_rxq.c | 22 +- drivers/net/mlx5/mlx5_rxtx.h | 26 +- drivers/net/mvpp2/mrvl_flow.c | 33 +- drivers/net/sfc/sfc_flow.c | 82 +++- drivers/net/tap/tap_flow.c | 51 +- examples/ipsec-secgw/ipsec.c | 21 +- lib/librte_ether/rte_ethdev_version.map | 10 + lib/librte_ether/rte_flow.c | 68 +-- lib/librte_ether/rte_flow.h | 328 ++++++++----- 33 files changed, 1747 insertions(+), 1114 deletions(-) -- 2.11.0