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 DE53EA0471 for ; Mon, 9 Sep 2019 14:13:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CAFD81EC7E; Mon, 9 Sep 2019 14:13:24 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id EAD181EC7D for ; Mon, 9 Sep 2019 14:13:22 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us5.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 5AF8D58006B; Mon, 9 Sep 2019 12:13:21 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 9 Sep 2019 05:13:18 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4 via Frontend Transport; Mon, 9 Sep 2019 05:13:18 -0700 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id x89CDHmB012195; Mon, 9 Sep 2019 13:13:17 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id 1C0CC1613D1; Mon, 9 Sep 2019 13:13:17 +0100 (BST) From: Andrew Rybchenko To: Thomas Monjalon , Ferruh Yigit , Rasesh Mody , Shahed Shaikh , Wenzhuo Lu CC: , Ivan Ilchenko Date: Mon, 9 Sep 2019 13:13:02 +0100 Message-ID: <1568031190-16510-1-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24898.005 X-TM-AS-Result: No-3.481200-4.000000-10 X-TMASE-MatchedRID: HfPSbQIUs9lhIs7ptz8Di34neC0h7SADbakr5H8CLL+NTrsIz649BAgI aaSer6PCh3CzeKZOWHvgT8I1IuUKnyEjjeK2w8a5HcQQBuf4ZFsCn5QffvZFlVeIuu+Gkot8Gba NfEO4jWM5+h7fOIvM3Yjb8G4wATKMoaeq6KbRYfNvv0X3ufpm/D17tS9vI0pxYRgntKY2Ya/bJM bTT9K/Te1juJgzN3MHmEx6UeOGQtcp6sCplNKGMzhiciQR/+DQBTfNTtahp1oR34ro7k23naUJE uBxNtmFGkZFuy90BL78pjTJy4siiQwhA/znOS/bo7iJS6I6zaFj8vb8BkkBZMegunXInzcYWyX9 o2JyEnOKb8Z49qMcsnhjBuKiBh7ffit+wkBgi0mcVWc2a+/ju30tCKdnhB58hYfw868k05Yzqx6 DtfVZto6HM5rqDwqtT+W0lPSIJyGyiDbNQUI8vyd7fYSkC1ouUPRC08AFbem5LUAGunysGpqz5m 5cfXjC3dmD4v/134yZ5h4VGrj05WZjVb5M6OjahdeYev6ImzWyrFieOBrhBjzcWrt/fwYrRcB2Z pPnVjJuI9MGG9suFpRMZUCEHkRt X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--3.481200-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24898.005 X-MDID: 1568031202-dLR8DMu31s9z Subject: [dpdk-dev] [PATCH 0/7] ethdev: change allmulticast controls to return status 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" It is the fourth patch series to get rid of void returning functions in ethdev in accordance with deprecation notice [1]. It should be applied on top of [2] and [3]. Merge conflicts with [4] are trivial (release notes only). Functions which return void are bad since they do not provide explicit information to the caller if everything is OK or not. It is especially painful in the case of all-multicast mode since it is not always supported, there are real cases when it fails to apply and it affects traffic which is received by the port. Driver maintainrs are encouraged to review the patch which changes driver callbacks prototype. Changes are not always trivial when I tried to provide real status of the operation. I used -EAGAIN when I failed to choose better error code. The following two drivers ignore status of internal functions and definitely could be improved: net/bnx2x: bnx2x_set_rx_mode() can report failure, but it is used in other places and should be updated carefully. net/igbvf: e1000_promisc_set_vf() provides return status, but it is unclear how handle it properly. [1] https://patches.dpdk.org/patch/56969/ [2] https://patches.dpdk.org/project/dpdk/list/?series=6279 [3] https://patches.dpdk.org/project/dpdk/list/?series=6334 [4] https://patches.dpdk.org/project/dpdk/list/?series=6308 Andrew Rybchenko (1): ethdev: do nothing if all-multicast mode is applied again Ivan Ilchenko (6): ethdev: change allmulticast mode controllers to return errors net/failsafe: check code of allmulticast mode switch net/bonding: check code of allmulticast mode switch ethdev: change allmulticast callbacks to return status app/testpmd: check code of allmulticast mode switch examples/ipv4_multicast: check allmulticast enable status app/test-pmd/cmdline.c | 10 +--- app/test-pmd/testpmd.h | 1 + app/test-pmd/util.c | 16 ++++++ doc/guides/rel_notes/deprecation.rst | 1 - doc/guides/rel_notes/release_19_11.rst | 4 ++ drivers/net/atlantic/atl_ethdev.c | 14 +++-- drivers/net/axgbe/axgbe_ethdev.c | 16 ++++-- drivers/net/bnx2x/bnx2x_ethdev.c | 8 ++- drivers/net/bnxt/bnxt_ethdev.c | 26 +++++++-- drivers/net/bonding/rte_eth_bond_8023ad.c | 13 ++++- drivers/net/bonding/rte_eth_bond_pmd.c | 67 ++++++++++++++++++++--- drivers/net/cxgbe/cxgbe_ethdev.c | 12 ++-- drivers/net/cxgbe/cxgbe_pfvf.h | 4 +- drivers/net/dpaa/dpaa_ethdev.c | 8 ++- drivers/net/dpaa2/dpaa2_ethdev.c | 14 +++-- drivers/net/e1000/em_ethdev.c | 14 +++-- drivers/net/e1000/igb_ethdev.c | 26 ++++++--- drivers/net/enetc/enetc_ethdev.c | 10 +++- drivers/net/enic/enic_ethdev.c | 22 ++++++-- drivers/net/failsafe/failsafe_ether.c | 8 ++- drivers/net/failsafe/failsafe_ops.c | 52 ++++++++++++++++-- drivers/net/fm10k/fm10k_ethdev.c | 28 ++++++---- drivers/net/i40e/i40e_ethdev.c | 22 +++++--- drivers/net/i40e/i40e_ethdev_vf.c | 20 +++++-- drivers/net/i40e/i40e_vf_representor.c | 8 +-- drivers/net/iavf/iavf_ethdev.c | 20 +++++-- drivers/net/ice/ice_ethdev.c | 30 +++++++--- drivers/net/ipn3ke/ipn3ke_ethdev.h | 4 +- drivers/net/ipn3ke/ipn3ke_representor.c | 8 ++- drivers/net/ixgbe/ixgbe_ethdev.c | 53 ++++++++++++++---- drivers/net/liquidio/lio_ethdev.c | 12 ++-- drivers/net/mlx4/mlx4.h | 4 +- drivers/net/mlx4/mlx4_ethdev.c | 14 +++-- drivers/net/mlx5/mlx5.h | 4 +- drivers/net/mlx5/mlx5_rxmode.c | 38 ++++++++++--- drivers/net/mvpp2/mrvl_ethdev.c | 28 +++++++--- drivers/net/netvsc/hn_ethdev.c | 8 +-- drivers/net/netvsc/hn_var.h | 4 +- drivers/net/netvsc/hn_vf.c | 8 +-- drivers/net/nfb/nfb_rxmode.c | 10 +++- drivers/net/nfb/nfb_rxmode.h | 8 ++- drivers/net/octeontx2/otx2_ethdev.h | 4 +- drivers/net/octeontx2/otx2_ethdev_ops.c | 8 ++- drivers/net/qede/qede_ethdev.c | 17 ++++-- drivers/net/sfc/sfc_ethdev.c | 8 +-- drivers/net/szedata2/rte_eth_szedata2.c | 6 +- drivers/net/tap/rte_eth_tap.c | 52 ++++++++++++++---- drivers/net/virtio/virtio_ethdev.c | 24 +++++--- drivers/net/vmxnet3/vmxnet3_ethdev.c | 12 ++-- examples/ipv4_multicast/main.c | 6 +- lib/librte_ethdev/rte_ethdev.c | 61 ++++++++++++++++----- lib/librte_ethdev/rte_ethdev.h | 14 ++++- lib/librte_ethdev/rte_ethdev_core.h | 4 +- 53 files changed, 654 insertions(+), 239 deletions(-) -- 2.17.1