From patchwork Thu Jul 20 07:06:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27073 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 9BCA858EC; Thu, 20 Jul 2017 09:07:02 +0200 (CEST) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0069.outbound.protection.outlook.com [104.47.42.69]) by dpdk.org (Postfix) with ESMTP id D9FD6324B for ; Thu, 20 Jul 2017 09:07:00 +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=ImcxQJfc27SttH0bFwuh8GVciah9as1scjydnRmlgw0=; b=KfykHHx4WDsDw4NpQdXN/qZJ4Z3cSMe+Px0uzFgAVSYVB+GMzJBzkT4mefOpV00qUWSavLhR7eqIezJCFecKIUd2qtQptN4npBTpVEYxe9m+L1Y8ht+uQe5aYhkYRR+lWqPAwPTw9b+v7w9H4KlUOqFmniySY0PtTPZY5akXx/A= 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 (14.140.2.178) by BN6PR07MB3090.namprd07.prod.outlook.com (10.172.105.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Thu, 20 Jul 2017 07:06:55 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org, olivier.matz@6wind.com Cc: jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, Santosh Shukla Date: Thu, 20 Jul 2017 12:36:12 +0530 Message-Id: <20170720070613.18211-2-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170720070613.18211-1-santosh.shukla@caviumnetworks.com> References: <20170601080559.10684-1-santosh.shukla@caviumnetworks.com> <20170720070613.18211-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: SG2PR03CA0052.apcprd03.prod.outlook.com (10.169.50.20) To BN6PR07MB3090.namprd07.prod.outlook.com (10.172.105.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9aa15bf-8ae9-4f5c-e76a-08d4cf3de9a1 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:BN6PR07MB3090; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 3:kfUfA2XuyUrbSBcUjbNWXUq715wNTiuJR4uxH/fP68/tuR2ZmfXUdLAwhT0GKxeMowlbX+2Nosvg9xpXfl0h79YNel4urQbRgm/cUmYSwkMo3/8z0ldkL9IdJAH7kkDJU6tiEqgoiY6EA4afwnx4/hHz8imKgPGFyzsJMp7SYHMSVM4EGPefv0UrkjW69+MsWPSUees4PZAffve6sTf4IBe5znP+c4dNv++j6Iq/h8JvPSRgg6G/lF/Niq/7Y0Dc8TneMnWcYp0HK+nUPjom3+YOgIhuppued0YLzAdWgfCEFNGRKZ1ub5VJ4V2HKb3Oi6122Aqa61UpB9XxTpkqJfavPF9nHr+Ud5JQUQWkydrIJ3UfoVWN2+UZ3pH9rY74FIbzlJvMpL/1PKC/OEBL993+KRRG1cGP9V5HEFL7cB8GCdBlW1BSfK04/Irmu1MhRB5kWJzudjFkOV0AeW35QO2ALZT+h/VHjR/VyrnqNQ2KMy23+O7urzW56Hbb8ZKPpjZVewH6f8LqBPyduJP1UkKv2HtSveoTiCyKCv8Gx2+LRzBLX6wlk+1VpL9++DK2vS5V85CzImeRkuWikRP1Bf8p7D6ZH7dS/Yg/8aDTQb9KWQLShroCmSXLGuFlxwOVgEF2WF1MJmn0QPI36A5vxtNbmT2O6gu0YueWRgd88tT9hjGMZ97NNxLsCt6N0lA1UPKZ59mUP7rgkUBbD6LlHKtf52hdiV5C74A54jFXOY8= X-MS-TrafficTypeDiagnostic: BN6PR07MB3090: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 25:FabQusfBTi+U0RVLH6Q+PrqJ3D6BcL6DEEe4zxfG2Vtk4vxgGBu6Guxv/emWeDuJTxOZIR5s2zV3K8d9XDS6D/6E89iyle8tXZPlksveneSnr0cK/sUrVgCUDE5Mc+piTGBmupoYEk7PyGZoufaC+8fEqHkVBYf0bB1esQTCwTz2JT+NnH416DcryrP6ts+uIr12msS2dcTK6JLWhWdzu7OfmwxjP+2j0cOK4nplKy5lGtcpkZ92LHFHOMJsug0orfY2AiLJshLLEIE3gM/5kk/7AL460QVI5o0eFeQZ9IADX58sVLLEviTX8V62LID1SQcof6RE/W5w3CZQRms2BFp4qVpFA1KvDCV0p/hP1hxPrT4RWO15kF9YDkHVhlyunCOOQEsYmKuNcJRw0AV+r82HEUdUKVw9uYa1narmaWLVD+DM4BA4sJVwZGZV0CwAGV3MwN+YpUO07q9Op80y28CBRamc4X57SoYvoHWuxRz4gaOVMRJnjKL0O+O444XxcrkpRKFibGKLC8qNsobAMDLPqdi2xdwRtDY4whdc1tyliM+nCrdBIkP9d/gE3g23pft5drKS2rO4txpEvBepOm1p3/BiTCXDoU/XT8lKvdKcHvpyfzIbDV+YLh8Xk2rr4F/i7sdT/SAhEL2zjASIofqorUUTIb7854YE00IKoG9I7M5JEhE7zPIEhO/iohWTHaENFNpHryKL0nsyJO75d+OwyW0CGpVK0DHL+/0TI9PVjXpI9/rdl1ItXOKzb/nVWaDkeo+RU684re76p/ctiQ9R2/eFaE43Fl8nRDcj+wsaJZIZpFdP7rwUWiDpJegCphyv/hZfPZeX1/EjxRjZ1Cc24BU0kfLrDuXUxqf5d5dXM2IGRhVNk9PMbZBSx8HjndnWS4OFviGzHzSG0zpy81O/Np+kg2zu929V+v3fw8w= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 31:VOTP7krtd3y41a970NjTZz2mPuh47Ol9AXfIGphQnM8iHGpuOe/9V/vd//tG+g/yCdXZRqalVqIGt8DqVhmcfyAKwyfu4gdE2A6G91rOTwPrJyddnuW7CFiXKo1Es6fW1NUAN5hDQgcK0VMQdMpOgv1m8ZcFTt61HT9diMObmxgB5l0FmWGN1PTg95ZuF5WQtwwV0mq8ZJzUMMqpoGI58Ak0kUlSFAPKcYoPZPt29YnOAmyxS1RPWzZYxIXwzSbDtucgjWY4ykBQ1GDFt62EP88zC6fkkZsQK1NPt+i79UAOTdZ8riqYQjVZZTdNCgct3qaGhGgDsFaxh/n+oOGI1zXZl83p7R0uYYfQqFS3yKufCit1xUbdi+p6ufKpkBe5yx84YgcvvQezjNwC6wEohnFfPsYr9encdHo2u8ZcwtwpEDSQfQ/bgH9mWd/pTxER0FsKrPuKtjYthNNNrpSqiwhhKYeq5GIJmTNhrcwpYtEu943ZrZK2WXh0i6rCAGaAQxlSJS1ugk2Hv24BEB+Dp5gbUFasITuRPHh03tbGNawZr+c7fu2rb5EReSo4lmvy3cDAEEn9ui6B5YKBC7ms1KBcVyCXCuNdt4tfLVI7K935O/v+7oNqPrp676sBTATAmMloCVN7IX5FHjWQDnqZi/jNZJh9O/LKqHAQVhUFYzo= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 20:yji0XTlkxCbRPCPHn7emC5oQs5wyEeAwGcHLqLvDp3mMrnfK/AcsWHuuEEiC+2PVADrr+7gIODkFzKyyHc6Iwh/VEVCZnWjHBxnjqSfIVWyb8aNO6amjiR2muwg9gPWAwRjOCiszKeK2ifH8amTDLSsWsDFM5hTNQ+hIrDYsRWr2vsfOqCO4dQ7hyxZvCiVdAHVxTBaAeS81gophMaDdKRHAjlDn9fKUHpU5Zg4JPO0caI2MCfqnwDHyEvjL7tALWT/kNE01qn5sRngX7QVl+agKOo844XEU5odPL3KfpJjgfFAEtz/KsrLbtbIA3as5Sg5NeCUhBuBpJ9ny4rY8bY4qGk7y3aWkQ8N3l3shFFzspqzrkBEWEQUGx6U/k+7Jp1bAgPvaWblRu6YpqGsSpRJ62pKwyGpkOafZTJaDidvnTRMvvqNUkLVavhypNfTdexvrAFPIgQ23TV1eLkJDswGfysHscK7BhAhfDaHrVu4RnaMlh38E+ZINytc2oeMI5kGmJ8dZFKpMfIlhIM36+o6rcrfad7oAmfvgawQO1GSloppsgWiGAkbN1a/ZJ+/AI9C9SSKVJQH+f91bVOQzm8sOYWu4yXInmO3ZrlbWnac= X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(148574349560750)(167848164394848); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(8121501046)(5005006)(93006095)(100000703101)(100105400095)(3002001)(10201501046)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR07MB3090; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR07MB3090; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3090; 4:NkKjXJ5sqtywwNWYNrcjiCGH+6zdt4/WNpFgA/GYCH?= GC3gyLknM5/rxVcCNL8US84EK/l7CoWsif232EtqJBkXfh1Vs/36uNLvx60n9e9mRokhpHPwsVSTpWVL+SPqMnzCIklYa7Ck9V2n/ZTK1i37a+U+ktPK/S1Y8WnBoKLmmQCCfcTw5X1LtEZUXIqUENO6d71XifF+dqxUYv+rCV5aKQF3wzUAjMkvHGDC3lISPnQjTC7xxQQ9EekFt9tvyLz/qukSx7eDnfb9ddlBgfnFwbyRCVQZBbLops3dXraYe2KiPt2tBWQ9xyYDmF1FaAUc0ytbgdOOG603ZnVDLhUBVXyJfZUjqMU5JNY+4p9Ijhhr9lAWo5o+2KSU8gbjQPvfwfcl3VOZ/2YT8IcC2PWVGQCM/2OcOaYrH/6NUhuMA1Zkj87QdVUzzNF+jgcVu1SrHIvz2fcRl1EB9CKTgQe33t4u/l7ZcPyGUmldLxo5YhBkznloYU4Zt3vzJRUf1Pel7qBACWDoXq1DGZU4LO6+7P4r/ZDhPc9U3C5q3Sy5ix3O97yldVx+YLWv7g7BI4r21oKs63oMrj7Y9tdxNuvBKsmUKsokatIFsNb345YYfCjQy2oiTWB+GMe5qQUH0cyRM7Ztf4LU+esClHobPa4M0tOG43H+Ft4jRycalthFZcRXz6k8vHs51SbB4JdSMTbGtq3cEOKi0cRfSV2fi+ICw17bGRVAXxPohGaUNTYpCdJ6clspv+BrK51PYgepSefhoxMmAB4Bg20eWxXW0mkd76/2VhoDWDbfOvKBP433mXh94Qk7JmHQs8ngxwiNsCRTxEsn4G3rKJGCvL/NuTeaXYgAh+aiuZzaLIPBr0KQRQBHIuwhKX9k5vrFDc0iKGlc+ZJ+aNTGxjePw4u25Ag+B1TnkWuEx2krKI36k4fUWDtWYqIJJo14UH0mU0ORl2vopdMcwrBzz4tdZtXeS7H+0L3ipwX/+DLq7A/+3xbsBJKdgLhnzdDyvTc9MinEqOYzHeT1M6WI312cvDZcvIQZ4v7q2np1tkJYUzQDDUy5NJ5GXFRBuufmYRV92pBIOngMgFERN6FJduK3CrIl97nZwT6obMdQkop85C5mCMFRL+eSo9+hKkeiH9gxIE7DNHy+utns3WrHzwZ4jKroL6yUY41Hlfvt2QzzBH4mhbtU0AH8558ud/4jSNz0P5Y1AghCaN4t3MPxfGG3lubMcnvo97TcrWBDZg/NSnDjv/CBFgc4JzLYNquG2gsziTDr3qTMveQXpZ1Yw+BPfziUCJTSqlDMhxRWHPTowKplRnqrQ= X-Forefront-PRVS: 0374433C81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(6069001)(39450400003)(39840400002)(39860400002)(39850400002)(39400400002)(39410400002)(5660300001)(7736002)(25786009)(50466002)(42186005)(6512007)(6666003)(2906002)(8676002)(81166006)(478600001)(2950100002)(53936002)(50226002)(42882006)(47776003)(36756003)(72206003)(5003940100001)(1076002)(8656003)(4326008)(110136004)(7350300001)(107886003)(38730400002)(6506006)(6486002)(5009440100003)(189998001)(575784001)(66066001)(305945005)(33646002)(48376002)(6116002)(3846002)(76176999)(50986999)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3090; H:localhost.localdomain; FPR:; SPF:None; MLV:nov; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3090; 23:npqXLHRWn4lxGo7NRjR8zyqdgSFWCwVn6rCljBLmC?= 16bYaH0I6uPRrr3uyLKoRVoek590uJ5IyKVpW6W+APLHe9QfZfXp31TtgnyMQK/aW9EWztvCzUFa7WibETXiwk4IcKRxEODktyqbh4nMCRTIu51FHwZ87vUAhnEXYhE3U6DQF9eLHsnrq1IeYzARQ33jNn+ocxcdn0cPSn/eDTqQ//vaxHf02LbGqNz1hk236Xe0bLvteA+3vQXSNtSNUXs6Eu4vasRCuUUJxIonYFKM0jnFZC9Wd+U/fboQUERo/H+kzTbB6xDx3XvPDQPQoRrmx9Ds89p28N9QRwnzkJ8Uo0yzZR+ZcoTaI+QRYJWhMM45uiY/mw36UMNfTIUA7A6mWSmiYyogKK/O2E8nEz0g8AAeE9g4YsBkPG2eZB/mV07mL4aPfcOjg8lhdWWUyxbf0t0hpZufSKPfHFAMewrjhhDwIzz/arJWgLxFHyKkpVcFd6ywy6PVGbJH+s1NbIhz7phobMLRjlEx+MfG57e78yFw6J3H91gk3rnYNlVbP5XU8YbdkqKU5LI17NZ8G5r9HycYZ3SPssOVkekplpuwONJrpl3FJAQk9HHFgqAzc+ttN/hpHV/ZwHdT/VNhNMmUz3RHbRLT000DWmwX4Hj1Iz7V7h7D/YLklU9HfZZ8B1ZH6ccIXokAEWlKL1RP5OLuEjSSVQcg9G/HWsUtuXQ7LepOXhoQqHyQdtReEsRVeGc/eMJDUu9mLACdY/7qkSXLOFFSPpMHsjfx8ih5ktP9RgHfg+McW+YuNcCGZYph2/0miNfjlsofQ4Aq6dZYGdVS0WovEwvvh7qzfE4iCDAKdKRZJ0oWWaYmWDvykvLT9MyH6S7dPDsEVZoMjk/Cdvncd3xCxOV1NviDhSy1eJfJpTQvYusnCJNXek812abA0wlKup45x6tz5331wyAc5eokihArvIoHZh4E5G2Zy9dCQHl88NAWdS4J1+lRfKZtsFNHhD8Sy9tkryAPEaUARWEby33B52o6InZUczRozmru4cTP7KvGXuKX5dl0hOjaH/Uo/L77oQeTOOp0HXnM5S09c/Oa8jdIjJh9Dz1pdAv7/dBjfHgPMMk/YBHt0yxtrL254dTYXxt8WmO5A1SX6Qk4RXLjYO+6FC5VdQqt+kmUveQ6LGjUI1AQRD7nYzwPo2AjSIXtn/Y+Nhuhjf/D5LkXucMv5p9XhgLp+OuGfgc8uP/8HkqRY7ujTWW0IlmOmBDbJ32jGxZ3GQ+TkvGNXjz X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3090; 6:kiPJXhxaw9Oo5/cKrViGMH+JPrzSPFRPa415MtOZIH?= FSmsl69fBE+5k3WRl5/fBzxZUS9DCMF1pyTks0reB7ombJN22wf5apvQ5A2TswKmVN+2y7Fi1iQjsazUU9Y76zNiJCtKqwhUs90FaaZO/F6X2J94fNsHaoe3pZE3S3QfXgvTBhoObkQMO2EORI6WhhypKpsXrvOwlu3Pw2Urmef5uHfb6sN8fok4Oorn2OXMfdfwyjw+EdQPsHIvrQgb9plYpfQV+XqIiSSfjaPZF7359m0vlboJo++ZzsArM8uHRYEZnWR5sjc6740othVdZzwhI2bSUYa3QT+Hz2GU+tHyahDwmEV3Gq0K9GrUaZiYxy9trEet8L2NWNTIOlORaJP/OK8VjsfcT0fvr54p+m0wzwwWaYcOEYdghoR1mOZf+pZVWw6X/NBY5/SO6u6kzNdhWm2PxhD+lfS7HG8qeRdrxx9kjIcru1WiX7Eea83seyaX6EzQeoMXkFLS7rJzv1y3g4aW21kLLGLFk6dpv1ueueo+mZu/dDCvaeAbAsKI9fBpjkNaJSgvIKoTkpkMPflbKYmRXkgC9ZbVkdY3fbQHdw9qY8bUyBRCmoIMKx7gaFd6PokROXa9YamAedi2cbXGZjFqK+FY5yzoOI8+oj4Vp4BK/OggkVXzWVYAaiqFgTpk0Y7zxBXhWn9KMI89w3LAY/VtAXl6RAX07WKdebV3FPmG0auQaMfWUsWflxDoSWmsdwCVM4n9q1E4oKY+ap7OWOgXeMwMRogLt0FZgQzrHSfpJPrt/JAgIf+18Xn7mZnivo9xrv/tRZHRJKhgS9wLPH4EgKPHNITDQcEIzRBCTarLRbW+8X3tofwiQfjZ40tRk1ME1TDubrbAi04DqLC5sviB66DvE6FCLkeBLP9t9PmPGIajBNxltZ/aAzldcRLGFmrgwUYdQKYEZR0qRUJwa3tqgQ6JTIThAK/w6YLe640niZkAzX5CtK6PEj81E= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 5:LHJA3FDhAMK0ooZrOlqWwstOCj7eUlpFDt2Lhiaia5UTBboLN0gCCRtHiC85NscynkXuLTx/Y1+frmsYEHVOZhpaFjK3Tx29aQoYKQe1kcrnVRCNEGUZNsADdxU11QMSGlh7S4W0yKmiCLjBy8HBhEdPwsFioUAEjIoabOpmrJc/CVlvH0ShrqnLlCy4DzZKEaZxg7KljjeyPzbHoItaJqXLbf2w4AQfCuM0KBN/Bu72pE0Qcj1PMVreF0wE4rkX44GZ0fstNMLo2yMaWT9uT0qDbvnxwjil8kdtJDsGqnfgEpiwz+Un/9adfK0hILlvDCATBDTcsQlXNHVwpuV2Cgz2Unj0HjHa7caDqafGTT7VNy4FJzIT3u3DS26nZBKz3ku7HImcrqWJftlPMGXMUXTizgsMZZ7sNoGiE6bjONn0+9s395CnNur7indEbxuJ1xgiFU+/p+1+FIx7vl4YOMA79v00fiU4ZL0GjsKAY3F7NWxN56B9E/X1lqy+BM+o; 24:CWe2Txr0mHV3nDL4mlJ825fcqvwuL8ev4Is7DK09y5PPu5gXwhVluPw4+UwYLPjW3Z6t0yO7+PWxqTxg7AXMq3Mxp+G5YXjTadnvavSrZQY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3090; 7:bYMO5MmwudIoZRZ6uKvmMX8VGC5//mBxXCRqwk5J3IXMV+/EVov6S83f9tkshrSlEbq1L/5zT/epNPtG6977V/1xvnCa5k/2DxH+RmZUOcQPk8l/NKTnXH9bMMhP8lzObXJiwHBI6+1ijhwPlab/8Bd5WkTUOR1/7wuSFubfbq7QxtbhkJM4JJj70fF7ohonw+QFo4WLOcEhWpZicxrH49CdiC5NAnQbrca4v4mpqp9OwLjM3pIO1dxx6mgJpwjJYbnq3Z1+j2TMSZgr6NgksmZk3Agr1jMkA1yEJIsQ1gmlT2F9+Qh546XexXTl0g1ybVWyWTHTZi2a5k3+qmWQ/88oqz5+STcjgBcUp69yzbrLxU9BibLZs3Z6Ec4rETQ60BUKm+JsTMRIv3H8+s9B3CYRkH0wbWSRrmCwxHJinabeAclHx7rFC59dtahuMat762scqyUFHwca8Fyupmvlo82VhsfaPz3oNDXICgMUgw3blEDYA9Zv0vC6lmtFmZJZhO75XrrhQycwoJWINtKh00C3iWSZLiKs0c3aj5jx52OoLDqdNZUDhhkpH8RI3kG5y1fK5p1CWJvqFn9xInW/lznfHKL0Nrp+uQ5tSuXGjOY8T8jZPYwht0St3WCagcPVczfRBEhf73/pXqrWyVyVG7CRR9YXRUx9npZjNkPxyiTWglO7uyprNKMoDQCpN81Zvf1OfF0GBbC5CnRDfX+djSnRRUaLYyq6Baj4X9jPmSe3eP08H8dR+badQT9YVLSYdqig/aHR2021gXBPaDiQX3oLOIBOjQQtUobD7b4kr+0= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2017 07:06:55.5994 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3090 Subject: [dpdk-dev] [PATCH v2 1/2] eal: allow user to override default pool handle 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" DPDK has support for both sw and hw mempool and currently user is limited to use ring_mp_mc pool. In case user want to use other pool handle, need to update config RTE_MEMPOOL_OPS_DEFAULT, then build and run with desired pool handle. Introducing eal option to override default pool handle. Now user can override the RTE_MEMPOOL_OPS_DEFAULT by passing pool handle to eal `--mbuf-pool-ops=""`. Signed-off-by: Santosh Shukla --- v1 --> v2: (Changes per review feedback from Olivier) - Renamed rte_eal_get_mempool_name to rte_eal_mbuf_default_mempool_ops(). - Added support in bsdapp too. Few changes considered while working on v2 like: - Choosing eal arg name 'mbuf-pool-ops' out of 3 proposed names by Olivier. Initialy thought to use eal arg 'mbuf-default-mempool-ops' But since its way too long and user may find difficult to use it. That's why chose 'mbuf-pool-ops', As that name very close to api name and #define. - Adding new RTE_ for NAMESIZE in rte_eal.h called 'RTE_MBUF_DEFAULT_MEMPOOL_OPS'. lib/librte_eal/bsdapp/eal/eal.c | 17 +++++++++++++++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_options.c | 5 +++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 ++ lib/librte_eal/common/include/rte_eal.h | 11 +++++++++++ lib/librte_eal/linuxapp/eal/eal.c | 18 ++++++++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + lib/librte_mbuf/rte_mbuf.c | 5 +++-- 9 files changed, 59 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/bsdapp/eal/eal.c b/lib/librte_eal/bsdapp/eal/eal.c index 80fe21de3..461d81bde 100644 --- a/lib/librte_eal/bsdapp/eal/eal.c +++ b/lib/librte_eal/bsdapp/eal/eal.c @@ -112,6 +112,13 @@ struct internal_config internal_config; /* used by rte_rdtsc() */ int rte_cycles_vmware_tsc_map; +/* Return mbuf pool name */ +const char * +rte_eal_mbuf_default_mempool_ops(void) +{ + return internal_config.mbuf_pool_name; +} + /* Return a pointer to the configuration structure */ struct rte_config * rte_eal_get_configuration(void) @@ -385,6 +392,16 @@ eal_parse_args(int argc, char **argv) continue; switch (opt) { + case OPT_MBUF_POOL_OPS_NUM: + ret = snprintf(internal_config.mbuf_pool_name, + sizeof(internal_config.mbuf_pool_name), + "%s", optarg); + if (ret < 0 || (uint32_t)ret >= + sizeof(internal_config.mbuf_pool_name)) { + ret = -1; + goto out; + } + break; case 'h': eal_usage(prgname); exit(EXIT_SUCCESS); diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index f689f0c8f..ed5f329cd 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -200,6 +200,7 @@ DPDK_17.08 { rte_bus_find; rte_bus_find_by_device; rte_bus_find_by_name; + rte_eal_mbuf_default_mempool_ops; } DPDK_17.05; diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 56c368cde..9b0e73504 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -97,6 +97,7 @@ eal_long_options[] = { {OPT_VFIO_INTR, 1, NULL, OPT_VFIO_INTR_NUM }, {OPT_VMWARE_TSC_MAP, 0, NULL, OPT_VMWARE_TSC_MAP_NUM }, {OPT_XEN_DOM0, 0, NULL, OPT_XEN_DOM0_NUM }, + {OPT_MBUF_POOL_OPS, 1, NULL, OPT_MBUF_POOL_OPS_NUM}, {0, 0, NULL, 0 } }; @@ -163,6 +164,9 @@ eal_reset_internal_config(struct internal_config *internal_cfg) #endif internal_cfg->vmware_tsc_map = 0; internal_cfg->create_uio_dev = 0; + snprintf(internal_cfg->mbuf_pool_name, + sizeof(internal_cfg->mbuf_pool_name), "%s", + RTE_MBUF_DEFAULT_MEMPOOL_OPS); } static int @@ -1246,5 +1250,6 @@ eal_common_usage(void) " --"OPT_NO_PCI" Disable PCI\n" " --"OPT_NO_HPET" Disable HPET\n" " --"OPT_NO_SHCONF" No shared config (mmap'd files)\n" + " --"OPT_MBUF_POOL_OPS" Pool ops name for mbuf to use\n" "\n", RTE_MAX_LCORE); } diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index 7b7e8c887..e8a770a42 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -83,6 +83,7 @@ struct internal_config { const char *hugefile_prefix; /**< the base filename of hugetlbfs files */ const char *hugepage_dir; /**< specific hugetlbfs directory to use */ + char mbuf_pool_name[RTE_MBUF_POOL_OPS_NAMESIZE]; /**< mbuf pool name */ unsigned num_hugepage_sizes; /**< how many sizes on this system */ struct hugepage_info hugepage_info[MAX_HUGEPAGE_SIZES]; }; diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h index a881c62e2..34e6417e4 100644 --- a/lib/librte_eal/common/eal_options.h +++ b/lib/librte_eal/common/eal_options.h @@ -83,6 +83,8 @@ enum { OPT_VMWARE_TSC_MAP_NUM, #define OPT_XEN_DOM0 "xen-dom0" OPT_XEN_DOM0_NUM, +#define OPT_MBUF_POOL_OPS "mbuf-pool-ops" + OPT_MBUF_POOL_OPS_NUM, OPT_LONG_MAX_NUM }; diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h index 0e7363d77..fcd212843 100644 --- a/lib/librte_eal/common/include/rte_eal.h +++ b/lib/librte_eal/common/include/rte_eal.h @@ -54,6 +54,8 @@ extern "C" { /* Maximum thread_name length. */ #define RTE_MAX_THREAD_NAME_LEN 16 +/* Maximum length of mbuf pool ops name. */ +#define RTE_MBUF_POOL_OPS_NAMESIZE 32 /** * The lcore role (used in RTE or not). @@ -287,6 +289,15 @@ static inline int rte_gettid(void) return RTE_PER_LCORE(_thread_id); } +/** + * Ops to get default pool name for mbuf + * + * @return + * returns default pool name. + */ +const char * +rte_eal_mbuf_default_mempool_ops(void); + #define RTE_INIT(func) \ static void __attribute__((constructor, used)) func(void) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index b28bbab54..1bf4e882f 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -121,6 +121,13 @@ struct internal_config internal_config; /* used by rte_rdtsc() */ int rte_cycles_vmware_tsc_map; +/* Return mbuf pool name */ +const char * +rte_eal_mbuf_default_mempool_ops(void) +{ + return internal_config.mbuf_pool_name; +} + /* Return a pointer to the configuration structure */ struct rte_config * rte_eal_get_configuration(void) @@ -610,6 +617,17 @@ eal_parse_args(int argc, char **argv) internal_config.create_uio_dev = 1; break; + case OPT_MBUF_POOL_OPS_NUM: + ret = snprintf(internal_config.mbuf_pool_name, + sizeof(internal_config.mbuf_pool_name), + "%s", optarg); + if (ret < 0 || (uint32_t)ret >= + sizeof(internal_config.mbuf_pool_name)) { + ret = -1; + goto out; + } + break; + default: if (opt < OPT_LONG_MIN_NUM && isprint(opt)) { RTE_LOG(ERR, EAL, "Option %c is not supported " diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index 202072189..e90e0e062 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -205,6 +205,7 @@ DPDK_17.08 { rte_bus_find; rte_bus_find_by_device; rte_bus_find_by_name; + rte_eal_mbuf_default_mempool_ops; } DPDK_17.05; diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 26a62b8e1..e1fc90ef3 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -157,6 +157,7 @@ rte_pktmbuf_pool_create(const char *name, unsigned n, { struct rte_mempool *mp; struct rte_pktmbuf_pool_private mbp_priv; + const char *mp_name; unsigned elt_size; int ret; @@ -176,8 +177,8 @@ rte_pktmbuf_pool_create(const char *name, unsigned n, if (mp == NULL) return NULL; - ret = rte_mempool_set_ops_byname(mp, - RTE_MBUF_DEFAULT_MEMPOOL_OPS, NULL); + mp_name = rte_eal_mbuf_default_mempool_ops(); + ret = rte_mempool_set_ops_byname(mp, mp_name, NULL); if (ret != 0) { RTE_LOG(ERR, MBUF, "error setting mempool handler\n"); rte_mempool_free(mp);