From patchwork Wed Oct 9 15:33:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavan Nikhilesh Bhagavatula X-Patchwork-Id: 60825 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B37D91E961; Wed, 9 Oct 2019 17:34:06 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 7BD8F1E960 for ; Wed, 9 Oct 2019 17:34:05 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x99FT377005312; Wed, 9 Oct 2019 08:34:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding; s=pfpt0818; bh=3QrGB6Sq+EmTreZzv8k+XYPNeZH7Peoj6t82P9wGpRA=; b=AtLN91kOYyBInfxmjrDjTd7Dj0PH7vny9cfaigoaL15SOX1jI0XVoNVXJ+f2nbnaTPfI FTqZEqAcDHXsn/o2NhjTnX2McObhXasDMqA6P87pl6evERCC596ViNbnf+w8Wy2D0dMd 0T7OqZDfQmfTn8slIwv+wY9JX1IRww3FX+J6ISE3x77AAEfsuGcQ49CgwvhurpXl+ZJL PbtJAn41c2I31NqjHbwcpEqaM+Z4n6wxp0CRCT2jl+c6iq3RVWryakN1mmU6WFRHfeof zw3JHFmz9VkiLYNuqS035fl9+Es/z+cmmU7JkqgySzc8TQ8dcz/KNPMP8GDqY3GF5HLJ Og== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0b-0016f401.pphosted.com with ESMTP id 2vhdxbs0gg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 09 Oct 2019 08:34:02 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 9 Oct 2019 08:34:01 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Wed, 9 Oct 2019 08:34:01 -0700 Received: from BG-LT7430.marvell.com (bg-lt7430.marvell.com [10.28.17.68]) by maili.marvell.com (Postfix) with ESMTP id DCBF93F703F; Wed, 9 Oct 2019 08:33:58 -0700 (PDT) From: To: , CC: , Pavan Nikhilesh Date: Wed, 9 Oct 2019 21:03:49 +0530 Message-ID: <20191009153357.926-1-pbhagavatula@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191007065155.1756-1-pbhagavatula@marvell.com> References: <20191007065155.1756-1-pbhagavatula@marvell.com> MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-09_07:2019-10-08,2019-10-09 signatures=0 Subject: [dpdk-dev] [PATCH v10 0/7] ethdev: add new Rx offload flags 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" From: Pavan Nikhilesh Add new Rx offload flags `DEV_RX_OFFLOAD_RSS_HASH` and `DEV_RX_OFFLOAD_FLOW_MARK`. These flags can be used to enable/disable PMD writes to rte_mbuf fields `hash.rss` and `hash.fdir.hi` and also `ol_flags:PKT_RX_RSS` and `ol_flags:PKT_RX_FDIR`. Add new packet type set function `rte_eth_dev_set_supported_ptypes`, allows application to inform PMDs about the packet types it is interested in. Based on ptypes requested by application PMDs can optimize the Rx path. For example, if a given PMD doesn't support any packet types that the application is interested in then the application can disable[1] writes to `mbuf.packet_type` done by the PMD and use a software ptype parser. [1] rte_eth_dev_set_supported_ptypes(*port_id*, RTE_PTYPE_UNKNOWN, NULL, 0); v10 Changes: ----------- - Modify ptype_mask validation in set_supported_ptypes.(Andrew) v9 Changes: ---------- - Add ptype_mask validation in set_supported_ptypes.(Andrew) - Make description more verbose. v8 Changes: ---------- - Make description more verbose. - Set RTE_PTYPE_UNKNOWN in set_ptypes array when either get ot set ptypes is not supported by ethernet device. v7 Changes: ---------- - Fix unused variable in net/octeontx2 v6 Changes: ---------- - Add additional checks for set supported ptypes.(Andrew) - Clarify `rte_eth_dev_set_supported_ptypes` documentation. - Remove DEV_RX_OFFLOAD_FLOW_MARK emulation from net/octeontx2. v5 Changes: ---------- - Fix typos. v4 Changes: ---------- - Set the last element in set_ptype array as RTE_PTYPE_UNKNOWN to mark the end of array. - Fix invalid set ptype function call in examples. - Remove setting rte_eth_dev_set_supported_ptypes to UNKNOWN in l3fwd-power. v3 Changes: ---------- - Add missing release notes. (Andrew) - Re-word various descriptions. - Fix ptype set logic. v2 Changes: ---------- - Update release notes. (Andrew) - Redo commit logs. (Andrew) - Disable ptype parsing for unsupported examples. (Jerin) - Disable RSS write only in generic mode eventdev_pipeline. (Jerin) - Modify set_supported_ptypes function to return successfuly set mask instead of failure. - Dropped set_supported_ptypes to drivers by handling in library layer, interested PMD can add it in. Pavan Nikhilesh (7): ethdev: add set ptype function ethdev: add mbuf RSS update as an offload ethdev: add flow action type update as an offload drivers/net: update Rx RSS hash offload capabilities drivers/net: update Rx flow flag and mark capabilities examples/eventdev_pipeline: add new Rx RSS hash offload examples: disable Rx packet type parsing doc/guides/nics/features.rst | 22 +++- doc/guides/rel_notes/release_19_11.rst | 24 ++++ drivers/net/bnxt/bnxt_ethdev.c | 4 +- drivers/net/cxgbe/cxgbe.h | 3 +- drivers/net/dpaa/dpaa_ethdev.c | 3 +- drivers/net/dpaa2/dpaa2_ethdev.c | 3 +- drivers/net/e1000/igb_rxtx.c | 3 +- drivers/net/enic/enic_res.c | 4 +- drivers/net/fm10k/fm10k_ethdev.c | 3 +- drivers/net/hinic/hinic_pmd_ethdev.c | 3 +- drivers/net/i40e/i40e_ethdev.c | 4 +- drivers/net/iavf/iavf_ethdev.c | 4 +- drivers/net/ice/ice_ethdev.c | 4 +- drivers/net/ixgbe/ixgbe_rxtx.c | 4 +- drivers/net/liquidio/lio_ethdev.c | 3 +- drivers/net/mlx4/mlx4_rxq.c | 3 +- drivers/net/mlx5/mlx5_rxq.c | 4 +- drivers/net/netvsc/hn_rndis.c | 3 +- drivers/net/nfp/nfp_net.c | 3 +- drivers/net/octeontx2/otx2_ethdev.c | 3 +- drivers/net/octeontx2/otx2_ethdev.h | 16 +-- drivers/net/octeontx2/otx2_flow.c | 9 +- drivers/net/octeontx2/otx2_flow.h | 1 - drivers/net/octeontx2/otx2_flow_parse.c | 5 +- drivers/net/qede/qede_ethdev.c | 3 +- drivers/net/sfc/sfc_ef10_essb_rx.c | 3 +- drivers/net/sfc/sfc_ef10_rx.c | 3 +- drivers/net/sfc/sfc_rx.c | 3 +- drivers/net/thunderx/nicvf_ethdev.h | 3 +- drivers/net/vmxnet3/vmxnet3_ethdev.c | 3 +- examples/bbdev_app/main.c | 1 + examples/bond/main.c | 2 + examples/distributor/Makefile | 1 + examples/distributor/main.c | 1 + examples/distributor/meson.build | 1 + examples/eventdev_pipeline/main.c | 115 +---------------- examples/eventdev_pipeline/meson.build | 1 + .../pipeline_worker_generic.c | 118 ++++++++++++++++++ .../eventdev_pipeline/pipeline_worker_tx.c | 114 +++++++++++++++++ examples/exception_path/Makefile | 1 + examples/exception_path/main.c | 1 + examples/exception_path/meson.build | 1 + examples/flow_classify/flow_classify.c | 1 + examples/flow_filtering/Makefile | 1 + examples/flow_filtering/main.c | 1 + examples/flow_filtering/meson.build | 1 + examples/ip_pipeline/link.c | 1 + examples/ip_reassembly/Makefile | 1 + examples/ip_reassembly/main.c | 2 + examples/ip_reassembly/meson.build | 1 + examples/ipsec-secgw/ipsec-secgw.c | 2 + examples/ipv4_multicast/Makefile | 1 + examples/ipv4_multicast/main.c | 2 + examples/ipv4_multicast/meson.build | 1 + examples/kni/main.c | 1 + examples/l2fwd-cat/Makefile | 1 + examples/l2fwd-cat/l2fwd-cat.c | 1 + examples/l2fwd-cat/meson.build | 1 + examples/l2fwd-crypto/main.c | 2 + examples/l2fwd-jobstats/Makefile | 1 + examples/l2fwd-jobstats/main.c | 2 + examples/l2fwd-jobstats/meson.build | 1 + examples/l2fwd-keepalive/Makefile | 1 + examples/l2fwd-keepalive/main.c | 2 + examples/l2fwd-keepalive/meson.build | 1 + examples/l2fwd/Makefile | 1 + examples/l2fwd/main.c | 2 + examples/l2fwd/meson.build | 1 + examples/l3fwd-acl/Makefile | 1 + examples/l3fwd-acl/main.c | 2 + examples/l3fwd-acl/meson.build | 1 + examples/l3fwd-vf/Makefile | 1 + examples/l3fwd-vf/main.c | 2 + examples/l3fwd-vf/meson.build | 1 + examples/link_status_interrupt/Makefile | 1 + examples/link_status_interrupt/main.c | 2 + examples/link_status_interrupt/meson.build | 1 + examples/load_balancer/Makefile | 1 + examples/load_balancer/init.c | 2 + examples/load_balancer/meson.build | 1 + examples/packet_ordering/Makefile | 1 + examples/packet_ordering/main.c | 1 + examples/packet_ordering/meson.build | 1 + examples/ptpclient/Makefile | 1 + examples/ptpclient/meson.build | 1 + examples/ptpclient/ptpclient.c | 1 + examples/qos_meter/Makefile | 1 + examples/qos_meter/main.c | 2 + examples/qos_meter/meson.build | 1 + examples/qos_sched/Makefile | 1 + examples/qos_sched/init.c | 1 + examples/qos_sched/meson.build | 1 + examples/quota_watermark/qw/Makefile | 1 + examples/quota_watermark/qw/init.c | 1 + examples/rxtx_callbacks/main.c | 1 + examples/server_node_efd/server/Makefile | 1 + examples/server_node_efd/server/init.c | 1 + examples/skeleton/Makefile | 1 + examples/skeleton/basicfwd.c | 1 + examples/skeleton/meson.build | 1 + examples/tep_termination/Makefile | 1 + examples/tep_termination/meson.build | 1 + examples/tep_termination/vxlan_setup.c | 1 + examples/vhost/Makefile | 1 + examples/vhost/main.c | 1 + examples/vm_power_manager/Makefile | 1 + examples/vm_power_manager/main.c | 1 + examples/vm_power_manager/meson.build | 1 + examples/vmdq/Makefile | 1 + examples/vmdq/main.c | 1 + examples/vmdq/meson.build | 1 + examples/vmdq_dcb/Makefile | 1 + examples/vmdq_dcb/main.c | 1 + examples/vmdq_dcb/meson.build | 1 + lib/librte_ethdev/rte_ethdev.c | 86 +++++++++++++ lib/librte_ethdev/rte_ethdev.h | 39 ++++++ lib/librte_ethdev/rte_ethdev_core.h | 19 +++ lib/librte_ethdev/rte_ethdev_version.map | 3 + lib/librte_ethdev/rte_flow.h | 6 +- 119 files changed, 590 insertions(+), 160 deletions(-) --- 2.17.1