From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0080.outbound.protection.outlook.com [104.47.0.80]) by dpdk.org (Postfix) with ESMTP id 278F77CAA for ; Mon, 4 Sep 2017 09:12:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=EExSED+G6IAwXuGQEHnACPUPb4uWm6svk1MSaKMd3nM=; b=vA3nbGzQjEBkyLr8XWHX5Rpocr2r3zclho1LK4qDbDRtSmdNRyMH/0VUto9P1xzfEShZ69PsHdExpgNOlGFpGZNcZI101l8+PZY8RYYAJKSrtDTvnM651pUgIVP5Yz/01JrjbmF3d5NOBbvRV7bg0AXNPJFMCrF2/3zKaTaQw5s= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (82.166.227.17) by HE1PR05MB3148.eurprd05.prod.outlook.com (2603:10a6:7:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Mon, 4 Sep 2017 07:12:24 +0000 From: Shahaf Shuler To: thomas@monjalon.net Cc: dev@dpdk.org Date: Mon, 4 Sep 2017 10:12:14 +0300 Message-Id: X-Mailer: git-send-email 2.12.0 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [82.166.227.17] X-ClientProxiedBy: HE1PR07CA0005.eurprd07.prod.outlook.com (2603:10a6:7:67::15) To HE1PR05MB3148.eurprd05.prod.outlook.com (2603:10a6:7:36::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 927aadc4-f2ae-4aee-6c9c-08d4f3644b6b X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:HE1PR05MB3148; X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 3:H31ydcXQ8t3UPTLQMf5QNCA5GMK43ZIopShO160Kz3ZqSp7+78FfAeiI06dK9nP3lNuEYsq+7HW7YfJoYK24NvGi4R6UkKfqmupOk5egfL0LYzltPYR0YW8RDz4Tl0CVE6OvDuftWjG3Qi+2a1vMf/m+Dux3ufe3qbs6LxEBfCq7sjN5SUa/3ZlKYCbaxiLqnwQ3UOFosqvef1Q0sqzJYWb8maTYGlSPZ/6IAPM28Ez1AFcxJ2gTnh93NDrvmzij; 25:2iE+K9nxGlJpVD+1BsYdrlWLEefTHp95NiggBUYNr17mkaUP8go8kHXR0jfqa1ZjIqXjjF07DsYJAZOrscznWZKAhAUJqmMnJoIPEcPRwO/4jgaDvALtt4D9p2O0Lv2wNOrX7888QSYmOKDHLJnzN6WOwp4I3+3RKveUfDWfWrbKNzFx4txmzpN7Gm2S5AdivvXVrki51eEJW96LwKTtopWbIewF+O35Q6MtxBYNtbfbXBlTdN2ajbEdYGmdyvXnaIGfT0NszINXSy78jxWcfREpx+2x43NfneksLQW2SsXQ5+NE/gGgPLfIFvG81+w/psueWBIA422DqIm2klRBGQ==; 31:FxxpjFcWRJEGOsyyCpgvOw/uQl5WfaekRHFJ+l+yNnIPmUSClYDLCmozctFyO8RlaSs5BHIj8J3cuzhrNFpexEmUkpfovB7sMYxiQFTaQ/K9dWkzU8Tgpa/R+O2BcpNQKq0/QCncH64Cb2fETRMqcoyClbwJ3SQS+qsIkarmsB/gnUIUbHqa+f90k3RHSEWGaHXlDY0Ya/I5F6kma22N8n4Z4CveV8Cd+uWsSGfw/ww= X-MS-TrafficTypeDiagnostic: HE1PR05MB3148: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 20:Trt1b0q6PMkYgterc8JqMq6DvWpg2vuCz//b4Bfyz1g2xiHOpP0QLBEDO5MtuKK3NRzu4+nXIGE8/l1eLmHbJ4rh/MVgqSJNP58+4THDa+WbhD2IXP1f65K2kLgdsYja4jZTwvKG1MgezHPV+5XNIQc+9tn/3nYWnd9hiT+HdX23EjgYXm4iyibPQ+VZFFG6sKf28uZBC7+i0RJdLQFmXUYbrHYiwRzPq3eDc26ubiKaVZ0YYha0MLg1kp9PkZumHs1PyLDciIkcpLYGJm6ce5hWQFln70UXEWP1MeKkKSr1iBNFggXCjeLIZeJO7aqNmEObLdIQkszRRYTBluxCBHZalUP9OTJwUJM9dXWbD2HPvvzwSgcjIXyO6x3JbTgygZ7FSI2jMOR+dH7mhmOAxdEdufJNCP8Ssh4VFk9amyoTjkUpUhOhHKWB9QtTjUHiI2GrC7Gna71h4hdhwHcoTnZLiyU7ueVybnav85xg7qbD4D/haKI6VhJhNn3XM9wu; 4:RwoWExPwdlkLJLG38rKCbQO9XulwHymVvSQs5ToBQFPieUFFi52k3iIuEGV9yp6zcrSFnczyLHLh+EXqMxtE8RxuS0hsorfvySYX+/UupbioPgHUdOW0naZNbJKIukygicA/fe9CPIgd+zXvJt8bm8cPVwSN+M9W4tuWTXzIDLvs+0per4Ynx+ku/jKFfBARNUow37lc1savvhclf60p4HTAfsKeNngZsZ7NWIjnbXNor1oxd6kpswAmEdOfS/SDxFPBO8FBCcu8eRxps/m76XtuGpBImunHWvjdfQVSCCc= X-Exchange-Antispam-Report-Test: UriScan:(17755550239193); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR05MB3148; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR05MB3148; X-Forefront-PRVS: 0420213CCD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39860400002)(189002)(199003)(105586002)(36756003)(69596002)(97736004)(4326008)(305945005)(53376002)(5003940100001)(7736002)(6916009)(106356001)(50226002)(966005)(53936002)(86362001)(5660300001)(68736007)(2361001)(6666003)(110136004)(2351001)(42186005)(55016002)(21086003)(478600001)(6306002)(33646002)(189998001)(33026002)(3846002)(101416001)(6116002)(2906002)(50986999)(48376002)(50466002)(81156014)(81166006)(25786009)(66066001)(47776003)(8676002)(7350300001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB3148; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR05MB3148; 23:ZQlIBgURzA0Q/jJf769MyoDonjcU6y1K5hvoy2Egs?= =?us-ascii?Q?BCSXeKdKj/slgyLglHM9X0d9ByjoxwT+wHmBI4ZvDgoZjLzh5ktembATZhqb?= =?us-ascii?Q?44/NquQ3k5DPdGVqXfJbM7kcvuBk0JJgxiK60r8sn5YvZr90GcpS9ftaEnuG?= =?us-ascii?Q?+UsZBKmbEUl5+VXv2YvZktBTtkQB5qLbsaLmNIYgvNBFuhlach8aD1g1Ll4S?= =?us-ascii?Q?JUvQQKko9XyJUxxDVPWLapewg/h9B92yZEsgtfmYPJYv62cGxVZtchSNjVQe?= =?us-ascii?Q?a5ICn99d6IxZpzQ8AMxeYij3dNLTIXhbdd+ITW59kykDLHmqavozIx7wC1Uj?= =?us-ascii?Q?9NOgX4GHfocG/0JSiYs6eMxLJgAVu3mMxVmC3W6eKKHKlr3PH+la4j+/F4/q?= =?us-ascii?Q?ha+a03PN8wiCUiYqes+eGgwbHfNG7ZzqA2HcIeevqCk3UToOQMNVcJOvboUD?= =?us-ascii?Q?K1wotW7nMeUEovuGATOywW3im1R8XkCX/McIpX6+nP0zs8mIZHcPBgcYRBC2?= =?us-ascii?Q?akn7iLwqgHr35QHMLyFf/+BfHjKA9MTy7i9iWoQ44W9WHOITsGw3l3ekwmaz?= =?us-ascii?Q?MTKybdsiNcuxT8eEH1OoU8OJzPzPPcKyp0CIG8Wxew0m/PerIpUlIcFdygch?= =?us-ascii?Q?eIVj+E3OWz0xz/ctzAcTwimNpiUYS8IKQfYBjugAqXNnDFR4zMVCMr2vjDNQ?= =?us-ascii?Q?lRSvPN5V5zjRvrxj2dQUqUrrSmsFS4Yv8q21gqqPf2YaBkxSphn3Ue8mdDit?= =?us-ascii?Q?7gRldAjMj3QOwLCPGKzzG8cYS+8onyvTVHpgUCyp8lpYFHAr3rgkN0t4mMZz?= =?us-ascii?Q?M0XOC2OYxu1h/hpbAb1DBQHjAta88r09NPnYvmuSDbvggQjZS/g4jSEg6b/h?= =?us-ascii?Q?6gzsLaZoNa6/dceabGjsRkzMqyOZ4L4ouUb7BpDEFUtlAJWTQ0Kx8d6kSdfg?= =?us-ascii?Q?p2xLwXQJ7TGNpUCXzMoF7zY0US3UXIp8ciRVYBuzfeciQ7n+Ip3GgBpTSw4+?= =?us-ascii?Q?9xv52kLATbIz1wMsRNl5XCEFCNEq1BohJO8zWGWLSrPPk7MCY/jZjoJK85NF?= =?us-ascii?Q?5wda7s+9urlFUMyTkC1qs60mElfHAWYkxvRQqsOX6OzJj3Gtd/+a6wbGfZvA?= =?us-ascii?Q?3mSddYPswZghzwExg4fRU9MGKlJFsOwqD/oDpdd72qzU1oE3YYt2lyOCbhxq?= =?us-ascii?Q?wJEnqIY/7DSjzs=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 6:L8HlHaLulHOeZqE5opQv2ROz4arlJn4rouJAIRzmfv1S1oU1lYihkpjCcvZZqvoEkGc1AWPlEdKcwMJ+j1LFP7Gkbhz1p5xS2xH9p+sdlBi+GOY76smYfuiohCyy4UcH9jZYAQQWD/r9oB+guvNIp+bTO8JDSoe7RMVNH8OtmqNKhs3cPEm04FyieU2bnJQJY5knWBmYLKJxhEiB6k+Zo8g4eDhYgIPgayR6f1zvQqMSfddfjDdJKwEGWLqQfF1n9aOBlnUBVg4B2IZ1lSvayzERUlg+6xyTvoLo2FgAhmgwoHEsQMZk1HnHzeFnSWMOFzQ2raU9uWadMrMSIJDXxg==; 5:hfNugn47VikwkmdC4m8qTTMi+pxKF4GnVEwONIO7BhrLpUMgqi/autnTa8afPPZtKf6N9n238XPr7jF3LJDCoDgkX2E4FpBN2qcU1mO6Pkv2ZV7K39/i0hrX3g7e/E63nrasN78NmUMgqAF8vShOVA==; 24:bbSC962aoOAz7rTRC9PPySYa9/FBk6MJm4EdhhvsUGCrvVqYcYRmQbPGX7c9itgfWw5OjPcoZWE3f7NAlzPJkP+s7yTeZ+N0k4us2h0k6ws=; 7:jtKBqBIWXsvb1Cjm9qLN7SyF/NjeHhKao6+nFS+vfrme1/Q6RxOAKCru9BNAG80Fnv7KUYUff84TaTAWPy4PK77/Ex1A0MFMi6seT4I2CPgaH+H2WpWKGljctCf+YojmLyN5THNDNlelpZkiZXx1/A08nyFvc1df9u2qPFN91XhDaY7WusuW6Olkx3T8EvdGK7TrkItcDYpXTr2JD5z80c3iZQnD/8nL8GYNfjhslvw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2017 07:12:24.9474 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB3148 Subject: [dpdk-dev] [PATCH 0/4] ethdev new offloads 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: Mon, 04 Sep 2017 07:12:27 -0000 Tx offloads configuration is per queue. Tx offloads are enabled by default, and can be disabled using ETH_TXQ_FLAGS_NO* flags. This behaviour is not consistent with the Rx side where the Rx offloads configuration is per port. Rx offloads are disabled by default and enabled according to bit field in rte_eth_rxmode structure. Moreover, considering more Tx and Rx offloads will be added over time, the cost of managing them all inside the PMD will be tremendous, as the PMD will need to check the matching for the entire offload set for each mbuf it handles. In addition, on the current approach each Rx offload added breaks the ABI compatibility as it requires to add entries to existing bit-fields. The series address above issues by defining a new offloads API. With the new API, Tx and Rx offloads configuration is per queue. The offloads are disabled by default. Each offload can be enabled or disabled using the existing DEV_TX_OFFLOADS_* or DEV_RX_OFFLOADS_* flags. Such API will enable to easily add or remove offloads, without breaking the ABI compatibility. The new API does not have an equivalent for the below Tx flags: * ETH_TXQ_FLAGS_NOREFCOUNT * ETH_TXQ_FLAGS_NOMULTMEMP The reason is that those flags are not to manage offloads, rather some guarantee from application on the way it uses mbufs, therefore could not be present as part of DEV_TX_OFFLOADS_*. Such flags are useful only for benchmarks, and therefore provide a non-realistic performance for DPDK customers using simple benchmarks for evaluation. Leveraging the work being done in this series to clean up those flags. In order to provide a smooth transition between the APIs the following actions were taken: * The old offloads API is kept for the meanwhile. * New capabilities were added for PMD to advertize it has moved to the new offloads API. * Helper function which copy from old to new API were added to ethdev, enabling the PMD to support only one of the APIs. Per discussion made on the RFC of this series [1], the integration plan which was decided is to do the transition in two phases: * ethdev API will move on 17.11. * Apps and examples will move on 18.02. This to enable PMD maintainers sufficient time to adopt the new API. [1] http://dpdk.org/ml/archives/dev/2017-August/072643.html Shahaf Shuler (4): ethdev: rename Rx and Tx configuration structs ethdev: introduce Rx queue offloads API ethdev: introduce Tx queue offloads API ethdev: add helpers to move to the new offloads API app/test-pmd/config.c | 4 +- app/test-pmd/testpmd.h | 4 +- doc/guides/nics/features.rst | 27 +++-- drivers/net/af_packet/rte_eth_af_packet.c | 4 +- drivers/net/ark/ark_ethdev_rx.c | 4 +- drivers/net/ark/ark_ethdev_rx.h | 2 +- drivers/net/ark/ark_ethdev_tx.c | 2 +- drivers/net/ark/ark_ethdev_tx.h | 2 +- drivers/net/avp/avp_ethdev.c | 8 +- drivers/net/bnx2x/bnx2x_rxtx.c | 4 +- drivers/net/bnx2x/bnx2x_rxtx.h | 4 +- drivers/net/bnxt/bnxt_ethdev.c | 4 +- drivers/net/bnxt/bnxt_rxq.c | 2 +- drivers/net/bnxt/bnxt_rxq.h | 2 +- drivers/net/bnxt/bnxt_txq.c | 2 +- drivers/net/bnxt/bnxt_txq.h | 2 +- drivers/net/bonding/rte_eth_bond_pmd.c | 7 +- drivers/net/bonding/rte_eth_bond_private.h | 4 +- drivers/net/cxgbe/cxgbe_ethdev.c | 4 +- drivers/net/dpaa2/dpaa2_ethdev.c | 4 +- drivers/net/e1000/e1000_ethdev.h | 8 +- drivers/net/e1000/em_rxtx.c | 4 +- drivers/net/e1000/igb_ethdev.c | 8 +- drivers/net/e1000/igb_rxtx.c | 4 +- drivers/net/ena/ena_ethdev.c | 28 ++--- drivers/net/enic/enic_ethdev.c | 6 +- drivers/net/failsafe/failsafe_ops.c | 4 +- drivers/net/fm10k/fm10k_ethdev.c | 12 +- drivers/net/i40e/i40e_ethdev.c | 4 +- drivers/net/i40e/i40e_ethdev_vf.c | 4 +- drivers/net/i40e/i40e_rxtx.c | 4 +- drivers/net/i40e/i40e_rxtx.h | 4 +- drivers/net/ixgbe/ixgbe_ethdev.c | 8 +- drivers/net/ixgbe/ixgbe_ethdev.h | 4 +- drivers/net/ixgbe/ixgbe_rxtx.c | 4 +- drivers/net/kni/rte_eth_kni.c | 4 +- drivers/net/liquidio/lio_ethdev.c | 8 +- drivers/net/mlx4/mlx4.c | 12 +- drivers/net/mlx5/mlx5_rxq.c | 4 +- drivers/net/mlx5/mlx5_rxtx.h | 6 +- drivers/net/mlx5/mlx5_txq.c | 4 +- drivers/net/nfp/nfp_net.c | 12 +- drivers/net/null/rte_eth_null.c | 4 +- drivers/net/pcap/rte_eth_pcap.c | 4 +- drivers/net/qede/qede_ethdev.c | 2 +- drivers/net/qede/qede_rxtx.c | 4 +- drivers/net/qede/qede_rxtx.h | 4 +- drivers/net/ring/rte_eth_ring.c | 20 ++-- drivers/net/sfc/sfc_ethdev.c | 4 +- drivers/net/sfc/sfc_rx.c | 4 +- drivers/net/sfc/sfc_rx.h | 2 +- drivers/net/sfc/sfc_tx.c | 4 +- drivers/net/sfc/sfc_tx.h | 2 +- drivers/net/szedata2/rte_eth_szedata2.c | 4 +- drivers/net/tap/rte_eth_tap.c | 4 +- drivers/net/thunderx/nicvf_ethdev.c | 8 +- drivers/net/vhost/rte_eth_vhost.c | 4 +- drivers/net/virtio/virtio_ethdev.c | 2 +- drivers/net/virtio/virtio_ethdev.h | 4 +- drivers/net/virtio/virtio_rxtx.c | 8 +- drivers/net/vmxnet3/vmxnet3_ethdev.h | 4 +- drivers/net/vmxnet3/vmxnet3_rxtx.c | 4 +- drivers/net/xenvirt/rte_eth_xenvirt.c | 20 ++-- examples/ip_fragmentation/main.c | 2 +- examples/ip_pipeline/app.h | 4 +- examples/ip_reassembly/main.c | 2 +- examples/ipsec-secgw/ipsec-secgw.c | 2 +- examples/ipv4_multicast/main.c | 2 +- examples/l3fwd-acl/main.c | 2 +- examples/l3fwd-power/main.c | 2 +- examples/l3fwd-vf/main.c | 2 +- examples/l3fwd/main.c | 2 +- examples/netmap_compat/lib/compat_netmap.c | 4 +- examples/performance-thread/l3fwd-thread/main.c | 2 +- examples/ptpclient/ptpclient.c | 2 +- examples/qos_sched/init.c | 4 +- examples/tep_termination/vxlan_setup.c | 4 +- examples/vhost/main.c | 4 +- examples/vhost_xen/main.c | 2 +- examples/vmdq/main.c | 2 +- lib/librte_ether/rte_ethdev.c | 115 ++++++++++++++++++- lib/librte_ether/rte_ethdev.h | 83 +++++++++++-- test/test-pipeline/init.c | 4 +- test/test/test_kni.c | 4 +- test/test/test_link_bonding.c | 4 +- test/test/test_pmd_perf.c | 4 +- test/test/virtual_pmd.c | 8 +- 87 files changed, 409 insertions(+), 225 deletions(-) -- 2.12.0