From patchwork Sat Nov 20 13:12:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: miter X-Patchwork-Id: 1557611 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=outlook.com header.i=@outlook.com header.a=rsa-sha256 header.s=selector1 header.b=MiW1S6OS; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HxDVZ4LVpz9t0k for ; Sun, 21 Nov 2021 00:13:09 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5726A401E1; Sat, 20 Nov 2021 13:13:03 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2463zpmG07xo; Sat, 20 Nov 2021 13:12:57 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp4.osuosl.org (Postfix) with ESMTPS id D176240183; Sat, 20 Nov 2021 13:12:56 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A3281C002E; Sat, 20 Nov 2021 13:12:56 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4EDBAC0012 for ; Sat, 20 Nov 2021 13:12:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 2EB7940288 for ; Sat, 20 Nov 2021 13:12:55 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp2.osuosl.org (amavisd-new); dkim=pass (2048-bit key) header.d=outlook.com Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id z0ygP84lFqmF for ; Sat, 20 Nov 2021 13:12:53 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn20828.outbound.protection.outlook.com [IPv6:2a01:111:f403:7004::828]) by smtp2.osuosl.org (Postfix) with ESMTPS id DB82C400F0 for ; Sat, 20 Nov 2021 13:12:52 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e27OITDK25yUbN1Wp4Bx+ohgQCACzdeEki9lK6ZB84uUf3R1FmoRjkSumnXzrXiJ7yLZY54nbUt3eXIROvPKX6UmTFZ2LV7FP5CuJGgb0jLHri8Xn0TvyK6BN+RrqTptrF+PsJP37/2w9tt2hXiYqHlzIFgGXjvAbl0VqkTZZ5rGt31YxFOnkkY4fcRLdpMxCZVdXKDchMLpwptbM/BICII9DqVr7F2puotWDlNfFMTsL17RetxlEiRN6HgLJlnezL7eyhldzq4INSw17X/oBgzDUOIJS7drtdj3AG0H9eLlpWOXKhUHV/U4e+EfYmMT/LRsAxYalglr1Ar2Y1VUSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9T8TBg+QPBAhkrJEgqIpIQOrishVvraRW8Ly6VIhMDY=; b=OgnTOq/cLyapiD8H+NFt2a9qGqSZokowsLiDOk673DG9R6YOLSlF97tr6YQK7H1jmPtWLuXcvLd/yOxnvHuKWbd246sZL/Xe8d05BiP5W/EEaW9lcz28jA4+E9H4TaRcK48qlbQ7v5/6i2bQh7GovLJRiyz4RHwpyALvcn2BTnV4ZJC+KbekvjZM6weId3y5XCHwxQgSrSN5wFfm+AvXRb6xLAs/CDYQS4m5h1xSYJ96pYZjDYZ/boiqTg6Vy2ERduuzMjtIPYVR+RyhoD6PP6pK6qFJR7sw/OZe2GL5ZFeLmfYXHd0eMzbvaQOwiGBXKvAM61HwTmz1/pk+FVjvoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9T8TBg+QPBAhkrJEgqIpIQOrishVvraRW8Ly6VIhMDY=; b=MiW1S6OSScl5GV5APQ5Z/Z8qkjujXxkI9w4W6mCHF5F96kuWKjGftEVWzovjPJwNpansLut8VtWXKM/ZqliQpVOlWQ22njjWVuZR6kEJlJFlffI8MmLDDZujN7hKTOKoTCxJss3x5i2rzduQuQ2+6IFHKIGKG94MJhU5pwv6X+kRAr7BZTwxdOPcSMaOYAqytv/jUx/gDUKQWtBnt5Xdfjzgj5SmFE2uqIYw2K/aOkeeidyNuJ6YRWLLyT6f8WncF1TxxMPQIgVt0qlW7vEPzC8iNghZcfbPMKcTHJz6Y3/bA6Zwp2Gwfx3TH48mWDruRtchu8iFmHJR5rb9ZLqzMQ== Received: from MEYP282MB3302.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:15b::24) by ME3P282MB3386.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:133::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.21; Sat, 20 Nov 2021 13:12:46 +0000 Received: from MEYP282MB3302.AUSP282.PROD.OUTLOOK.COM ([fe80::31f7:780a:9782:eddb]) by MEYP282MB3302.AUSP282.PROD.OUTLOOK.COM ([fe80::31f7:780a:9782:eddb%9]) with mapi id 15.20.4713.024; Sat, 20 Nov 2021 13:12:46 +0000 From: lin huang To: dev Thread-Topic: [PATCH v2] netdev-vport : Fix userspace tunnel ioctl(SIOCGIFINDEX) info logs. Thread-Index: AdfJXyMLLscOTX2yTfmH5J671ApHTQUsPFgu Date: Sat, 20 Nov 2021 13:12:45 +0000 Message-ID: References: <202111170945261121273@outlook.com> In-Reply-To: <202111170945261121273@outlook.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 9c0a9a16-75dc-7cbe-bad1-d233a4fb3d0c x-tmn: [ebiTC13kjnoip5DH45ceehMKFAxTuCm4] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e74addd6-3eeb-4a4e-f557-08d9ac2771cc x-ms-traffictypediagnostic: ME3P282MB3386: x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G/Gt4Tokmu40gZwaTclzmvQJJVdRxQIDO4awIj2XFJEfZeWbsagkauRxuoHhjjqqZZGqLwyqFCFF1NhXDfwf04AlpT3fi2upv5ngf++I2+4nQb3FdZZsRPCoOZHl7PjrEmYx3DqycEe/ATh7mHwC2G7LqRsVzOIj+PZfPOhFFybo6uRjN+JQQ7T+9+l3WNkboi7Z1T9Otj1ipsEEtOelJ62rl0yl7P9VtQtF8lAOcJGc+yWx9nM6dbEygiM0onLa4UA7RcF/dxIonl2JZzpXmswoHb+8K/w3dxDL4Cnhv/+kuK6g/nZtnvFt/RHDSnKDlUqy+bH7ZFvZxFlNQVH5mtIZWjoouqVqsGBEkENVRK/aiGqjgAjJQklrBS435MEJL/Y2hKE788Nf8H/tHB6L0G/FpRVCTQhVFQXuyD8HoImgowc7rpBwcwL6DUeK7bNHmWC4NBYhmxok2z5DZYUuZN/MntL86keRPZcaWW61gxS9Fun1mddoC3tLM5VPEsvqCy4zLq938FiaFATQ3w1MTbRgLeoKpcG+rehH0gESRWVcEBfQB1sX7qyrVy944o6Jt2XJ543m9rFn81wPQHbRgA== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: A44C/Vnsr+HAu7xRd/dopa7dVunydXTsNXSps18Z9DTRUltASC11cQ4Qb+gcpGFgjVV5FWQuVr8W6HhDdFcCAWCB96/ls7AiQc3dTkujEiIKa+UEjWg+syA/MY1koHeqzpKpTC2esJ9n5jVgS3XtcE1MHfnNCftZplIkELO9iPQgA33NxRPRAkOwMU9coE80E330pqHFiwI9iDKUCV1gS670i0fh9k7m0qTTSPUmtif+fn2lDdjsYOZQvrXcp49BU6NUg3hcMsudnuZrsTFE3GBJImmTh4MCm2y2c6iRMZd8liU9gwKMSbeHABmWtaFFwaaTV3yYi9G7TTQQZFJCtjf5BwYXvEuGXjo34NOshT7Q5FAJcu+nR+GSrbVuaz6dgviWzdjugGKVvcTmfu9RzqgKUf5RxDaL4MrS9WbrAVRtN6lIleIN/4qgQiV/ku4rJqeCcWoWjp69fE6+efXsZ0ZeL+5McTj43aQ3jP6yPQI8F6s4IKOdOAC/XuZJMGSMerz+OWzk/XFuj33ptk1X8uQzzmCFqTr624MqQ+B0QAqRHlEJFHxQAUZQBx+AvxCnxLYpDmJkLlx567dQsVnXTYkKY4rH29PQHFjq3gt7b1leunx9pxlk+yKdM7MG8gmsaJjQXocKleaF2xFrVC7OMiBB6HLemup071cJVPigy01dq/zCiM7Fk4VPCFqZ+SAiQDPJwSu9r6JwlfGB37aP+Q== MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MEYP282MB3302.AUSP282.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e74addd6-3eeb-4a4e-f557-08d9ac2771cc X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2021 13:12:45.9160 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: ME3P282MB3386 Cc: Ben Pfaff , "i.maximets" Subject: [ovs-dev] =?eucgb2312_cn?b?u9i4tDogW1BBVENIIHYyXSBuZXRkZXYtdnBvcnQgOiBG?= =?eucgb2312_cn?b?aXggdXNlcnNwYWNlIHR1bm5lbCBpb2N0bChTSU9DR0lGSU5ERVgpIGluZm8gbG9n?= =?eucgb2312_cn?b?cy4=?= X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: linhuang Userspace tunnel doesn't have a valid device in the kernel. So get_ifindex() function (ioctl) always get error during adding a port, deleting a port or updating a port status. The info log is "2021-08-29T09:17:39.830Z|00059|netdev_linux|INFO|ioctl(SIOCGIFINDEX) on vxlan_sys_4789 device failed: No such device" If there are a lot of userspace tunnel ports on a bridge, the iface_refresh_netdev_status() function will spend a lot of time. So ignore userspace tunnel port ioctl(SIOCGIFINDEX) operation, just return -ENODEV. Signed-off-by: linhuang Reviewed-by: Aaron Conole --- lib/dpif.c | 2 +- lib/netdev-offload.c | 2 -- lib/netdev-vport.c | 3 ++- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/dpif.c b/lib/dpif.c index 8c4aed4..7adb620 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -362,8 +362,8 @@ do_open(const char *name, const char *type, bool create, struct dpif **dpifp) } err = netdev_open(dpif_port.name, dpif_port.type, &netdev); - if (!err) { + netdev_set_dpif_type(netdev, dpif_type_str); netdev_ports_insert(netdev, dpif_type_str, &dpif_port); netdev_close(netdev); } else { diff --git a/lib/netdev-offload.c b/lib/netdev-offload.c index 8075cfb..1221170 100644 --- a/lib/netdev-offload.c +++ b/lib/netdev-offload.c @@ -596,8 +596,6 @@ netdev_ports_insert(struct netdev *netdev, const char *dpif_type, data->ifindex = -1; } - netdev_set_dpif_type(netdev, dpif_type); - hmap_insert(&port_to_netdev, &data->portno_node, netdev_ports_hash(dpif_port->port_no, dpif_type)); ovs_rwlock_unlock(&netdev_hmap_rwlock); diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 499c029..ad24933 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -1151,8 +1151,9 @@ netdev_vport_get_ifindex(const struct netdev *netdev_) { char buf[NETDEV_VPORT_NAME_BUFSIZE]; const char *name = netdev_vport_get_dpif_port(netdev_, buf, sizeof(buf)); + const char *dpif_type = netdev_get_dpif_type(netdev_); - return linux_get_ifindex(name); + return !strcmp(type, "system") ? linux_get_ifindex(name) : -ENODEV; } #define NETDEV_VPORT_GET_IFINDEX netdev_vport_get_ifindex -- 2.12.2 ________________________________________ 发件人: dev 代表 lin huang 发送时间: 2021年11月17日 12:39 收件人: dev 抄送: Ben Pfaff; i.maximets 主题: Re: [ovs-dev] [PATCH v2] netdev-vport : Fix userspace tunnel ioctl(SIOCGIFINDEX) info logs. hi all, pls review my code. Regards, Lin Huang From: lin huang Date: 2021-10-25 13:16 To: dev@openvswitch.org CC: Aaron Conole; i.maximets@ovn.org Subject: [PATCH v2] netdev-vport : Fix userspace tunnel ioctl(SIOCGIFINDEX) info logs. From: linhuang Userspace tunnel doesn't have a valid device in the kernel. So get_ifindex() function (ioctl) always get error during adding a port, deleting a port or updating a port status. The info log is "2021-08-29T09:17:39.830Z|00059|netdev_linux|INFO|ioctl(SIOCGIFINDEX) on vxlan_sys_4789 device failed: No such device" If there are a lot of userspace tunnel ports on a bridge, the iface_refresh_netdev_status() function will spend a lot of time. So ignore userspace tunnel port ioctl(SIOCGIFINDEX) operation, just return -ENODEV. Signed-off-by: linhuang Reviewed-by: Aaron Conole --- lib/netdev-offload.c | 6 ++++-- lib/netdev-vport.c | 3 ++- vswitchd/bridge.c | 2 ++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/netdev-offload.c b/lib/netdev-offload.c index 8075cfbd8..00b7515cf 100644 --- a/lib/netdev-offload.c +++ b/lib/netdev-offload.c @@ -577,7 +577,9 @@ netdev_ports_insert(struct netdev *netdev, const char *dpif_type, struct dpif_port *dpif_port) { struct port_to_netdev_data *data; - int ifindex = netdev_get_ifindex(netdev); + int ifindex; + + netdev_set_dpif_type(netdev, dpif_type); ovs_rwlock_wrlock(&netdev_hmap_rwlock); if (netdev_ports_lookup(dpif_port->port_no, dpif_type)) { @@ -589,6 +591,7 @@ netdev_ports_insert(struct netdev *netdev, const char *dpif_type, data->netdev = netdev_ref(netdev); dpif_port_clone(&data->dpif_port, dpif_port); + ifindex = netdev_get_ifindex(netdev); if (ifindex >= 0) { data->ifindex = ifindex; hmap_insert(&ifindex_to_port, &data->ifindex_node, ifindex); @@ -596,7 +599,6 @@ netdev_ports_insert(struct netdev *netdev, const char *dpif_type, data->ifindex = -1; } - netdev_set_dpif_type(netdev, dpif_type); hmap_insert(&port_to_netdev, &data->portno_node, netdev_ports_hash(dpif_port->port_no, dpif_type)); diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c index 499c0291c..411ac343a 100644 --- a/lib/netdev-vport.c +++ b/lib/netdev-vport.c @@ -1151,8 +1151,9 @@ netdev_vport_get_ifindex(const struct netdev *netdev_) { char buf[NETDEV_VPORT_NAME_BUFSIZE]; const char *name = netdev_vport_get_dpif_port(netdev_, buf, sizeof(buf)); + const char *type = netdev_get_dpif_type(netdev_); - return linux_get_ifindex(name); + return (strcmp(type, "netdev")) ? linux_get_ifindex(name) : -ENODEV; } #define NETDEV_VPORT_GET_IFINDEX netdev_vport_get_ifindex diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c index c790a56ad..473d79acd 100644 --- a/vswitchd/bridge.c +++ b/vswitchd/bridge.c @@ -2052,6 +2052,8 @@ iface_do_create(const struct bridge *br, goto error; } + netdev_set_dpif_type(netdev, br->type); + error = iface_set_netdev_config(iface_cfg, netdev, errp); if (error) { goto error; -- 2.12.2