From patchwork Mon Jul 10 11:42:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 26715 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id ABBB37CBB; Mon, 10 Jul 2017 13:44:01 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0065.outbound.protection.outlook.com [104.47.36.65]) by dpdk.org (Postfix) with ESMTP id 3839B7CBB for ; Mon, 10 Jul 2017 13:43:59 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=eoyrkrKKlYswrIvdv1L+RDoMWxnz/n+hhKdZoX8zmTc=; b=oHC74xl4G1b8Hpc0SrnPDn+Am8UJH9jsCqeqBOjTYltjO7EbgtpigvDTbdj57TPoWuzqSAGXTWZNkPVHbsHGUIDnJrIG7yfsuVOZJMLPBKguixod0bmAEqQDr77YI0gHGifBX4yFwnhNPelydFn8OcgpcINSMeDB6yPyIC5E+HM= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (111.93.218.67) by MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Mon, 10 Jul 2017 11:43:53 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, sergio.gonzalez.monroy@intel.com, anatoly.burakov@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, olivier.matz@6wind.com, Santosh Shukla Date: Mon, 10 Jul 2017 11:42:27 +0000 Message-Id: <20170710114235.18970-5-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> References: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0082.INDPRD01.PROD.OUTLOOK.COM (10.174.144.150) To MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a837b6cd-7873-46d8-08da-08d4c788f2eb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR07MB3101; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 3:GJp+xybqoWCTCLdQaHYgIovwZ5TTLDSDfQ3dSejwFjtGHA33gQP01BDiwQIGbZELUe8xzGsGnjvYYY7AEMefh6JO78hSIh7LkLAnv7EcSiQxI19RbicQg2Aqj70LgbkpzwXjiFmN1Z+D7My6rlGaei+zshwUlxU4JygMYbZ1Ndk+8JhAulsau7r8SMi32eEpekfEOYYNGM+ll5J2o6boed78Xp/jqKvmn+xGuJ9eOTPGaje21pyDwKCSePEr78Tk2K55eddus5/X7vA/5JyFkmxJXxHlO1arHuk15Na99caMqDKhZi6L6xcEYTo4kirB/kEizVtupUdAHyvx/pvKjLUWGIICXBy9IgO55LtA2JZ8brG3qw/SsxPsXneBrUprP/wVtJby4dyn/DsHoFLDFB3hwhHkO2ocxOUd/cwDQjbTwed2AoGDc8eJGXgfvP9adBKEM7Y6eoXeiF84opWc9BtbHkm+yNVkRwmGMM0qNSOBEWtCOJU2bTMw4jp8pZ+IZdrPatqnVsDTLp+GsoHAi5LX43Pg+silcf2h86QTnOuH+IaibgwIXTR1FxfnMQm5UZG1z1MggUnr5/dU1mnJ6lI1/aBIaKJHIAe4SS2+s371Vdrvi5Vxxl88hKLzVtR5FBQJLV2FHOVetwquHhQOy9giMZyZedDnBYttq1+q/OvqTIJCufQG6SudQ1EFOYBqQ0MRtw+jnnEkhNloUj6F6JVRXd9F4Wxi3u0MiX0g5Mg= X-MS-TrafficTypeDiagnostic: MWHPR07MB3101: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 25:YUd9seicDdWRktjllwqICqZbLTGvQFm+OjvK5R52+1lIvf4vBQwE9DQ9ajFYO0YcJZBl2VvaWfutPs15LgD1UOXWAJkXhOVdZA+vY1UQAPInLNfP2dfEW+a0kiqSl+1kt9AU4rRra8E0w8lRiaELR6itFo/pdfMIyL8vj4v4V/SepR653+mspHN8OTPVNWEYeawL6uYOEJ4oh5XD/PVSGxIhdy7rZ0Q0KjdTuyVXz/NgtNiPc0W14fXd4UEcPV9STuxZQa62NJthIaJgUCp6C3+ct0DPveTOpanhd6HtIX/gGWyDAfSm9rKrue/U8G+IyRYwszbYifWqCjzfPdedTxL6lReIeUBvtOcTBAN3YjKaWAQy2sswva1+qtmMNM5MlhFSnctVGGn9noFnfFgcRpm3FGMSlW2m161u/PlXv1K8jIaRvljDRidYVUQUq9JWWr6V+F8Obyja20BGCZiiPS6U7rxv5Qb0pbr76+xODc/ILlaW1wk2gVHlVCL/OSK9sVee5nezYGH5Y8G7gInRdC/ETYY4D+AfsvDJqQEC3kTLzbRLuyT/TxNMPWL4yhViaWK2Jm8gCByJgF5euK2/hxTOfa+/Bw3V167qa7/v721AjQwcdlseJbB+SgYsK1v8U3sRJLlYf51pf4T9YB3etyiq8CWYRxERcMxDjHeISHG6COUNF61w9Zx/q+LbHbOkus7pCdjpS84zTt7natY5NQcL95J066tIp33s90ozXixcspNtP3jNzXeHOvxyyOyHPKa0JPLc1IKvjArg4KX4MvMsvX9Tdldc0gqMN5XldmiN63vBm8AUszfRNm8HFUVongdgXrYqv3L/eNY25zZuyj+PuRpftU1Sz0lEAW+wUBYtbRp0DMttyF5iXy52t1DtWEc21ckh6OLH4UDL90cKJZo8zN+gntHFQeVfdm3+CYg= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 31:ks26TRcJ8LFRLO8bw8DTaF67F4sOcCZcmDX7T/Z0XSi9RtlO/um5+d0MWRgJX0vHaCl7fDZKFjE6esTclqOr9v/XnIzAcQD7PjbRYpaTW7tE4AOWHuQ2TbTk7hNhB25RaeMXF58BRWjgOaN8H+3k8sXdIqEWbbDpWTXoLwlDcFJSERaC17vMaJ/xAFsKFo179IoM84HkC1tvxhonv7XK5Ybo8KnvS95ebqGs4YpvgoGFS1aSJHJf8WiCKbMmVAI7e6/SYIUI3uQCwIqA0raxkQktT5Wyy9E8T8KW8uXuhrk9SdJ6cZxK8UB5oE9eyt6o5P5lIsNcgGEsKXP8QwDLWxOnHONrzqQV2DGhRalje7XC5p6/VBhjqktDCXmFB5Xgc2PWgejAG9KuWQxAz3nPlxA6al73PHX6WTuqDyLJ9Z1OIlU0dw7PFJwvrvKGXulN66cOu9y7nWi1yqtspCSKv2LqXEw+Wp8Xxp95tMGrYdJo8LD3eIY81BwjhYENPkEhujBMESU81WfL2E7Ny4a0bG4W/R2RA0LI7xEk23gOMpFL9lyzq7obsycVttBc2dsQYCEz0qs3CkEt4iECCCMuT3T71h4eQ6LWxZZUz5/py2HW1IBlm43xV6hV7SfqF9DGdByS98TP+hgf6fMOyOk2HIC34x9MOF3TxNhGqcx/Nm0= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 20:qD3IHqfUapj5FOVL2TYz7G90HobxuFmBFhYbqNsqS8cBHTYDxu2tYCXZFE3YFuW7CIudgtyLmzz7lGUJHm6z++eGvtvJTn/PBrAGI87fJgUMLqxlMuFoJEaDv3CEO8OK+9b+gn7Ty6Dohtj3GqVXwpn4tzOdewFmXy85yPT4XEnvkJX32h+Wli68L4cMrOamQnqajAQpZOXlQU5yNOl1DwF8J+7N0EfWfMy0QzwXVnhMkudA1ksBMDKAg/i6ngiB3RD9ymEqQjrTeMJDlQtqSOGxY+/kPjk2hJOjcz3WWQUx+mq2pKH/XvGHDrvbBSqxVv7we5kQXnFavi7u3emGXCYcMXq68cBc2hq1L9MRC2mBL6GHK54I/supgVGETNp4884+Q/q/JUlIWKjSgrQGXGvy3GhLWvEcGsbh1ZpMghG+WyuRPt+tL+aqQRl6iN+H7ZQpcg0Oz02m7eCaRPm8KQn6T3zEdVJ8yqTMBAGEU1g/3VKQfE8zz6HeAmCNB1p6PpNT/2hL9tSljaF69Zl/WHPv9WHc1ttYniLkrQUIb/ZA1MKzfNtxzfh5ktGWZb+D6kcP9TyXmo3y2hz4uEeD6IvoLn0A/azxPxsAV9gDQms= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3101; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3101; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 4:fZVGZddnNnjeU6twk4db7RsYS3v6xBumzlP/Jn2kF5?= yl+MigAox2JWmWZBLeU96pn9r8mwLVN0cilpv4IIiTDqTz+7busH13FYNo7JTvcsw8QX0kvgF3wCSUveTcu5JaXhU9era7obOKfyApt3TEe4CaZjaf8Ejd59o0R2QBh/x69WPglj0bdC0Ch5MHPKq30VEMG9xB0o0hc7Tz6INpeIsBNuW5vpfyzNcJcsFPGw6kCIoxYDpJnn8hHhNbLIu0XpTDs0GIZ6FDcT66hapN3mAq3cibD4kDZlytwFKHDILVvBZDvuZma99mqlIOnsQv2CgB98izA5UKbqlu2QhJ1c4qvhFzD8XswFY8GffCXhQVrxDONuOdAz4OuF0Cj7cKO6RARCOAy0jnO5n1pRMcj1EnkPIV88OwyzxokBr2g7OIWbt9imwjJkQC7ag8+YFYu6RT8ml16e8ixGnZUq2vxeBkV9DdVm2puCeGOvXCGXkq0Nu2d94XNMSojxzUYkgNokeOhvCUPHGGZzAugVswI5hx4lRIHrS2aZlx108WhkyfNpxdx/aaFoEXfnUKD7/uzwjc9xT0m5hdjCwNbRNpzSyZFESsjYqoG7d+CfcDRIM5Lwqt5EycA3XNxWOeNRcLDwCmmyEmIOvgTJVnmFUL9GT88kYz47TwPjlUXqEU0wD5GIbLgbGMJDRi6G2WVR4r3LGPIUB+vNdT1BQxSUaD75whqGaY19i1X1JwrJTBzEsZB0W4W+IUUGrtg6C6z5vB/cihQRZls4I8z9qVNy6LAr/hjHWCAWs5w+NbmGViz+1uvU+YHN12lm08/EbigCMK1ptsg6fHZKGo/WC6tg+QTXcMOuoRYWiEGFd4o3hSClAGvGKnqJ3MZRcykNpKbyXcJQOTP/P4CF9Ue04h4UCTzg/EayMa+dB83SFs3DdEivGKLKfC2NLMJgwfLTiRzaLH23iSqacq0qocI7g3nRUJZQbEQfp4Ej2ByX6RfWUcHIq9+PucIXkE0WvdURwdbdFh2vxF5RAPrTNzT84awMWcKEDoq6ZnLJmynhjoI9VvaEuy/1mZ52Q8cvmtJKeAkdc+FewxAnoRggJJOfMuY0GTT0/rKT1leP0S+7HJfz1inoVIdfBhSO83kAiW5zY7zVPZeTsT0U+gzxuqjOSJ2Unb7MGyGooJBZgh9fFhpaAuD0MNhdUeb+yq3uQumsIzjgWiZi82tOG4mOKgALcU3NGWoWwjFSCQew5nX1l7Uqx4Z3q0vQy3mtbXoAw9nk4TVqS0 X-Forefront-PRVS: 03648EFF89 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(42186005)(110136004)(36756003)(38730400002)(5890100001)(53936002)(2950100002)(8656002)(2906002)(42882006)(6666003)(107886003)(966005)(6306002)(47776003)(33646002)(66066001)(478600001)(72206003)(6512007)(7350300001)(5003940100001)(3846002)(50986999)(6116002)(50226002)(76176999)(50466002)(5660300001)(7416002)(48376002)(1076002)(6486002)(7736002)(189998001)(4326008)(8676002)(81166006)(25786009)(305945005)(6506006); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3101; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 23:ltrwlyxEamxVDrKWiEdHzz0kdStKyOIzGzsLaK2HA?= n2ktgjUJ0PuY7spAiyKlChGIXVut5hUsSj7tgHsCfxvmEZLk3QQxpA9U2KARXjz3cejauVn0OmMWTXp4DHckJDgsUNPSgciND2gpOEFdCCOgEyXXXR/6lA4/iM3DuICby5o1oo6TXHjfY4WGu6awqF2YCWGtZ8zQq7C0Yf/OW9nFIVAx/rsyt3utgcMzsN7IHJ246iBJ7sov0A4cI2AvZlWLFiDF+fApvHbk2vn3iDwKkyEeZwnyVvdepVylKyXewuzfWWkYn0F1y2Vn88B8xkJgtqtsWi4envD2wum6syPHraCHaaeff12CwJivxgLPB6D2WpB8DzWPiqEdbw/E+d80RfZpeCc3p+rGuRaMmJhzW4gB0EVYOWgLo3c/0hvo+V20zKeM50Nmz6bVv0eNpPmomjEf0wTzIgiTJJUMFNf8W1UzjpfyzoXKbdIeYHcdUZARcHb+6xbYwe6/iIzXsbUARStW4FPWhUtGKAbbqwNgW2pumQH0lY61h0PwI1tzEzE35fswDN5trWEw7V9Sod2RibZtMl18fEirOdW7ZO45EF5L1upODNnppvRTKiyLN7BHSJceFkXdrg+DzwcWAqeKI4IvCdb58B2uci54eMCtsbWLxee2bAAN1cPbUM9P6mga3Jff34XO9aZX8V9dZVS7js/Qs/39rxc2ujSnEvG/9z4ufU71pH4kx+8lrSasO/GhcrrwMIfJ4+R6GdNYia7SUm/C4X5cSns7WAGqVk9goXHsFpdZI6L+wfSLBCvwm0vhJHLHWyrqBoxtwqtm7hAe6y6K0wV/LAF+VO2sr6mQChY0vPapiNQIfm/Gx61gEhv/uiPjZ1XkzXiEzwkrUPCWfWj4FNjug2BKdaPpYwk0BWfPHFxAN/zupZNp6kk5kV4zYGZH3H5glwBAp+A1N3uo20d9BkqA/mv3fY+In0dN7F4eo7jxJx1M2KJ7GdDjfFAUnnN6Fd2+AT8iDZdRw5Q90pmRLt9/rKlWSsd3wTAjzfGO+7B48sxkG4auv7JF71Fkd64htWjrgFM7zr9YxRZ95irkizjOGNsqDCsa+cB9/S30ZYTRm/Bl3Wh8Fk+eYeY365w0XRgrrykZW+yigsErrlQQZAS5d4fVBuco0bOz5ZIHWUIK8CQcSyyESLI6jBPNLq5hNrWNd9N7gdqVjG/enpaiw4i59LeNOTm7AIqag== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 6:Q1Z9OESL589CYzBnKBdx36oTbnB6MrsbDi//3MK6oJ?= RlOAcqUEzN/IVjKfUThZrEpJOGvpHNgNV1o6jQoiSpMYLoVPA6A7wFTDwe2c16LYk1k6fUCtF8CUWqm5jKBzDzwC7BWsA23LP6cluA5SZ9jIJxzNEnb/BwCh5LaTRI9r71jRBP1gmI3CU2TgQccDKt5jwMjoNIxAj4yBI4eoI6KBiX54whRUj6nthjKFIJPuRy1pntPcN7n3oMvtl/stm2G/KRLWl0K/xLxqIsvbaPZVvS/PtyRh1HR0b8b4LKZDrzhpxFiHK9z03yfM64QDYTcTKbcyjfaqON14sOWQrvQFw1w0RkyaL/8RWXoEvE8/Vm158KZJDI+2eO8lejVCfg1n3arQzCmPFUrGYf5XFDJgBRlm+HG5yqzNfiYo50Q2s605mWZtWNu4wjljUNqawKFtv9lI8rlcRVx3WgJfb/srXTQMhcPfNMKSTspbBFYVavZiqUCAiP6d42I+3mbKDuUtrZNl/wYfnDUit85JUuW5TfmlrHwMti5wD82NO0mWdTdlP5FLkUn6yaVcbGV7uGXVYlzXMguYoAAsKRvpJUvgDaEV4DrfAUJX5AvSKsBU6loSAuWuTI+yuWtdTi+cHKM1QtNwz9yDhg+Frpxp/sIrRD4kbUA71aAB9KBaSVbMRQvjQU7XR7oazIrVEynLR/mBDIxcUXK9toN2K2YfLVn9gUzbSoQrcRFs/3Zyro19OGuXXvZ9X2jVfNUejbRi58qPp+UQgQ1ydDMr4F3aTUmnjSHCM4jedvUj3MpQf4Sq5/nM8uGzBBNtl5+B1Z6NWCDNHlgXUWaOHp1VJo898tJJTZLdJ1zzRXMrRcYYkHfNYyMmnnjtHy0m1RRe/cWe2UdbBSOCEdoo8OuNGec8PjiU/TtHc7EZ0SI7Erw05Ez8ajlTlZof4esLJks7WTdi5iscb4YHou2F1ujagrOoAwmJ5wj7WlYdz6KhmXv1povF0= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 5:ic3Lp0YBeX6HZLe5B/i8/BW824sFdz2cHUkRjJUJ0YD6Qog2jgFP9Xv9K+0EbLv3SypAOQ4s7ithir+lzw/acQ1WXOkabfiobRNq+qaoednqiZv8NX15DNVws1L6obTBb2rzoYeZQLC0UHPWtjdB07o4k1IRKpxlcAboo7hTZ6qer3tsLa5w6fSlzP/U+cbGkxkPnMb+Gjc8S1rLAmbt5AYezaQdAjesVekjcrEwssxhQjS2nOyU40wlXJjUgS+Eh0mAGJkyAzXssS2NTHcJ7mCB31ZZvbfCESUPbuaQPJwnynAwoWsXOw7TRiZ8Mmo3D4S40dB8L00qBURot9fmPsjxtyIqyFu+/Buic3p8lZObe1PUy967iOHvc8XP8eWZkvos3eS0v9fAUb5Am0HcckriRQ7zltItr7iYc/yvw5NUHApL0DoS/xSFHJO9MVpEG9hL1n7Xlxb8IPZtiZ+uLqmTY6SuH0mBFS3Pla/n2Sbdu4UvImVTBjxhCcnbGK4l; 24:9jiKNn9CFwJrO1qMF22J6lN5xUPXVa070/ZXhKUb20aYGOJAmbR1OjfcMSTIFolaJLSOM9LBOE71fpgdz7FD66qvOy+gpz/kAX1uO6jJax4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 7:djr/K9svHji/W9+4hnZDQ2vBoIGvqeIng26QeVnYBlGnP3bVH43M7sWnSdYLSku+0k9HbUphjfde2knB90CZxvhcum/PCfX0PDHDhpZVvaXmnMROEjgZpaTnbJnp1MbUIE9MpAgdjVSumP5e2rmyAy+bBgpqgttu3UNG6YM/IN+FT81vCmpq9zYLUTkKUKi5ITTUH0mG2TgmtnwbFN4kQVKJ5QVrLa7rM8iq13zPJd8rqw0Z1gO+8eYhUKUv22SRA3N/3QII7t1zc5EZYLAxtV+21gyvFEvAhV+4a/aKbOQhhuSX9IIAnhNrGKU1WGFIiQL4s2FCbWupPzctM0WlzWbaWgdcp9Fns3Mb87oKREr1wmWrGxByJj9BuvBVHWOCcBuCNDsDuyY5Nzn34h2y5oVEC4OZAP52OJNZeLFXuZbg8qb+/GippM7pyBan4A3FYCiX5UsAtH/CPISHALyy8wtuWB9Lzsq4aqbtrRjPFtkGE3kAo+nLCAoyqYcnVl/8YbkcsGu+vRkIqEhIMAJolevNDUnT7DLtT+Ro2zu4hIleIUpVZCUMdPlOTHAad5VXh6Iq6/IiQesTraW5PJqA/so8CRo2uT9LHEpGQa2f4OLjZEVXIqXPsXvvUBHU6hsQDhGtEazqzIeVdWFE7hOwnvDeZQzqxFeOCR/2qCctKKIgwjRgEoFWMpcpgwwe473D1c6yMXsiIcP9xoFX3u9Y+NDmc/661Z/Rpaw66VaZjgXcEeYmkjwkICRiqoym4r5PySeW7J4QFkQVYOWCNBXUHsizR0yfo2KfaFZxjGb7FmI= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2017 11:43:53.2199 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3101 Subject: [dpdk-dev] [PATCH v2 04/12] linuxapp/eal_pci: get iommu class 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" Get iommu class of PCI device on the bus and returns preferred iova mapping mode for that bus. Algorithm for iova scheme selection for PCI bus: 0. Look for device attached to vfio kdrv and has .drv_flag set to RTE_PCI_DRV_NEED_IOVA_VA. 1. Look for any device attached to UIO class of driver. 2. Check for vfio-noiommu mode enabled. If 1) & 2) is false and 0) is true then select mapping scheme as iova=va. Otherwise use default mapping scheme (iova_pa). Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- v1 --> v2: - Removed Linux version check in vfio_noiommu func. Refer [1]. - Extending autodetction logic for _iommu_class. Refer [2]. [1] https://www.mail-archive.com/dev@dpdk.org/msg70108.html [2] https://www.mail-archive.com/dev@dpdk.org/msg70279.html lib/librte_eal/linuxapp/eal/eal_pci.c | 66 +++++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/eal_vfio.c | 19 +++++++ lib/librte_eal/linuxapp/eal/eal_vfio.h | 4 ++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + 4 files changed, 90 insertions(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index 7d9e1a99b..573caa000 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -45,6 +45,7 @@ #include "eal_filesystem.h" #include "eal_private.h" #include "eal_pci_init.h" +#include "eal_vfio.h" /** * @file @@ -488,6 +489,71 @@ rte_pci_scan(void) return -1; } +/* + * Any one of the device bound to uio + */ +static inline int +pci_device_bound_uio(void) +{ + struct rte_pci_device *dev = NULL; + + FOREACH_DEVICE_ON_PCIBUS(dev) { + if (dev->kdrv == RTE_KDRV_IGB_UIO || + dev->kdrv == RTE_KDRV_UIO_GENERIC) { + return 1; + } + } + return 0; +} + +/* + * Any one of the device has iova as va + */ +static inline int +pci_device_has_iova_va(void) +{ + struct rte_pci_device *dev = NULL; + struct rte_pci_driver *drv = NULL; + + FOREACH_DRIVER_ON_PCIBUS(drv) { + if (drv && drv->drv_flags & RTE_PCI_DRV_NEED_IOVA_VA) { + FOREACH_DEVICE_ON_PCIBUS(dev) { + if (dev->kdrv == RTE_KDRV_VFIO && + rte_pci_match(drv, dev)) + return 1; + } + } + } + return 0; +} + +/* + * Get iommu class of PCI devices on the bus. + */ +enum rte_iova_mode +rte_pci_get_iommu_class(void) +{ + bool is_vfio_noiommu_enabled; + bool has_iova_va; + bool is_bound_uio; + + has_iova_va = pci_device_has_iova_va(); + is_bound_uio = pci_device_bound_uio(); + is_vfio_noiommu_enabled = vfio_noiommu_is_enabled() == 1 ? 1 : 0; + + if (has_iova_va && !is_bound_uio && !is_vfio_noiommu_enabled) + return RTE_IOVA_VA; + + if (has_iova_va) { + if (is_vfio_noiommu_enabled) + RTE_LOG(WARNING, EAL, "vfio-noiommu mode configured\n"); + if (is_bound_uio) + RTE_LOG(WARNING, EAL, "Some device attached to UIO\n"); + } + + return RTE_IOVA_PA; +} + /* Read PCI config space. */ int rte_pci_read_config(const struct rte_pci_device *device, void *buf, size_t len, off_t offset) diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c index 946df7e31..c8a97b7e7 100644 --- a/lib/librte_eal/linuxapp/eal/eal_vfio.c +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c @@ -816,4 +816,23 @@ vfio_noiommu_dma_map(int __rte_unused vfio_container_fd) return 0; } +int +vfio_noiommu_is_enabled(void) +{ + int fd, ret, cnt __rte_unused; + char c; + + ret = -1; + fd = open(VFIO_NOIOMMU_MODE, O_RDONLY); + if (fd < 0) + return -1; + + cnt = read(fd, &c, 1); + if (c == 'Y') + ret = 1; + + close(fd); + return ret; +} + #endif diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.h b/lib/librte_eal/linuxapp/eal/eal_vfio.h index 5ff63e5d7..26ea8e119 100644 --- a/lib/librte_eal/linuxapp/eal/eal_vfio.h +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.h @@ -150,6 +150,8 @@ struct vfio_config { #define VFIO_NOIOMMU_GROUP_FMT "/dev/vfio/noiommu-%u" #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x << 40ULL) #define VFIO_GET_REGION_IDX(x) (x >> 40) +#define VFIO_NOIOMMU_MODE \ + "/sys/module/vfio/parameters/enable_unsafe_noiommu_mode" /* DMA mapping function prototype. * Takes VFIO container fd as a parameter. @@ -210,6 +212,8 @@ int pci_vfio_is_enabled(void); int vfio_mp_sync_setup(void); +int vfio_noiommu_is_enabled(void); + #define SOCKET_REQ_CONTAINER 0x100 #define SOCKET_REQ_GROUP 0x200 #define SOCKET_CLR_GROUP 0x300 diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index c91dd44c4..044f89c7c 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -206,6 +206,7 @@ DPDK_17.08 { rte_bus_find_by_device; rte_bus_find_by_name; rte_pci_match; + rte_pci_get_iommu_class; } DPDK_17.05;