From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 86C492C01 for ; Thu, 29 Mar 2018 08:39:21 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Mar 2018 23:39:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,375,1517904000"; d="scan'208";a="27919503" Received: from dpdk27.sh.intel.com ([10.67.111.90]) by fmsmga007.fm.intel.com with ESMTP; 28 Mar 2018 23:39:18 -0700 From: Qi Zhang To: adrien.mazarguil@6wind.com Cc: dev@dpdk.org, declan.doherty@intel.com, sugesh.chandran@intel.com, michael.j.glynn@intel.com, yu.y.liu@intel.com, konstantin.ananyev@intel.com, bruce.richardson@intel.com, Qi Zhang Date: Wed, 28 Mar 2018 19:29:36 -0400 Message-Id: <1522279780-34842-1-git-send-email-qi.z.zhang@intel.com> X-Mailer: git-send-email 2.7.4 Subject: [dpdk-dev] [PATCH 0/4] rte_flow extension for vSwitch acceleration 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: Thu, 29 Mar 2018 06:39:22 -0000 This patch extend rte_flow API. The purpose is to provide necessary programming interface for virtual switch software (such as OVS) to take advantage of incoming device's vSwitch acceleration capability when using DPDK as data plane. Below is summary of changes: 1. Support to specify flow's destination as an ethdev interface. Add action RTE_FLOW_ACTION_TYPE_ETHDEV_PORT, use port_id as the identification of the destitation. A typical use case is, with a smart NIC used for vSwitch acceleration, flow is defined to redirect packet between switch port that is managed by a Port Representor. 2. Enhanced flow statistics query. Enhanced action RTE_FLOW_ACTION_COUNT by adding last hit timestamp tracking which is the requirement from OVS. 3. Add protocol headers which will be supported by incoming device. New protocal headers include IPV4 ARP, IPV6 ICMP , IPV6 extent header. 4. Add packet modification actions which will be supported by incoming device. Add new actions that be used to modify packet content with generic semantic: RTE_FLOW_ACTION_TYPE_FIELD_UPDATE: update specific field of packet RTE_FLWO_ACTION_TYPE_FIELD_INCREMENT: increament specific field of packet RTE_FLWO_ACTION_TYPE_FIELD_DECREMENT: decreament specific field of packet RTE_FLWO_ACTION_TYPE_FIELD_COPY: copy data from one field to another in packet. All action use struct rte_flow_item parameter to match the pattern that going to be modified, if no pattern match, the action just be skipped. These action are non-terminating action. they will not impact the fate of the packets, since pattern match is expected to be performed before packet be modified. Note: - The driver to demonstrate the new APIs is still in development, but we hope it could be accepted early to make OVS integration smoothly. - Testpmd command line support does not be included and will be submitted seperately in future. Qi Zhang (4): ether: add flow action to redirect packet in a switch domain ether: add flow last hit query support ether: add more protocol support in flow API ether: add packet modification aciton in flow API doc/guides/prog_guide/rte_flow.rst | 111 ++++++++++++++++ lib/librte_ether/rte_flow.h | 258 ++++++++++++++++++++++++++++++++++++- 2 files changed, 368 insertions(+), 1 deletion(-) -- 2.7.4