From patchwork Mon Mar 14 15:18:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ilya Maximets X-Patchwork-Id: 597094 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from archives.nicira.com (archives.nicira.com [96.126.127.54]) by ozlabs.org (Postfix) with ESMTP id 3qP1c83ks9z9t3Y for ; Tue, 15 Mar 2016 02:18:48 +1100 (AEDT) Received: from archives.nicira.com (localhost [127.0.0.1]) by archives.nicira.com (Postfix) with ESMTP id 83A9410275; Mon, 14 Mar 2016 08:18:41 -0700 (PDT) X-Original-To: dev@openvswitch.org Delivered-To: dev@openvswitch.org Received: from mx3v3.cudamail.com (mx3.cudamail.com [64.34.241.5]) by archives.nicira.com (Postfix) with ESMTPS id 579B91026C for ; Mon, 14 Mar 2016 08:18:39 -0700 (PDT) Received: from bar6.cudamail.com (localhost [127.0.0.1]) by mx3v3.cudamail.com (Postfix) with ESMTPS id C6EF2161771 for ; Mon, 14 Mar 2016 09:18:38 -0600 (MDT) X-ASG-Debug-ID: 1457968718-0b32372fb12770c0001-byXFYA Received: from mx3-pf2.cudamail.com ([192.168.14.1]) by bar6.cudamail.com with ESMTP id 0DzGIFjVxJsvx4kJ (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 14 Mar 2016 09:18:38 -0600 (MDT) X-Barracuda-Envelope-From: i.maximets@samsung.com X-Barracuda-RBL-Trusted-Forwarder: 192.168.14.1 Received: from unknown (HELO mailout1.w1.samsung.com) (210.118.77.11) by mx3-pf2.cudamail.com with ESMTPS (DHE-RSA-AES128-SHA encrypted); 14 Mar 2016 15:18:37 -0000 Received-SPF: none (mx3-pf2.cudamail.com: domain at samsung.com does not designate permitted sender hosts) X-Barracuda-Apparent-Source-IP: 210.118.77.11 X-Barracuda-RBL-IP: 210.118.77.11 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout1.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0O4100MD3BUYCF30@mailout1.w1.samsung.com> for dev@openvswitch.org; Mon, 14 Mar 2016 15:18:34 +0000 (GMT) X-AuditID: cbfec7f4-f79026d00000418a-f0-56e6d64afb69 Received: from eusync3.samsung.com ( [203.254.199.213]) by eucpsbgm1.samsung.com (EUCPMTA) with SMTP id 9D.6E.16778.A46D6E65; Mon, 14 Mar 2016 15:18:34 +0000 (GMT) Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by eusync3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0O4100K1TBUOWN50@eusync3.samsung.com>; Mon, 14 Mar 2016 15:18:34 +0000 (GMT) X-CudaMail-Envelope-Sender: i.maximets@samsung.com From: Ilya Maximets To: dev@openvswitch.org X-CudaMail-MID: CM-V2-313023299 X-CudaMail-DTE: 031416 X-CudaMail-Originating-IP: 210.118.77.11 Date: Mon, 14 Mar 2016 18:18:11 +0300 X-ASG-Orig-Subj: [##CM-V2-313023299##][PATCH 01/10] netdev: New field 'is_pmd' in netdev_class. Message-id: <1457968700-23125-2-git-send-email-i.maximets@samsung.com> X-Mailer: git-send-email 2.5.0 In-reply-to: <1457968700-23125-1-git-send-email-i.maximets@samsung.com> References: <1457968700-23125-1-git-send-email-i.maximets@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupiluLIzCtJLcpLzFFi42I5/e/4VV2va8/CDL5sZ7N4NbmB0eLo6T3M Fi+777FbXGn/yW7x9eg2JovJs6Uc2Dye3fzP6PH8Wg+LR9+WVYwe7+a/ZQtgieKySUnNySxL LdK3S+DKmPLxBFPBW+OKRRNWsDQw7pLpYuTkkBAwkejomskOYYtJXLi3nq2LkYtDSGApo8Tq BVvZIZxWJond36+wglSxCehInFp9hBHEFhEQl9jesZQZpIhZYDujxLTDE8CKhAWcJM49+gBm swioSszvb2cGsXkF3CQObwSp4QBaJyex4EI6SJhTwF2iZ/8tFhBbCKjk89IDLBMYeRcwMqxi FE0tTS4oTkrPNdQrTswtLs1L10vOz93ECAmhLzsYFx+zOsQowMGoxMP7Y83TMCHWxLLiytxD jBIczEoivIlXnoUJ8aYkVlalFuXHF5XmpBYfYpTmYFES5527632IkEB6YklqdmpqQWoRTJaJ g1OqgTE6u8/qw+WLd9mfrmj+sbNWSeJf7r72sOrnSjN8jvc9mHP9Z/y13558jEW3A7jE336L sTS7mMfLftZWjne2xrRfVxawTL3stPym+XvxrSviv2ysTvFY0Vh1p7ZS8V1rVNC26LLl/P/b vfTy48JupbfzXe1nD7qU9vvqcsH5jqpP+H4wLzUvlVZiKc5INNRiLipOBABLWEwAHQIAAA== X-GBUdb-Analysis: 0, 210.118.77.11, Ugly c=0 p=0 Source New X-MessageSniffer-Rules: 0-0-0-13345-c X-Barracuda-Connect: UNKNOWN[192.168.14.1] X-Barracuda-Start-Time: 1457968718 X-Barracuda-Encrypted: DHE-RSA-AES256-SHA X-Barracuda-URL: https://web.cudamail.com:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at cudamail.com X-Barracuda-BRTS-Status: 1 X-ASG-Whitelist: EmailCat (corporate) Cc: Ilya Maximets , Dyasly Sergey Subject: [ovs-dev] [PATCH 01/10] netdev: New field 'is_pmd' in netdev_class. X-BeenThere: dev@openvswitch.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dev-bounces@openvswitch.org Sender: "dev" Made to simplify creation of derived classes. Signed-off-by: Ilya Maximets --- lib/netdev-bsd.c | 1 + lib/netdev-dpdk.c | 1 + lib/netdev-dummy.c | 1 + lib/netdev-linux.c | 1 + lib/netdev-provider.h | 3 +++ lib/netdev-vport.c | 20 +++++++++++--------- lib/netdev-windows.c | 1 + lib/netdev.c | 5 +---- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c index edf04bf..b148714 100644 --- a/lib/netdev-bsd.c +++ b/lib/netdev-bsd.c @@ -1547,6 +1547,7 @@ netdev_bsd_update_flags(struct netdev *netdev_, enum netdev_flags off, GET_FEATURES) \ { \ NAME, \ + false, /* is_pmd */ \ \ NULL, /* init */ \ netdev_bsd_run, \ diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index f402354..6ac0eec 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2641,6 +2641,7 @@ static const struct dpdk_qos_ops egress_policer_ops = { GET_CARRIER, GET_STATS, GET_FEATURES, GET_STATUS, RXQ_RECV) \ { \ NAME, \ + true, /* is_pmd */ \ INIT, /* init */ \ NULL, /* netdev_dpdk_run */ \ NULL, /* netdev_dpdk_wait */ \ diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index ccd4a0a..6fa1169 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -1195,6 +1195,7 @@ netdev_dummy_update_flags(struct netdev *netdev_, static const struct netdev_class dummy_class = { "dummy", + false, /* is_pmd */ NULL, /* init */ netdev_dummy_run, netdev_dummy_wait, diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index 570677e..dd39f0e 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -2840,6 +2840,7 @@ netdev_linux_update_flags(struct netdev *netdev_, enum netdev_flags off, GET_FEATURES, GET_STATUS) \ { \ NAME, \ + false, /* is_pmd */ \ \ NULL, \ netdev_linux_run, \ diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h index 1952a02..77aec4e 100644 --- a/lib/netdev-provider.h +++ b/lib/netdev-provider.h @@ -205,6 +205,9 @@ struct netdev_class { * the system. */ const char *type; + /* If 'true' then this netdev should be polled by PMD threads. */ + bool is_pmd; + /* ## ------------------- ## */ /* ## Top-Level Functions ## */ /* ## ------------------- ## */ diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index df6d8cf..4ba146d 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -1549,11 +1549,12 @@ netdev_vport_range(struct unixctl_conn *conn, int argc, #define TUNNEL_CLASS(NAME, DPIF_PORT, BUILD_HEADER, PUSH_HEADER, POP_HEADER) \ { DPIF_PORT, \ - { NAME, VPORT_FUNCTIONS(get_tunnel_config, \ - set_tunnel_config, \ - get_netdev_tunnel_config, \ - tunnel_get_status, \ - BUILD_HEADER, PUSH_HEADER, POP_HEADER) }} + { NAME, false, \ + VPORT_FUNCTIONS(get_tunnel_config, \ + set_tunnel_config, \ + get_netdev_tunnel_config, \ + tunnel_get_status, \ + BUILD_HEADER, PUSH_HEADER, POP_HEADER) }} void netdev_vport_tunnel_register(void) @@ -1595,9 +1596,10 @@ netdev_vport_patch_register(void) { static const struct vport_class patch_class = { NULL, - { "patch", VPORT_FUNCTIONS(get_patch_config, - set_patch_config, - NULL, - NULL, NULL, NULL, NULL) }}; + { "patch", false, + VPORT_FUNCTIONS(get_patch_config, + set_patch_config, + NULL, + NULL, NULL, NULL, NULL) }}; netdev_register_provider(&patch_class.netdev_class); } diff --git a/lib/netdev-windows.c b/lib/netdev-windows.c index 093175f..ab91632 100644 --- a/lib/netdev-windows.c +++ b/lib/netdev-windows.c @@ -490,6 +490,7 @@ netdev_windows_internal_construct(struct netdev *netdev_) #define NETDEV_WINDOWS_CLASS(NAME, CONSTRUCT) \ { \ .type = NAME, \ + .is_pmd = false, \ .alloc = netdev_windows_alloc, \ .construct = CONSTRUCT, \ .destruct = netdev_windows_destruct, \ diff --git a/lib/netdev.c b/lib/netdev.c index 150f8d8..83b0300 100644 --- a/lib/netdev.c +++ b/lib/netdev.c @@ -115,10 +115,7 @@ netdev_requested_n_rxq(const struct netdev *netdev) bool netdev_is_pmd(const struct netdev *netdev) { - return (!strcmp(netdev->netdev_class->type, "dpdk") || - !strcmp(netdev->netdev_class->type, "dpdkr") || - !strcmp(netdev->netdev_class->type, "dpdkvhostcuse") || - !strcmp(netdev->netdev_class->type, "dpdkvhostuser")); + return netdev->netdev_class->is_pmd; } static void