From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0068.outbound.protection.outlook.com [104.47.36.68]) by dpdk.org (Postfix) with ESMTP id 6F4DD1094 for ; Thu, 6 Jul 2017 15:07:53 +0200 (CEST) Received: from CY1PR03CA0022.namprd03.prod.outlook.com (2603:10b6:600::32) by DM2PR0301MB0607.namprd03.prod.outlook.com (2a01:111:e400:3c08::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Thu, 6 Jul 2017 13:07:51 +0000 Received: from BL2FFO11FD012.protection.gbl (2a01:111:f400:7c09::181) by CY1PR03CA0022.outlook.office365.com (2603:10b6:600::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via Frontend Transport; Thu, 6 Jul 2017 13:07:51 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11FD012.mail.protection.outlook.com (10.173.161.18) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1220.9 via Frontend Transport; Thu, 6 Jul 2017 13:07:50 +0000 Received: from [10.232.14.39] ([10.232.14.39]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v66D7mji007198; Thu, 6 Jul 2017 06:07:48 -0700 To: =?UTF-8?Q?Ga=c3=abtan_Rivet?= CC: References: <39810ff7-d5fd-921b-4fad-81a8013bf1c4@nxp.com> <20170706100021.GJ11154@bidouze.vm.6wind.com> From: Shreyansh Jain Message-ID: <2642be49-c8ad-899f-c176-9749d26dce8a@nxp.com> Date: Thu, 6 Jul 2017 18:47:15 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170706100021.GJ11154@bidouze.vm.6wind.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131438200709070351; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39410400002)(39450400003)(39380400002)(39840400002)(39850400002)(39860400002)(39400400002)(2980300002)(1109001)(1110001)(339900001)(189002)(377454003)(199003)(24454002)(9170700003)(23676002)(2870700001)(189998001)(81166006)(8676002)(93886004)(50466002)(106466001)(305945005)(31686004)(105606002)(50986999)(54356999)(626005)(64126003)(2906002)(76176999)(4326008)(356003)(33646002)(5660300001)(229853002)(65806001)(47776003)(4001350100001)(77096006)(65956001)(6246003)(53936002)(65826007)(8936002)(2950100002)(85426001)(31696002)(6916009)(104016004)(86362001)(36756003)(83506001)(6666003)(38730400002)(110136004)(498600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0607; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD012; 1:GgszxPgFI/vvYR2jld/eXvFmzpi0cbhdrO56RLQ/fsr7ZFlYpGDs7kpW01beYcJlTHUEo8ADaB6tm2NnIAc3gCCT9sagG2pGvYbvFE4E5KFgRbJtTej0Ox5Xexn8nJ818qcL7Ka1qrqvBP3fVoXuOe7fTG0lAOKkCZio5egBuyyc6vFOyhkrYY6ugtohQ7XyNG02tbbrQYn0Bs1JZH1QRv0EIg4PVKtOfPkOrEPVOBiiteLWOoIITLpAKNGHBdy+fH3c75HgRmID5syu/20YT9PgGPG/Tab4sKCvrE49joc89daPYfa35gU+gIgyZ+B078sUiv42Eo9z+107R07B+gMXYconLrLouY/NCLrGOw/gEBWf8ScmLwiDDhkvXzP9wOE/54+ozNE1XkOjelXMebxVmCumX3LKxu+6nZt6nn7L9HRs2yFnNYPjUKqRsptlU3Kv9cFMm6F8QPDI/9KYXSK825q1Bn0Y/UN66mfqnjgz8YMdqqdBtQYM4bFwdCYwZhmYW88L9+MtMTpTXZjiKzs9Fs/ravIezmtVEi0v2jzS1BFO6p1jUXavacjCXztxgAjowHZLajz7GWRVI1hNn6BFBzbReuycbW7e2fjQv2fQBkpkoCAyQs33aR++YMREfB2YKe4UYeE3A7+tjkRAC1DGzk/uTSkXgdsU5ScjVYuIbsaWlEiIYJzRrtnvaiSlfmCFAFUtCSPC3t5al+bPmmKoRNhLy1fav0gSfHNWCIx8fBKl+zcipApZNaa6TZbleiml97JRlNdiz/FOmn9SZvNeS2HxKUsQrOiVcCG0gWDc3QaWnQqUhUMFaPQFTQEt+iWJKLT8Gs/1CO4jdCzZTo1htwnuZDw1+OTY0eXGMbxVyskO6wq69Hj0MfsVnjqR X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e123d3e4-e1ad-49cc-3e0f-08d4c47001a5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DM2PR0301MB0607; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0607; 3:jqQQywgaKbKyWY5N8cXCinSr2dkjAtbnXp2BF2o7ZFHLEOejz4UFz6f786N4jyDOp9QIZSdvOGTE/QCeEe6evWy3w1R8rDu9InwzRzwId6uBrf6kMvaFza2ODqLQbHHY/ZjJVqBcZMd6t4PbqkJwmVeg8/Fi4i323fAmqU+UniY+ZFyasHzXafBRVMats4AD67zh2d5yanIE7W11nguoGWSHvPWsqHtCa0/c+Riv0zRvIOU9ytgL2z36zYvjP+ByYbyBTwvSEymTPZblmsS0P3b2GHVXcNtyGStjV3pcSCZtJIP8qsYQt5z53kgUXW2q2sY3N0xIE8Dywr5K7udGwrh7NVDbNhrN+UWS+pcNoCMwTX2FrSRMsmR8bmERz7IXHSCRoOvHHuwRV5/P8XzT/j6CnxI+LcG63GigN7WQhgVA0jI8zYPuKFt+tysHbeHVWuVBcUAgleMsazw1bd3SUGGI8/PCS4ap2DlJKjQLr87Y3nmT7FLytqgeNbjFgzhDt6gba7H8eg4tsG2L7pf0qVB81WVCqijM+PNX3KcRQ8d7HSA7mfQCh2KHAG2RI0WFbkZM2F6DqNaHKNpAOWNmlLdDqqLZonSJPxJw3qroh6uJqANHsbmCjUH1KV7dg8dgKydus0uduqsgGi3y3J5HicxI4lZKuEBA2m/OZKWukgRk+mKMOK2MeVK0IG0Jy2ymr4aZ7zyPQPyxlpNoTENRZXRgRjs1pw6C29eAQN4zz5jw6TEF/+mSlnuh7GfMzaC4btzRbkJvvaZfkGX48D8pgAqd5rF4NFCQKaQPiPgddR3trr7cKEeg01bKR2wdsCjMF8qR5l1JZ0LKIrdLQHmoMme8/JPoNkCB8OdAjV489IJVqN8I5LI4u8bQRsCu/EmO X-MS-TrafficTypeDiagnostic: DM2PR0301MB0607: X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0607; 25:biX0PdWd5QYeZdEZzKVnTHZIgCkqqZxKnLIHxDPiO76SYGqeHdwwPGf6ZJeOTZsAcpfrnik2FczPVQ+crSezeiUMOzaZrln6q2bCOp6Uxp7oLlsYglpEL4ii0JYxECGazzufXb7UgxSyJ2pkXojWmf4Ge0ZPI+miboYFeriK8nJuIw2WSF9MOqX6ZKH2rG4XLbNodXTZY2ahsmQPg2iDiR2xTzra/nL9vvCK9ECC16Ocj85/2Ew3QS3V0pRv1gDJjiY1e4DbvYioL/1hAEwX3dZkymBdCylto92XgK3VNesdWuzu1mtfLcL8cpM2MCU8c8YkLYUxXnK4HdhO/dGIOpdC9JcjNKmgidaBS5gqFbmPM7uY7opKexFqtghbCBzzeCpoZJuJU3Wd1+5/WhltZbwzVQ3eqUg7/3h91+b7n1wknFguKsR4V/Gi55ObZGvSdFm+SOoMBtL4ZwT1j0QNNijFDauF66buYCu+4l0t7D3OpF0ZX6L3xGJ8mwPWbnynYfcnedR4A3SSatWJPaLA7voMxlWOjziQstRUj6fNlghr9xE10RMkZllgqjkInOXTI6PuXKxqEoo1ld8anC2NVGMJoNQFeb3L/33BF8XAGgrC7vp5zZcV/Jjv0IwrsVbRSBFpVoOnFP6h7quFvXvxat9ZvsYMADeF1DWlp61SAsToUHvFx6qabxMXdXJ9Lo2STwHqbtJSl0ahKBac9q9jZOi91JlNKR15kbZsGQUiSI4hnLTcDRAxMXsL7riCsa/8USh6Bd6jDNutJYubrX/vaFTRzT4emdSs2f0pKCSm7js9zEnB6QSbcsQcarfBjEv5+ynh65S2JMtOMPJlge6O/mtLwvWlNQaBS6dW3nJwrI1X6vxD110edL3OMF8zd4t4Rwtm57LKno1JJn3ZGhQpwk0sRQSm7Jc141Mgh//xRGg= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0607; 31:z3cr7SY4YO/JbT6fCJjzxld7/BwqHZE491Oa6SC5z6ClbafFFld3zuQ+wdYPyvVOC9F2buiLOlbUDuO58sgvgKbeQ/Xo3J9LC6H+JTzzKZrRPGlXJHNSqimPdM1ODNgHY/IZmbiACKn8W6F4Rn9qF+TZjbJSiyoSujjN/mSEGNVrOkBdzQfvEONODWugCI06Bshf0Ha0VoHfYST51DZ0oLYEeYlwzHCAQwzwtS4nAQumPUmmSz3PMulC7Stz9ps1F222Zs9hJ9tAETaoAeVs88qBffY1l5OtwzKqgyo6qWTkNPrw8jsXOjZll9r4Nfgg/7e7h+H7U2FNqIc+CR0UBoXwj5NcUVNJODpOgyx+No3Yuho+Uwlr3Z5k7JnEEneQgcwpp5mFzoxSYIoUhprCNNGyyt1iSCvS4XFB1yIcx1t2MDCWpO75+YSn9ZPcKW6VfjRlnscTnTkoN9r4OWNT84V7MZp+CiS2SIWijj5vjSNfiWvi5BLiNbUEFAWN47v00XLDz0RCkHmFSH6WGVhf6CZQSbxZrfHy3KAi31xRr5U63kv5/xuq/af+/0LcGC9dWcqIk9OCGZUc8pCt7obHV0gySDLcQOtm5Cit9d2CYqZs2toifT+YoIrIyUZs3wl1z7kLj+GcX37/Z85XoiPo+FeYHs3nAcRgu7iSkSmQA8dJNYy57IYeGyrDGYZ26SMqLuQ9XlQbsgXYyScf/5qeew== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(185117386973197)(48057245064654)(148574349560750)(167848164394848); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(3002001)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123563025)(20161123556025)(20161123565025)(20161123561025)(20161123559100)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0301MB0607; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0301MB0607; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjAzMDFNQjA2MDc7NDphcjhZUWcrTVZDc2lYaFZsdGtJbDlTVmJS?= =?utf-8?B?UDh4b3lYZ2dDWDFEQkw1bnprNnlkaUliZzkrN2s2NXZNWk1TTm1XVnhobWpq?= =?utf-8?B?VEZkeGo0VmFUa0J0emsrVitEdCtNVnBjaUQ4dWFWWEprOHcxM1YreEkzM3Bv?= =?utf-8?B?ekVURjF2S0lQVUEyQldWWE9NSVBuclQ0SUhTNExaWEs4cFFFcDRCam5SaUpo?= =?utf-8?B?Q0dVeGtNNXdDL3cvY1JkUHdwbGY4MW85MmlQdkpVbm9CbFRJcThjZkZzQ05U?= =?utf-8?B?K0IxanF5MDNuV2RFcDFoWE5yUkJiOHNobHNEbU9sd2M3V1dySnNQdFNYMHBN?= =?utf-8?B?V2QzeHhtaUFZdmRXSTZGakZNK0J4SHk5bTlXZS90RWE0NkthKzFaWmVCYW5w?= =?utf-8?B?U2g4RmJyWDU2dkdzTGZ3a3kyZnBtcG1XZVF0RnhwUUR6dk83QWlFbGtBekgv?= =?utf-8?B?SEp0UW5ub2hLL1hLbFJZVGJBcjFGdGNNRW0wbm52VUJsdXYvUmRaQ1VvcGNi?= =?utf-8?B?RXFKSzZ1bExlTUtKeEp4RWllb2VhelJxMy9FMGc1WVNXNHNoaW9kMzdpUk1r?= =?utf-8?B?NS9RVGZRZnVhV1FlMk5YL2RMdWVPMEtQREtWTnhGeTNQa3oyTTk4akRORzJl?= =?utf-8?B?OWhKTTBUYXAxVkk1bTBSZ3BZUWhBMWpxR2tCY2h0ZHk2Qjk4RGlDKzJIUG5T?= =?utf-8?B?WDVMS0gxOHZpUjhpWHJnaHBwbExkRE5CVHVnN1VJRTI1anprdWVYSDRTMnFo?= =?utf-8?B?dDRsMXR4bjR3NWJlakhMbEllcGZmR2pKOCtCZWNCdzVad1Vpb1IrU1ZsK0hN?= =?utf-8?B?UDltY3BRTStwVGNFS1VRY1V1TXorcmJTSXN4ZmRweGVjeEhZL1BzU0xlNTRw?= =?utf-8?B?bC9jTTYwNkNMZk44UFVFVGVoMEl0aHZzLzlDVWliV0Jja3d2a2xPU1BmVFRz?= =?utf-8?B?WmRMMW8xNGdFbkkrM2RMS3pPRDVlNi9DNlo0M3NtRXNNN2RQUnd6RHBVeXVW?= =?utf-8?B?aE9QblZSYlM2eTFWYTg4SFZhQ1hJVERpU2tJYllROHY0dzM4Myt3WksvbnhI?= =?utf-8?B?cURzQjhkZlpoRzFJWkNxN3RVZHBDSTlPa05ianZySzFFeXhzNzNwcGc3cHRs?= =?utf-8?B?Q1Rsc1FTd2hMVXIxQkd5citVdm1JcmxwUElvTnFPM3lHTEkwSVpFdzBlZDFK?= =?utf-8?B?RjJZUGQ4SzlKN0hzTUVqbnNUMDYwUDZmMVRRVVozSU9WeTNGN1BnSFVybG1k?= =?utf-8?B?S0VvemoyQU5iYnlGdVBsZmJSU3RGVWpJM0JETlRWc0VsM085T1BjemQ2aVJJ?= =?utf-8?B?VXVnaGlUYjNMRk1kNmx0dmJGWnhFbDBBSVpPbitLak1CbjAwd3h0UUx0RUFD?= =?utf-8?B?TUNucXNvOURPU3pXMStLWmtpT3l5bHc3UEdLY3E0dm1iNXZpbjIxTWRYTXA5?= =?utf-8?B?UjU4MEJMRVRNQ0xEZC9iQzExTXFZdzZMUERIM3V1bVpCWkNIeE1hNlF0aXBj?= =?utf-8?B?Qk5sTnpNcFlCYmRmOTVjRTlnUHZ6YTFZcTJNOGU4QndjaFJYdkdGVDN1eTlC?= =?utf-8?B?TVFEVG1hTGNLRU9SRm1DQ3VnUWltNUxjQmVaM3VRODFsSjQwQXV6dndoOWNB?= =?utf-8?B?N2pMS0FPMHhzdWtQdHJlMEVDSVRNdGJlL2VVOFdHakpEeGN0VDk0ZjFUNnVC?= =?utf-8?B?ejVBUzdiZ2tIOXRJUVI0WW1LL1JaOVlEbTVUNEZXcDBUZ0xlVzVyNWsrYlJX?= =?utf-8?B?YnY1K1RpQkZPTlk0S0ZQcHhYSW51UWVVZDYxZEdiQ3AyMVhHUnUveFZrekpw?= =?utf-8?B?VVgzK2gxWDMzMXNsVnBSY244bDEwQ0lDQWY1QzB1R1lXWm94eG5SRUNQd2cw?= =?utf-8?Q?rAvj91HYk/4Get/5EuwPQpfItO+CW6v+o?= X-Forefront-PRVS: 03607C04F0 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjAzMDFNQjA2MDc7MjM6NzRtRmVpN2NRYUxoVUFyTFJ5MmRuVmIx?= =?utf-8?B?cFlud012Uy82SlRTalpCNW5GRkltSUpDa2E4cmhQc0hPVFp6SHJZbjV4eW9m?= =?utf-8?B?a0xjc045SWpvRWNVWGdKeUNvRC9NbWZ6MWRZWEswYnA2NWkwVWV5OWE3Q1g1?= =?utf-8?B?N3hremRxUm9QR1Q2S1N6TFBXTVZLTjRubm0yRnFEUEdvclJVaThmemFMWmhv?= =?utf-8?B?UnZTTDEwcTNtdnhiUWIvdnR6MUsvZFh3azdRU2J3cjhVekk5Qksrak9RUk1k?= =?utf-8?B?dVNtcGIwbXJwOVFDZkc3ZFE5M2NuMGswTllzVzV2cStJc3BVM003Y3VYSWNj?= =?utf-8?B?RmhyUnFUdlArTnRHdG10NkxNQU1iWjNoRkRFZWM0YmgvejMwUU5POVV3dlZS?= =?utf-8?B?SnVFcXlTWXc1aDFHc09RbnhiNmVCWC92SHlRSFFzWFBuV1kxd1NyMTlyL1Bw?= =?utf-8?B?RmYyTmR0VE9VWnFWSTdwT3FMeG5CVCtTTXEwNyt4UDFjd1ViUkg0b3N4aWFN?= =?utf-8?B?K3l5czBMZlpDRmJ0V2NURXNyYXg2L2kzTjR1VXg1R043M2UrTDVRelViYjZ0?= =?utf-8?B?bHdubDdZaHZYSHg4TXd5Z0RFSjVaSUV5MU93bzlwN2N4bzR6dWdid0RqZTJp?= =?utf-8?B?UVBCWjh4eU9Pc2RWdHhWVjNFTFpkWDVaQTNLa1lKYnRXVTVNTkxmOXJLSGRW?= =?utf-8?B?WmF0MlhHZU15cGNaSXp5MUthNFM3dmJtV3F1MkdOUE1kZElVOTc4UUcyeDdN?= =?utf-8?B?Q21lM0VEbW16RkxpZElOc3VmYzFoaTljNzZIaHFQR3RxYXJGOXhmOExUQ2R3?= =?utf-8?B?TUdYRHFRV1REVzRwcXdsNWt2M09xVXU0ei9HcGxuWng3NUxEUU5jd2xqSnVO?= =?utf-8?B?RUdjVUQ4cENhT1dINFY1ZzR2ZitzRkJQaXBMVHFoN0haMSt6Mk4wejJVYzJP?= =?utf-8?B?OWxNZUZYaUVZYlZKbktOOWJrclUvMW1VZ1h1aVVqdGdIWndPcmp5TzQ1QWhD?= =?utf-8?B?SXpZZVROWHZyQVljaVhCejBYQ0U3bnVBM29EZndRZTdNckY1bVdHV21PWW5n?= =?utf-8?B?WWJVQVN3Y0RiRUJGQnU3Uk5FRm50eS9DQ0Ivb2s3UnhuT0FNTEYrbmZpM0p4?= =?utf-8?B?a3JvQm1yOFplQWl2ajI2MlpkcVRBSWlKK1BqRjB3T3ZkYjI5c2FYNlA1UTJE?= =?utf-8?B?VnMvZVBUcGUvS3JRVllVSmNWNnhaQUY4Y0pPTEpCSzJ3eThFOG5BZDJITE1B?= =?utf-8?B?OG1yRlBjalp2dVowYmRZbWpBbENoRzloVnpaRUJxd3hMUFM2bEFTRG1obzgx?= =?utf-8?B?V0pZTzlBN2gzVHNkRFBxUUZwanZqbm5VbjB3ZEFubVlzWHhWUFZ4OC9MbXd0?= =?utf-8?B?cjNhWFA5a1hXV3h5eGttb0IvNUpkRGE1b1VJMkt1eTdxbngzNkRWQ3drdlZK?= =?utf-8?B?L3Eyb0NTaVAxQWhES0hpbGplYlF1VFB5WisyQ0grSXllTUt4bkVWSDA0Q2Uy?= =?utf-8?B?WnRpU3J5ZjNJLzlMNHpvNTlubG5nL2ltTERCNXVTeXJObkNucktSUmpOWUJD?= =?utf-8?B?Zm5MV2tGbjZOR1dMTGoxNHVhN0EycityOHdvbjZtelljdy9KY3ZBTC9wSC95?= =?utf-8?B?MVhzYmVMN3NPOEpIVnE5TWVJa011Ri92U1NDOEY5dEtwcUYyRzVsMlBsVmFC?= =?utf-8?B?RWpxRmpOVlRJMjNqellXQUlLVUhCV2FSNWJtZ0k3RHZWN0hNc0RqVDVtU0c4?= =?utf-8?B?QjYyejhvTUVmU0NtampMcjhVMzVScEtkUUFJbzNXL1Z6MmtsbndydUZDRnIw?= =?utf-8?B?dzR2ZjRqbTFkVTZBRDNzMEJMWEJyUVhMVHBkOFZub2hCQU1lUmQ2K3dYMkdt?= =?utf-8?B?Y3FUdy9iZXc2NlJ1L1RMTkZteG9Selc1RC9TREtvY2dyUjROK3JmdGNRdHV1?= =?utf-8?B?NWdKd01rTHdHUWxjOEhYcXVQRDhVSzZ2S3d0dHk2RUpQT2xyM2xWWDJKWXYy?= =?utf-8?B?VkRzdTg1MU9KQy9EQW5oT1BPS2tQNWxIdnh5L1FBPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTJQUjAzMDFNQjA2MDc7NjpieGtGR2ZWWlZhRXdrNDdLdVpJWlJFNC9x?= =?utf-8?B?WUdiUEk1NE03cmE3Vm5jMUpZYnBNaDQwMkFYVXdnS0lEV1ZWczdSVkJuSHd3?= =?utf-8?B?QytVR0lrZjk4d054UkEzMWxZMEx0R01NazliTlhaZVRVaWFFcTN6VlNtUXF2?= =?utf-8?B?VjhaQUJsT085ZzFDaHFNVEZQQ2NaWDRIVGZDSEw5aE82aXZsdWN3aGNaVE1i?= =?utf-8?B?SzR5bXE4YTR0ZUJaamdDa08zaGhSYjZRak96VnpLOGZXMlgybWZObzViZDBD?= =?utf-8?B?aHo4VzhQNUsydGw3ZlM0bHJ5ckdzcC9VbjViTXdtc2tZRHBmRDc2Vlp4N0pl?= =?utf-8?B?ditnTGh2UTF0aDFHa2ZXQlIzVWpEVDFCelRSeEc5aTlQa2hBNHgvTzcyMUJT?= =?utf-8?B?WWZ0VDFrUTQ3MGh1YkZOZUdZS1NJT1JVTVl4SGdlMUpRTkFtSWtybGxHRDht?= =?utf-8?B?TWZ4SkdnVjNLWUR1cFZXQ1MxLzgxWEtib055QWFpcTRBaEtrQXRwSUtxZC9I?= =?utf-8?B?d2Y4L1E3UU9VTkhKU2E4RnU1UC9kL2RkQnNtVFVvd2ZvNHhTZHViSk9jWXBI?= =?utf-8?B?b2pSSVMwWkxEU25kTmdJM0R3SnJCc251b2VSNUNPdUQrcm11QkFobmsrZlJz?= =?utf-8?B?VDFWOUVlUElJbEgyQTNsQit4djJyNnE2aGRCMzJ3SGp2WmhJZUhzOU5Jb21R?= =?utf-8?B?UzY4OXlwU2p2SGNXVG0rbFc4azE4SzhPSUg5MGRxVHVPa1c3cVIyeWdxNm1L?= =?utf-8?B?d1NDMHF2STQxVWh0NlFJaGMvRFFzVG5oMmpUejZxQ2crZjRoY2R4M0lBRUZY?= =?utf-8?B?NlRueHRRMnBvTDhIQ3BEd21TLzBNZE8wZmdWbWtJS2piaHd4WnVNdXZrU3Br?= =?utf-8?B?K05vNS91WnppZzB6MnRHc0dKMVRMMjBUQzdLVEhNRFErRHVzbzJ1bGdLREJm?= =?utf-8?B?SGZKT1VYQ3VpU0wyOGZIdUFFQ3FMWlFzWE1nMHJpVnZiT2hTeHRVYnRXc2dv?= =?utf-8?B?QURHaWlvcmtPMjd3YXI5TnJrVHZENlBiQlc0WkpiQjcwalFHYW9wc2hFcjBm?= =?utf-8?B?dTdra1pYT3dRNnhoajB1YnFObTY5Zis2WkNFZzNpVTBXWU5PelJSUVZjaEts?= =?utf-8?B?Z3cwWmJuVlUzVU1mQnltSWlQTWJZalpPZUlIWXVDTmgyMklIb3U3a0xLbitt?= =?utf-8?B?VSt0cEp4MzJCZTF0eVBYZC9qU1VsZzdVT29zZWJ4WlRTWXREYTBVenBYeUxW?= =?utf-8?B?Y3ROa3RScENqUWtSYlBhTkYzanphaXN0STAvbDhaWDJsYTVEcm82QWljSTkv?= =?utf-8?B?ZW9MZmNjNlZBU3lnPT0=?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0607; 5:VEfj2uRQ6raqbQErdAHpdpRVqdflVKhBmeFHMVg3Y95OS5WPZFiRYMkFG4ShYskgZnT9tNJaSiDMxEdMuKrKJbHTSr1gcihGHCkKARDou2bCH4mBSbN8cVAd+SD6UaTofH6WBDWE7vc/IDaOE5VMDdlQZCwAUGhTItHQEe4c/0x+hi6wJcssQPisp2LqggycmsMOPS7OPL9Vm36pwiV+2G39wGUK5ebt5Vtc2zUj/HGlQ5QWhuh9Ml18UO8Dtrx2z0JWUYreBdJLpJ/KSGLFZklYW6EUzvIooI11topcLQNZZWt0oU6NJuFSb37AwLfmFIZGe5mYpN91ICI9mCXdSk1ZcItsyXFY1dHh0cqFyD/+nrPHa7XDyyU2bVnD2hO0pMR8VS1qlUKwFyskNpGJmPkS/2UqbiPLXXZSv9rbodCwYBj3nrpDJDWZra/6vp7yfqynzcvoaLr2bHI3HXe/n8q4GkYt/CYTT3nQLGlPyqcJWNEIf7Q+QvpWa7YUntnJS+MX8IwZkkYF7tvyz0/qqQ==; 24:g5g1P9qPkmi085XR953lx5nlwTmALs9XoJjKOjl8Ta7+1NkPyd0pxRasoQ//V4K731v0dWDXjGWQt+DAusHc4sMjrRSZI4eQJZ0NE5hCReo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0607; 7:toi7pB9cQPCgQevHocMyyeIck5Hr6QEpB8o0XrVPX/VihaMQuENTri4PQsNsXopyMd2CvQbDENIdx/jBDLvCuvaxDYggBDX340kq1rfxQYc1O1tiqyEnNU4drgN4lNI1reyD6skLj5az+mhpJOIauHlngUGInSsyB1WnG1I0GoqcUIwCdLitOmBaujJvt3kpgSJTJ/SziXB+7ikUS9Z36I8RZ2iF6enLzBAJpZS2LxeTe+Q5Z+j7O+99SrmypUQAZozx++jN7RD9GLAQxtr6VG0fv3UK9Fb7PujAaNOwXNQJFM+i3ubg01YRJP9n/yb3w+Hyw2umej5dCwA/n1M8xfPlJrY6qMLgjNBZX2jfB7SoEDluo9IlA4/0ALKTYawM2qvkDbk+GPAWlx/8U8FQr5qrkha2BokBNd+slrY5QBeLI4K3d4E0qw//2El0DouBeb4Rt4Vr7OBTnHxfbto9HXtWEi3Do/rqiOESsdYAGFueiXbGvyD/+CrUU+G6+ygMj3ERfck+hbdvTbVeSxGOsiAqi7wJEV9N0UJ4kBrXM6lN2m4TuURz1MPsQbrw1SQhydh4ViOITEn9gydjk1vc8vi6evP3Krv4PShIHefXZ1MHl2L7oFO5wCfD60nc/qsxmc1nBFxAuTWUWF1WlpPCsgPgXgh2QMU4gxyAuT/4uVsPswXnIZTCh4q6fLh2AfAsA4JvedQVpTaA1l3R3S9uUrGVwzfYR9M8Gka+6ub7ZWtqD+CJXu1c4CnDmBJOWMPDSmbb2tqejT4fUHru3T99dkailBMCRU9fLHRwpZDcPLI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 13:07:50.7354 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0607 Subject: Re: [dpdk-dev] [PATCH v7 6/6] devargs: parse bus info 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: , X-List-Received-Date: Thu, 06 Jul 2017 13:07:54 -0000 Hello Gaetan, On Thursday 06 July 2017 03:30 PM, Gaƫtan Rivet wrote: > On Thu, Jul 06, 2017 at 02:37:16PM +0530, Shreyansh Jain wrote: >> Hello Gaetan, >> >> On Wednesday 05 July 2017 05:25 AM, Gaetan Rivet wrote: >>> Signed-off-by: Gaetan Rivet >>> --- >>> lib/librte_eal/common/eal_common_devargs.c | 42 ++++++++++++++++++++++++----- >>> lib/librte_eal/common/eal_common_vdev.c | 6 +++-- >>> lib/librte_eal/common/include/rte_devargs.h | 3 +++ >>> 3 files changed, 42 insertions(+), 9 deletions(-) >>> >>> diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c >>> index ffa8ad9..102bd8d 100644 >>> --- a/lib/librte_eal/common/eal_common_devargs.c >>> +++ b/lib/librte_eal/common/eal_common_devargs.c >>> @@ -78,12 +78,23 @@ rte_eal_parse_devargs_str(const char *devargs_str, >>> return 0; >>> } >>> +static int >>> +bus_name_cmp(const struct rte_bus *bus, const void *_name) >>> +{ >>> + const char *name = _name; >>> + >>> + return strncmp(bus->name, name, >>> + strlen(bus->name)); >> >> Trivial: Any specific reason why this is split across multiple lines even >> though it is less than 80 chars in total? >> > > Not really, it's only a matter of taste. > If is mostly to hightlight that we are limiting the comparison to > bus->name length, by putting it on its own line. Ok. I am ok with this. > >>> +} >>> + >>> /* store a whitelist parameter for later parsing */ >>> int >>> rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str) >>> { >>> struct rte_devargs *devargs = NULL; >>> - char *buf = NULL; >>> + struct rte_bus *bus = NULL; >>> + char *dev = NULL; >>> + const char *devname; >>> int ret; >>> /* use malloc instead of rte_malloc as it's called early at init */ >>> @@ -94,34 +105,51 @@ rte_eal_devargs_add(enum rte_devtype devtype, const char *devargs_str) >>> memset(devargs, 0, sizeof(*devargs)); >>> devargs->type = devtype; >>> - if (rte_eal_parse_devargs_str(devargs_str, &buf, &devargs->args)) >>> + if (rte_eal_parse_devargs_str(devargs_str, &dev, &devargs->args)) >> >> A very basic (and possibly incorrect) question: >> >> here, for example "'net_pcap0,rx_pcap=input.pcap,tx_pcap=output.pcap'" was >> passed to application, which would mean; >> >> dev = "net_pcap0" (name of the device) >> devargs = "rx_pcap=input.pcap,tx_pcap=output.pcap" >> >>> goto fail; >>> + devname = dev; >>> + do { >>> + bus = rte_bus_find(bus, bus_name_cmp, dev); >>> + if (bus == NULL) >>> + break; >>> + devname = dev + strlen(bus->name) + 1; >> >> Assuming "vdev" bus: >> "net_pcap0" >> | >> devname points here --------' (4+1) chars from start of "net_pcap0". >> Is that the expectation? >> > > Yes :) > Well, actually, almost. The lines > >>> + bus = rte_bus_find(bus, bus_name_cmp, dev); >>> + if (bus == NULL) >>> + break; > > Mean that at this point, we would already have broken out of the loop. > But to continue with your example, assuming that we have a bus that > is named "net_p": > >> Probably I am missing something here (maybe the input already has a bus >> name.) >> >> Or, if this is not the case, then we will have to change the test >> application (test_devargs.c) which passes such strings to >> "rte_eal_devargs_add". >> >>> + if (rte_bus_find_by_device_name(devname) == bus) >> >> Obviously, if my assumption is correct, this fails. Or, maybe I am >> completely off the mark. >> > > It should not be necessary to update the tests (yet). > This bit of code tries to recognize bus names at the start of the > declaration. However, some device names might be ambiguous and start > like bus names for any reason. Device names have no specification beside > not having commas within, bus names have no specification at all. > > Thus, we first try here to recognize a bus name within dev, but we do > not stop here. We also verify afterward that the resulting device would > be correct, and that its bus handler is actually the same as the bus we > first recognized. > > In your example, the line > > >>> + if (rte_bus_find_by_device_name(devname) == bus) > > Fails, as the device is incorrect and rte_bus_find_by_device_name > returns NULL as no bus is able to handle a device named > >> "cap0,rx_pcap=input.pcap,tx_pcap=output.pcap" > > Considering this, we should break from this loop with no recognized bus. > As such, we enter afterward in the branch: > >>> + break; >>> + devname = dev; > > Note here that devname is set back to the start of dev. > >>> + } while (1); >>> + if (bus == NULL) { >>> + bus = rte_bus_find_by_device_name(devname); > > Which will try to recognize a bus from the device name ("net_pcap0"), > which should succeed in recognizing vdev. > > It is a little contrived, but I wanted this parsing to both be flexible > and perform as many checks as possible. > > I am developing a new bus that have a high probability of name conflicts > with other device names, so I am extra careful on this side. Ok. I completely missed this logic. Thanks. > >>> + if (bus == NULL) { >>> + fprintf(stderr, "ERROR: failed to parse bus info from device declaration\n"); >>> + goto fail; >>> + } >>> + } >>> + devargs->bus = bus; >> > switch (devargs->type) { >>> case RTE_DEVTYPE_WHITELISTED_PCI: >>> case RTE_DEVTYPE_BLACKLISTED_PCI: >>> /* try to parse pci identifier */ >>> - if (eal_parse_pci_BDF(buf, &devargs->pci.addr) != 0 && >>> - eal_parse_pci_DomBDF(buf, &devargs->pci.addr) != 0) >>> + if (bus->parse(devname, &devargs->pci.addr) != 0) >>> goto fail; >>> break; >>> case RTE_DEVTYPE_VIRTUAL: >>> /* save driver name */ >>> ret = snprintf(devargs->virt.drv_name, >>> - sizeof(devargs->virt.drv_name), "%s", buf); >>> + sizeof(devargs->virt.drv_name), "%s", devname); >>> if (ret < 0 || ret >= (int)sizeof(devargs->virt.drv_name)) >>> goto fail; >>> break; >>> } >> >> I think all this will change in the devargs series. >> > > Indeed :) > >>> - free(buf); >>> + free(dev); >>> TAILQ_INSERT_TAIL(&devargs_list, devargs, next); >>> return 0; >>> fail: >>> - free(buf); >>> + free(dev); >>> if (devargs) { >>> free(devargs->args); >>> free(devargs); >>> diff --git a/lib/librte_eal/common/eal_common_vdev.c b/lib/librte_eal/common/eal_common_vdev.c >>> index 6ecd1b5..8fd1ef7 100644 >>> --- a/lib/librte_eal/common/eal_common_vdev.c >>> +++ b/lib/librte_eal/common/eal_common_vdev.c >>> @@ -177,6 +177,7 @@ alloc_devargs(const char *name, const char *args) >>> return NULL; >>> devargs->type = RTE_DEVTYPE_VIRTUAL; >>> + devargs->bus = rte_bus_find_by_name("vdev"); >>> if (args) >>> devargs->args = strdup(args); >>> @@ -289,12 +290,13 @@ vdev_scan(void) >>> { >>> struct rte_vdev_device *dev; >>> struct rte_devargs *devargs; >>> + struct rte_bus *vbus; >>> /* for virtual devices we scan the devargs_list populated via cmdline */ >>> - >>> + vbus = rte_bus_find_by_name("vdev"); >>> TAILQ_FOREACH(devargs, &devargs_list, next) { >>> - if (devargs->type != RTE_DEVTYPE_VIRTUAL) >>> + if (devargs->bus != vbus) >>> continue; >>> dev = find_vdev(devargs->virt.drv_name); >>> diff --git a/lib/librte_eal/common/include/rte_devargs.h b/lib/librte_eal/common/include/rte_devargs.h >>> index 88120a1..1f50a24 100644 >>> --- a/lib/librte_eal/common/include/rte_devargs.h >>> +++ b/lib/librte_eal/common/include/rte_devargs.h >>> @@ -51,6 +51,7 @@ extern "C" { >>> #include >>> #include >>> #include >>> +#include >>> /** >>> * Type of generic device >>> @@ -89,6 +90,8 @@ struct rte_devargs { >>> char drv_name[32]; >>> } virt; >>> }; >>> + /** Bus handle for the device. */ >>> + struct rte_bus *bus; >>> /** Arguments string as given by user or "" for no argument. */ >>> char *args; >>> }; >>> >> - >> Shreyansh > And, for this patch as well: Acked-by: Shreyansh Jain