From nobody Thu May 2 09:46:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1501669600085815.63259565219; Wed, 2 Aug 2017 03:26:40 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 5030E734C1; Wed, 2 Aug 2017 10:26:38 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1BACC7AF7C; Wed, 2 Aug 2017 10:26:38 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 77C971803B21; Wed, 2 Aug 2017 10:26:37 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v72A1B2w003439 for ; Wed, 2 Aug 2017 06:01:11 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8F2C071D68; Wed, 2 Aug 2017 10:01:11 +0000 (UTC) Received: from mx1.redhat.com (ext-mx03.extmail.prod.ext.phx2.redhat.com [10.5.110.27]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7793271D61 for ; Wed, 2 Aug 2017 10:01:09 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0074.outbound.protection.outlook.com [104.47.2.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 41AD665266 for ; Wed, 2 Aug 2017 10:01:06 +0000 (UTC) Received: from mellanox.com (193.47.165.251) by AM4PR0501MB2787.eurprd05.prod.outlook.com (2603:10a6:200:5b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Wed, 2 Aug 2017 10:01:03 +0000 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5030E734C1 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 5030E734C1 Authentication-Results: mx1.redhat.com; dkim=fail reason="signature verification failed" (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="JK5oeczD" DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 41AD665266 Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ext-mx03.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=edand@mellanox.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 41AD665266 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=BRKTySS0V8QQpF8qsi4/hng+rMtWzbjq1w1dhtQXj3g=; b=JK5oeczDVQizIjYd4kU0Egd7nwhLmSz5qhRUnxk0aDWStr9dwzumQODerrix3jrFG2b16KUwRzni1TRZogd/hL4glIwonsnGx+b+ef2Ry2B+xO3J/l2FxCHEsRjbxz8zZpWAGTfdz6RIrs9FVa7EP+Phvy9V95ssEax4U94PmOE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=edand@mellanox.com; From: Edan David To: libvir-list@redhat.com Date: Wed, 2 Aug 2017 06:00:51 -0400 Message-Id: <1501668051-9231-1-git-send-email-edand@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [193.47.165.251] X-ClientProxiedBy: HE1PR05CA0131.eurprd05.prod.outlook.com (2603:10a6:7:28::18) To AM4PR0501MB2787.eurprd05.prod.outlook.com (2603:10a6:200:5b::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2b57f840-e04c-451e-ce9e-08d4d98d62c1 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM4PR0501MB2787; X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 3:279rO/qLe+dbUJ8EadnVrgVqaXZRJI5hrLpHYgtnB+FLE5REpGCrtyBndnLIcjzNPRlzqleMjKJKg5l69aC8PoXa+mjYewNHLwW+XgJ1qpOSYk9HQE9Ke1aOOeL8xOBqMAoG6OrdC9Il2zJcnIyeebOpgVmN45jv8YuAiRLDM8K3gpQnFLNls/Zq3skc3zFx4DjzU/AZnuH8N9EKsUtgNw7m4gfDuJpQ3pKRB699PJxCsGoh50ueNqj+wp6sR8QYloEMkCD4NkH4szE5YeYi7+Dsp1xhsbzFHU+cqvHSeCc/9Pro1UqTid9Aw73hKBHQjmWSM2eKybJK4tB1ymszVa7iUAE06JiNh69fp4GnP4YKtTLIyfg7TyufyXI5wA0X5YR4aORzEr1+IKK5fvJTVMXhNMUKnVa4Pv7v5sa6x/PKomQ4xEdmgUEDxnA5n5TwevdmYKc3QgwlZBQkEjf6kyhDijuVImFCuPIdSxtcvjs2JzGrs8chSPHgPDHy4xP/FWvWSGZeYVvDI94Sj81TuSpAjcMm7RUxZ5tFnXX+yj9BZnox/Ub2I39nGEMEjo8i5pQ/9sTli23ceNsJO/PWwSuIeDSyCW4ZGKwFUfkKekTPN9m3A/oZ67uc3KtUc7eQO6MClbLn/iDufgQolFMPsCZ2700AOudB+GZvYYJqMulMS8Dgo1zaCNyzKbCPnqfPhSokfzmpltOHeH3B1puOJm6xizsb6IVDe13wS8+Jou0PKbSIDOk1+hdkI/Z0Hpi7f9CeLMHOTfwhb4RJEY2kqXCPajmIqVy0OJ4G4wZOD7Ntyeck78aigf4d/BN7zX+wfutG9NJtxEH51/gZdUTdFQ== X-MS-TrafficTypeDiagnostic: AM4PR0501MB2787: X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 25:h22iHlEjsFupsXAcgx8xZpVWy82XRfoGLdeB6yFC3r3bOstyX3aH4JLd3n0KWe2ASUSaYkY10IEoUKEywoj821yC/jNEhuHPbCBQ7ME5JyGfRlLgHOe5pWiwhTQQzhcensqjpSY+Z89i74XiGJgCDBPYcIRBP+wF51PN243+agTjBWG+uSrrFfF2u+rKYrPUW5oHhlNQaPedFw2mmZAEd4T2L+X5CZtlaUArO0iAyAGRrtkVh4E6DxVOk7ZkZjRe9F7AquNK6nljCnmQPB321uNagvQKWgs0UDAAvqMw2YSEVOEV5yuMYmM66f9lg0n0+V80L7p/L1IzicO1n62q5ujucxUaA3VRibWHTO2BBxt5odsAJK1/9aYeqdGPp5+8QvFzF2OBuXajh9IA7kCGpkywmQi0YHEDn42VapYMDxgs/cwTZ95hjM+/fEm2t1GXVuxissWgsIiiIh76GUwZUCfU2m3Fx+xYS2J/z5/WuJoUe4MNOr/dQdH/WlW4VY2xNsVA83uG/korc4zxfQ8ma4oAGkfwwejaR8p0YxLwSijpH/0Aif0IXWdsBa17voiRPUMS4jxFZjv/KDjHJe1dwsDUqJ2hIVRj7psN2T0cXxJGVsnMuSI8ERz0UiWzcnGLl9Qu3XLp9LzDRvw7vQYWETS4Wug5rncoR3MLMFAzbZB/9aTWPxfHX9rtub5JT7xriP1jv5LCsYyr3rxZDn1mr7Q5WAiJR3ia4uVFSfmZSG32TsJBt6/VQz2tfpOTTqdVwM4fVWBqvVNikHTn63fUAsn7ye+5woSv9yhjKEVSYk/tiXBKVQB0RiKemymZk3A4NeprUxFamYKEUoOE2uDjMzcjvNItVOYAvs1wQi7sFI5rAJeBszC/EbfY8MKdgW0COfobJmDhrmnnr/biH3CkVbrHnI+yWUyxxsxPqzNs/Ms= X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 31:nDEwXVJUTVtNLqZalov89rlLsJhGe+z3a55ScnlT1vGQY0v6pL4FfU2xmSCEuZeaPW2uD34em4GZQOZQW10thob486m8SaSw75bFHiv3ZmHuLheuYZudHaIFsOjKZzvMxuqeNaxsEdZx5IzmfzJAQwgi3wyK7koEZwELki0mwpVQefIXiAoy+V6exlTUlBir5eCUrhZpEZV0XjJQOTZE1HQGo8Mfb4mJA0GYub7ErtFO19k0ZhkaWI3Pe2zGNuSu5hPtTFOvMqTVbk+GC+NaUIEkxM2essDpLQB00nAUkueVbEt46sOS4AYPmK66B6RDJCWXrigZYz1uKRO/JR7F30Asi4A/3yzNch/aaBUWlISnGlNYas0NCBxaYPedHtR030ORRusF35BuXwVod/I16LENUGhzeAeA5wSHdHlfUAl6U5UxqoAW2IT4XVO5K2ahoJJpLpCNwAns3NmdryrtylFPn5hNPvNFYIKbxJSfUUe936MIQUgMe4xAZ3Wuo0e+X9Yu5EhqqWJlhRwmxc2T5c82IZ+zUkEQGcXsjQGL5IFKt8YWD3epyfKxW8sUp1lMpmAszCKpSzeC2HP6u0wvajWwrRCad/9sT7iHp14d0SkIMPPq7JzXP9QlxM1QrREF11k+RqkMPfju/sN2Sku6rnZYeD/1grxgaD7T3VdR2QydL+dq6oBByFPZuOzCG1e2 X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 20:5qmYKaPwrsPVKUG0lvgLzxtRIIirmi2Ipj6RCQxgtlNQxfB4wHWY5tXw1icmz6EgD7m8ft8gQZv4U4J1YHXjZlpINlu8h6xzySIvrpx3KnThqqeSLa8/gRv9U8LFyLhyWBZyURHaQjHtom9o2VGbAbFWxepYqjiCvQV9IuobAsOP2i8jqv5ekYRzlQcrJjoY9tmISOdKduZOv2JtiyiC2JDRnoks1dkLjdajBMZMahibgKld9UU4jzbkUvCpDVSEDZ+5QmcbAOqxOoID4k+ome0qsdcgP0Xk/iUassbl2RlQuRRbBB1F51xPFUp9wzB/26KutuWDQibx767FLFuiFEVXp268Ww88O0/6hfjqydm62mPze+mrzTVPpWLnJaVl84++ywAfqGqQyBs8SaAhc+g7i2wATZEZipOXxWE5DAdVq14mgrE5DubYKqGwABs40icT6a+F0DWOzgYBwMxK+Il2ZeOvOgCtoM71CIZOg8BxI2n9U6H5qeAJd8j8u4bC X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123558100)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM4PR0501MB2787; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM4PR0501MB2787; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0501MB2787; 4:d3+mPrVSyGwtuelSD+u4jVZLhb7hv+R6GLYJ37OX?= =?us-ascii?Q?PpD0Eqxpe1Ga/3cTw8Sat02ASM7N5T/VFHiMdhEhjGzz16vB0Cbx1LCwpYGQ?= =?us-ascii?Q?4N1xdFpbD32N2/popkt63qb9Jy/7axR4/YEesyD+S6EkDVzw/nVpYme2vGYl?= =?us-ascii?Q?9FA5ZYqJCg5H/MfJOVwmOf4u5oWfx9qx2QmZ262khWPLX5FkCV/gqQpZ+Wu7?= =?us-ascii?Q?raBj9izRFhalMUjLwkF5VaRENl/N/DrfydYYi45TRjIzOcMUTNAjrIJrgZBB?= =?us-ascii?Q?kn8Q+T/FhAkg4pgTniC5+k4bIo+y1tTboiyZL02cUxD+Uvyp+c4OJKZNI3fN?= =?us-ascii?Q?1AJ0ZoilIjYIivOsobWqI+OlLk0jypfZomRZRGFYcrSvgaI9KglYLGhMgDon?= =?us-ascii?Q?D8C/82eGf/Q7LTKnImJdHtAGCreozdnUQtnJhsnhnQpml+FwUOtepSRT9+7W?= =?us-ascii?Q?zpllrrwsSrqm5E/eqnnRWwHJ+15ok9WFrVmzrSqFzs8MCTROGjquw23f7Tuk?= =?us-ascii?Q?pR8OQhX2yAe2vwkL9Bn+mGnhnSIcg342hrYZ4MDphmU4pSNzj2xnHg5l2wfx?= =?us-ascii?Q?IoMRxW9oFZTfz8Mc1c/UCssQoIyLHk9kf5GJH2qJHPEQ70ScN/rmXllpoGf1?= =?us-ascii?Q?3fYTZS5Zvum3ENBPaIRi9VF7gK30smiLbzvSpJ7tG6s9kwH455MACsZ776VL?= =?us-ascii?Q?C6+FDDiL0Ju0xO6VB+x0MjCB7gFI12UuvkOwB84QMJ1AExwKtszB7Qoljf6D?= =?us-ascii?Q?ujDXV0T5/dvZ5MeHZucbV84zGkrmQeDX0AgSLg9wQwEI+ahvgAwWeAC9yO9M?= =?us-ascii?Q?e0zKghj3EdW3vAVPlADlVFB2t6uxka0cLljMc0sJ3/p43NErWzA/KGagteFx?= =?us-ascii?Q?wAuUXKkxMI7alhFRuIdlsaaxQCHMX/RO5HdAwiSc0iXDL44CYXSUCX20FZXO?= =?us-ascii?Q?ewYgfKUPTe1hI8tSyfvh4MtkamAfAVIulhFIAxywY2GrRdSbND9JgqptlJs0?= =?us-ascii?Q?PoTJsRiIFjtG7CItnUYTHeJNuAduwoLNRqDOFcxYN9T2/fNavx34ls33/xkN?= =?us-ascii?Q?KxifoLf7w5ybixKFK9nL+sBJcy7FJUxHHCT3Zx2q3AxHY9OVj3WlI6tgY4sx?= =?us-ascii?Q?TokmGV20DMPb7t3zG7n7fBNlysg6XDTYQIL8taAR4O2crK3kTdi4Dg=3D=3D?= X-Forefront-PRVS: 0387D64A71 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39840400002)(39860400002)(39400400002)(39410400002)(39450400003)(39850400002)(189002)(199003)(66066001)(5660300001)(69596002)(50986999)(305945005)(3846002)(6116002)(7736002)(50226002)(36756003)(2351001)(106356001)(21086003)(101416001)(478600001)(38730400002)(8676002)(105586002)(33646002)(110136004)(2361001)(25786009)(55016002)(7350300001)(47776003)(81166006)(81156014)(5003940100001)(42186005)(6916009)(2906002)(189998001)(68736007)(53936002)(86362001)(48376002)(6666003)(97736004)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0501MB2787; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0501MB2787; 23:w4ERPeBiN//boLnLvhuv/9hHjGJ3VLVwXGTf3VW?= =?us-ascii?Q?MmwWEVWHSYx9wvSn4wqgcMrOEdoBteeNwQkp70RjCdhAueRHaJWyquclAyFX?= =?us-ascii?Q?sHCHU+w42pgSRaLHaVVHARZYpmju2TSeemdGp/4DJIqJ0rG5uXKykpde5pHb?= =?us-ascii?Q?wkI5n5LC3BZC/amIWQ9s/6TITr+84R6LEKa+XMzN/3f1xmcspKa70OhKjG50?= =?us-ascii?Q?NO8IO5AX2zHDnN0T6C+tJ4mF877/oA8g7ZYimiBVJQ1BofeayN9WswWMcHsq?= =?us-ascii?Q?GyjrCRH22cJLNDD3vvnuJt+Ov1ij1m69TpBXS1qBAM2FefREbPQJxv9XrsVJ?= =?us-ascii?Q?EBGbssQt+oaIwzZi46iY4lxTahRVnukzPh//2KMhmYz3EF21ZnKlpRityf7q?= =?us-ascii?Q?3dj8GwRr9I2ELJ92E2FopvGteYvGydFfp97778iCF6bYhUeOQuhuLhhSX+e7?= =?us-ascii?Q?14eoL/bGFATmgrKYmJ0W/aQmnAlO0RkTkFu5n+2SRZMW/BrYUPr4wLu0dkLm?= =?us-ascii?Q?bTVUPBjFFlwTLhDtjlqRWtn1J3wysCFInLahfwzG0xlX9ASRf32AMgSNIffv?= =?us-ascii?Q?RjcHeYhLd5iPsXiqRE1iW2tXZt65nCmfs6srdWESJpJaSHMQ7ulZ9EEHb4x7?= =?us-ascii?Q?OSjKG9SvwJPFoaLwqCtqxAxAXchQcNKuoj4HAC3Yjj6qCtbQTE5pCluaAMn1?= =?us-ascii?Q?Rdi05ZI9aoQo2g7ZTNYNeu2wd7hat6cSxhM5oYdC2R7jItzkQCDN4ZMGwF4j?= =?us-ascii?Q?jax3w4afJZ4Y6JXb/qFRPqR17ITJobmpX+8HJxKybSTVRhl/IQJAtu8s6BQu?= =?us-ascii?Q?HaSouMBx5oG3nQZ3BlO1IG4Od/1lj8e5FJbO/vi9FVVNLJs+BMQNSoajEiRm?= =?us-ascii?Q?ENC1UdeegQGXJJdHijMqTrjjy34x2pK2UKGG5dtC8Al7ny1sRpZIsanO6iKO?= =?us-ascii?Q?jcT1K0HzwCWDWAYXijgyosBLRe7QTw/NzBZqlTk6u7lYo2hHH+KPbBlZNRHC?= =?us-ascii?Q?ljjUWYXLHWSPyV9b8GJdicSP9GH46XIf0XIG2HeRxdbrlyeKJCliictG2oU8?= =?us-ascii?Q?t7OR+KDX1DExUVU5cmWvkapnQIilkY9fiKCT0l2EiYByoWL4vkw2dLg2Sooo?= =?us-ascii?Q?57mOcTeJ2t03vxU6z+QGyZ28ZSxSfWaQADMjHco0Pg3CiUSeeYuuGRjCZpFQ?= =?us-ascii?Q?ndh3XI8KShKDy4QfPZsGmnXRli1e4rFg51xIjPp0O3A+OpJLQDOmlm+FQhDi?= =?us-ascii?Q?5TZWB1FpzjeSDoXsfF64=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM4PR0501MB2787; 6:Eq4RT0jzg2tA6GqmEhvS8o8bRL+9FTlfycmgyqhl?= =?us-ascii?Q?OLVRgWp0MFSJUBRBtgfepVrUlctHX1M0WzPUAm1ggfnY+s33KT6/UD3SP+53?= =?us-ascii?Q?ls7fc4emPUJiMhhxVfhZJBWtmIS9z3ZcB0rV0pXg+NbwpcqET4yFYtKjbAYl?= =?us-ascii?Q?epQnnve2a9r2M4SqnM9Ik6c71JiAOp1yrp/xxSMLiJkpLLsj9RV4Xo91sgqU?= =?us-ascii?Q?LTzwdyir2U/XHVKIvgOcqGGdvzY+PVam4EIySitHxC+9wXxyxu5UlAuxsWUO?= =?us-ascii?Q?vA/I7DuMYVccQwrfAws8y6z4p/RX5CdfNCZ8zirT519uj8esR1Z46Y9vGlJg?= =?us-ascii?Q?uB9xcrAgJcFDXPHw2l+wrfC1CwnBiCkaXERojTD+rr49KoPZ0RIHcucINKqb?= =?us-ascii?Q?Dj93s5JM7C94uDLR2OgJVQDDEZd8A5apbY2fffqyEVu/gjTqjPQigHwj6ZxT?= =?us-ascii?Q?VnPane4rTefXtuvKyhQsaC7m4Z5dWrdsTTVg1bgDh97kC/MUu6T0ZG/oO6FL?= =?us-ascii?Q?I4PD6eVqfqHP/GrcNTbzEXgzk0Z3+yDGF+OKzei+ajfdp5EASQEx6FJXj9rt?= =?us-ascii?Q?mp6Xt+mErrV+vLJhO8VxdrKr97EGUBOmHPOW5XMpRcPbU2+g+Wm+CaX4UjgD?= =?us-ascii?Q?/G0uhLXaWbklE3+lSmkbWDoKeb4SKM2+oP3Ix1m2neqImTXRePjNFyekkEvR?= =?us-ascii?Q?XkiwcwxLbLpy04PPhNNLpyzejWtyXEoajWj5dQv9GWobhRMBP3O7WZsdFdOX?= =?us-ascii?Q?+PkwOJlh+aLoxZoKkar01+46tqDvU7+T3VC1hmEWa4u1mvqQaStbSg4w0yg+?= =?us-ascii?Q?mOX1B6BJ/WrGe0UW6/LiOIcX9f6JQjt9GQwGQUTA6Iphi1I46eynePHmRJuE?= =?us-ascii?Q?pOYq7bahxyiLpqxt4zsb/vxW0VfcEdHWslWAXv6ijWxbrKeRpeY86Pphy20j?= =?us-ascii?Q?ADVlH+zZnC4HDKiV8oKfIpu5S65ke6R0y1wASc1tSvWUSD95euvBXFnr3l4d?= =?us-ascii?Q?meXzL+1HZjRAG0wRO2ZexXPt?= X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 5:7xK6Jgv2+o205PiMsgJ42FCuORUkfkgb2092f6NmtIeFvvujvNExXDbYhzfxCENGHRyKuoKFTGwcMFcKd27yqFd7W1a1+FPxp2cig/5Lo58xabWwsJTNaMoGh2u7WUWxntVvzObh+uA0AeUN5p78gKBppUWuUfVpUUr+ESFReabIT/5npGBT17pqYCffmbmvtALVc4HCHeKqthyw49rjd/XFY5kQwFWqTSB55+qgXk3sGKKQY5N2oYEkqt4T+22NnPebEjdHGKP1V3RJnGoLJ+Dgxa1q8sl2F59BIDbPX5C1KNarXUgO4aWFfbVB6EI2ZI6vARCiik7w0PmUbXE60kfVFyN8wZkudXU7c2na8HS+M9eL4dnIcpZPUXf/EGzE4tCaPyUjTduo+y05LTfn224aYkbvCCWO4jr8ViyjYTSDzeyYqT9JO2ggxMddFUNsRNlBt2SwJhWQ+ZFPaQTCIPVW3bBoIYlH2fnrGoMP4yCppwHzhu9ijlFfgGpKqrkF; 24:CHF24BCDnUs1SDbPCA5kfWGxonGV4HfkyQ5nQZ3uvuLTxZY0LRq7Apgs4jG38Bw5oivmDnxlQFQJdAYmbsTeGHsslOXQ5gSZbFHYgDZmuac= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM4PR0501MB2787; 7:3Bb7gHAfbYbEr21icI4wgTtyny8M7zpP81CzexJbMytsXUYE36NJyKxkkU+bUb6XFf5lN/+MBidiGOT2FCc1u+T6pqI9nXKpyFaE1nIKDo6Xw6/okF6TaGMjmNArQTGQrlY8yapjPOVU9s3xOGud1LUV1Yv7q9vNSQw5kN1FMhx9A7lFDo4KEJGgEe1BufwXWsYb5AVlhpYMuZvzjzsEhigciUVGzYNs22EPVPL6bhk8tB9ehlzf8LIM3+lDVzhE990TGcO6saj08OfTnMoQgsE6mWVUtoGY7eTGQc1yUSBGCxR6Lw19XHx8eysEyXbqKYwzGCE0OyUcT4aUw38JPQIcIZ6APF4E4BV5a4lreFghk9LbTZvrup6APo6kNAhlAQUU1iF11zb5ckjnvhDQBDDhYeuMikk1VEI43/xYW+/uKllYM8p13PyrLRjfjgrYjncySYIomZTuNS9dMx6JG2pCXFTvB54OYlMexl8DAXd8Yuiyn3azZrih+cEJSyK6xXjCCyudLcanblAckRvWE8s2LMHZEYWYiN4d4gnWwQxqAg9Z+29zrlpA/FvF+mYOGXJAwjsFGCWiSv9/K+/uk/y4JqDXXeclEqo7yWkgkbHXO57eiAyKgiXC4n0qHF2Yx4V5r+xxqh02qKbKsvU3goNTErO2dGkKQxsZTHx9uIAJrum1UCvNj8sEgTmU+iGEPnCsUBU8HhF3yx2HSLYaCYKdtma7EyHrqJ4MldcuW0AbhD+hElm7JdX/HCfyL/HTj2Gk6fbGGOxuxBB9KR0bcqOXLhdjNLLh+Gjs4TQU9AE= X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Aug 2017 10:01:03.0004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0501MB2787 X-Greylist: Delayed for 00:07:46 by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 02 Aug 2017 10:01:08 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 02 Aug 2017 10:01:08 +0000 (UTC) for IP:'104.47.2.74' DOMAIN:'mail-db5eur01on0074.outbound.protection.outlook.com' HELO:'EUR01-DB5-obe.outbound.protection.outlook.com' FROM:'edand@mellanox.com' RCPT:'' X-RedHat-Spam-Score: -0.232 (DCC_REPUT_13_19, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS) 104.47.2.74 mail-db5eur01on0074.outbound.protection.outlook.com 104.47.2.74 mail-db5eur01on0074.outbound.protection.outlook.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.27 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com X-Mailman-Approved-At: Wed, 02 Aug 2017 06:26:35 -0400 Subject: [libvirt] [PATCH] nodedev: add switchdev to NIC capabilities X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Wed, 02 Aug 2017 10:26:38 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Adding functionality to libvirt that will allow it query the interface for the availability of switchdev Offloading NIC capabilities --- configure.ac | 13 ++ docs/formatnode.html.in | 1 + src/util/virnetdev.c | 204 ++++++++++++++++++= +++- src/util/virnetdev.h | 1 + tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml | 1 + tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml | 1 + 6 files changed, 220 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index afacf40..a050b99 100644 --- a/configure.ac +++ b/configure.ac @@ -627,6 +627,19 @@ if test "$with_linux" =3D "yes"; then AC_CHECK_HEADERS([linux/btrfs.h]) fi =20 +dnl +dnl check for kernel headers required by devlink +dnl +if test "$with_linux" =3D "yes"; then + AC_CHECK_HEADERS([linux/devlink.h]) + AC_CHECK_DECLS([DEVLINK_GENL_VERSION, DEVLINK_GENL_NAME, DEVLINK_ATTR_= MAX, DEVLINK_CMD_ESWITCH_GET, DEVLINK_ATTR_BUS_NAME, DEVLINK_ATTR_DEV_NAME,= DEVLINK_ATTR_ESWITCH_MODE, DEVLINK_ESWITCH_MODE_SWITCHDEV], + [AC_DEFINE([HAVE_DECL_DEVLINK], + [1], + [whether devlink declarations is available])= ], + [], + [[#include ]]) +fi + dnl Allow perl/python overrides AC_PATH_PROGS([PYTHON], [python2 python]) if test -z "$PYTHON"; then diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in index 32451d5..e7b30ea 100644 --- a/docs/formatnode.html.in +++ b/docs/formatnode.html.in @@ -227,6 +227,7 @@
rxhash
receive-hashing
rdma
remote-direct-memory-acc= ess
txudptnl
tx-udp-tunnel-segmen= tation
+
switchdev
kernel-forward-plan= e-offload
capability
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 90b7bee..084fb41 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -59,6 +59,10 @@ # include #endif =20 +#if HAVE_DECL_DEVLINK +# include +#endif + #ifndef IFNAMSIZ # define IFNAMSIZ 16 #endif @@ -95,6 +99,7 @@ VIR_LOG_INIT("util.netdev"); (FEATURE_WORD(blocks, index, field) & FEATURE_FIELD_FLAG(index)) #endif =20 + typedef enum { VIR_MCAST_TYPE_INDEX_TOKEN, VIR_MCAST_TYPE_NAME_TOKEN, @@ -2396,7 +2401,8 @@ VIR_ENUM_IMPL(virNetDevFeature, "ntuple", "rxhash", "rdma", - "txudptnl") + "txudptnl", + "switchdev") =20 #ifdef __linux__ int @@ -2851,6 +2857,199 @@ int virNetDevGetRxFilter(const char *ifname, return ret; } =20 + + +#if HAVE_DECL_DEVLINK +/** + * virNetDevPutExtraHeader + * reserve and prepare room for an extra header + * This function sets to zero the room that is required to put the extra + * header after the initial Netlink header. This function also increases + * the nlmsg_len field. You have to invoke mnl_nlmsg_put_header() before + * you call this function. This function returns a pointer to the extra + * header. + * + * @nlh: pointer to Netlink header + * @size: size of the extra header that we want to put + * + * Returns pointer to the start of the extended header + */ +static void * +virNetDevPutExtraHeader(struct nlmsghdr *nlh, size_t size) +{ + char *ptr =3D (char *)nlh + nlh->nlmsg_len; + size_t len =3D NLMSG_ALIGN(size); + nlh->nlmsg_len +=3D len; + memset(ptr, 0, len); + return ptr; +} + + +/** + * virNetDevGetFamilyId: + * This function supplies the devlink family id + * + * @family_name: the name of the family to query + * + * Returns family id or 0 on failure. + */ +static int +virNetDevGetFamilyId(const char *family_name) +{ + struct nl_msg *nl_msg =3D NULL; + struct nlmsghdr *resp =3D NULL; + struct genlmsghdr* gmsgh =3D NULL; + struct nlattr *tb[CTRL_ATTR_MAX + 1] =3D {NULL, }; + unsigned int recvbuflen; + uint32_t family_id =3D 0; + + if (!(nl_msg =3D nlmsg_alloc_simple(GENL_ID_CTRL, + NLM_F_REQUEST | NLM_F_ACK))) { + virReportOOMError(); + goto cleanup; + } + + gmsgh =3D virNetDevPutExtraHeader(nlmsg_hdr(nl_msg), sizeof(struct gen= lmsghdr)); + if (!gmsgh) + goto cleanup; + + gmsgh->cmd =3D CTRL_CMD_GETFAMILY; + gmsgh->version =3D DEVLINK_GENL_VERSION; + + if (nla_put_string(nl_msg, CTRL_ATTR_FAMILY_NAME, family_name) < 0) + goto buffer_too_small; + + if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, NETLINK_GENERI= C, 0) < 0) + goto cleanup; + + if (nlmsg_parse(resp, sizeof(struct nlmsghdr), tb, CTRL_CMD_MAX, NULL)= < 0) + goto malformed_resp; + + if (tb[CTRL_ATTR_FAMILY_ID] =3D=3D NULL) + goto cleanup; + + family_id =3D *(int *)RTA_DATA(tb[CTRL_ATTR_FAMILY_ID]); + + cleanup: + nlmsg_free(nl_msg); + VIR_FREE(resp); + return family_id; + + malformed_resp: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed netlink response message")); + goto cleanup; + + buffer_too_small: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("allocated netlink buffer is too small")); + goto cleanup; +} + + +/** + * virNetDevSwitchdevFeature + * This function checks for the availability of Switchdev feature + * and add it to bitmap + * + * @ifname: name of the interface + * @out: add Switchdev feature if exist to bitmap + * + * Returns 0 on success, -1 on failure. + */ +static int +virNetDevSwitchdevFeature(const char *ifname, + virBitmapPtr *out) +{ + struct nl_msg *nl_msg =3D NULL; + struct nlmsghdr *resp =3D NULL; + unsigned int recvbuflen; + struct nlattr *tb[DEVLINK_ATTR_MAX + 1] =3D {NULL, }; + virPCIDevicePtr pci_device_ptr =3D NULL; + struct genlmsghdr* gmsgh =3D NULL; + const char *pci_name; + char *pfname =3D NULL; + int func_ret_val =3D -1; + int ret =3D -1; + + int family_id =3D virNetDevGetFamilyId(DEVLINK_GENL_NAME); + if (family_id =3D=3D 0) + goto cleanup; + + func_ret_val =3D virNetDevIsVirtualFunction(ifname); + if (func_ret_val =3D=3D 1) { + if (virNetDevGetPhysicalFunction(ifname, &pfname) < 0) + goto cleanup; + } + else if (func_ret_val < 0) + goto cleanup; + + if (!(nl_msg =3D nlmsg_alloc_simple(family_id, + NLM_F_REQUEST | NLM_F_ACK))) { + virReportOOMError(); + goto cleanup; + } + + pci_device_ptr =3D pfname ? virNetDevGetPCIDevice(pfname) : + virNetDevGetPCIDevice(ifname); + if (!pci_device_ptr) + goto cleanup; + + pci_name =3D virPCIDeviceGetName(pci_device_ptr); + + gmsgh =3D virNetDevPutExtraHeader(nlmsg_hdr(nl_msg), sizeof(struct gen= lmsghdr)); + if (!gmsgh) + goto cleanup; + + gmsgh->cmd =3D DEVLINK_CMD_ESWITCH_GET; + gmsgh->version =3D DEVLINK_GENL_VERSION; + + if (nla_put(nl_msg, DEVLINK_ATTR_BUS_NAME, strlen("pci")+1, "pci") < 0) + goto buffer_too_small; + + if (nla_put(nl_msg, DEVLINK_ATTR_DEV_NAME, strlen(pci_name)+1, pci_nam= e) < 0) + goto buffer_too_small; + + if (virNetlinkCommand(nl_msg, &resp, &recvbuflen, 0, 0, + NETLINK_GENERIC, 0) < 0) + goto cleanup; + + if (nlmsg_parse(resp, sizeof(struct genlmsghdr), tb, DEVLINK_ATTR_MAX,= NULL) < 0) + goto malformed_resp; + + if (tb[DEVLINK_ATTR_ESWITCH_MODE] && + *(int *)RTA_DATA(tb[DEVLINK_ATTR_ESWITCH_MODE]) =3D=3D DEVLINK_ESW= ITCH_MODE_SWITCHDEV) { + ignore_value(virBitmapSetBit(*out, VIR_NET_DEV_FEAT_SWITCHDEV)); + } + + ret =3D 0; + + cleanup: + nlmsg_free(nl_msg); + virPCIDeviceFree(pci_device_ptr); + VIR_FREE(resp); + return ret; + + malformed_resp: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("malformed netlink response message")); + goto cleanup; + + buffer_too_small: + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("allocated netlink buffer is too small")); + goto cleanup; +} +# else +static int +virNetDevSwitchdevFeature(const char *ifname, + virBitmapPtr *out) +{ + return 0; +} +# endif + + #if defined(SIOCETHTOOL) && defined(HAVE_STRUCT_IFREQ) =20 /** @@ -3230,6 +3429,9 @@ virNetDevGetFeatures(const char *ifname, if (virNetDevRDMAFeature(ifname, out) < 0) goto cleanup; =20 + if (virNetDevSwitchdevFeature(ifname, out) < 0) + goto cleanup; + ret =3D 0; cleanup: VIR_FORCE_CLOSE(fd); diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h index 2e9a9c4..8fd6036 100644 --- a/src/util/virnetdev.h +++ b/src/util/virnetdev.h @@ -112,6 +112,7 @@ typedef enum { VIR_NET_DEV_FEAT_RXHASH, VIR_NET_DEV_FEAT_RDMA, VIR_NET_DEV_FEAT_TXUDPTNL, + VIR_NET_DEV_FEAT_SWITCHDEV, VIR_NET_DEV_FEAT_LAST } virNetDevFeature; =20 diff --git a/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml b/tests/node= devschemadata/net_00_13_02_b9_f9_d3.xml index d4c96e8..88252e6 100644 --- a/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml +++ b/tests/nodedevschemadata/net_00_13_02_b9_f9_d3.xml @@ -15,6 +15,7 @@ + diff --git a/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml b/tests/node= devschemadata/net_00_15_58_2f_e9_55.xml index 71bf90e..f77dfcc 100644 --- a/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml +++ b/tests/nodedevschemadata/net_00_15_58_2f_e9_55.xml @@ -15,6 +15,7 @@ + --=20 2.1.4 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list