From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0043.outbound.protection.outlook.com [104.47.42.43]) by dpdk.org (Postfix) with ESMTP id 0D2CB5684 for ; Sun, 4 Sep 2016 12:23:19 +0200 (CEST) Received: from DM5PR03CA0019.namprd03.prod.outlook.com (10.175.104.29) by DM5PR03MB2443.namprd03.prod.outlook.com (10.168.233.13) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9; Sun, 4 Sep 2016 10:23:17 +0000 Received: from BL2FFO11FD021.protection.gbl (2a01:111:f400:7c09::148) by DM5PR03CA0019.outlook.office365.com (2603:10b6:3:118::29) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.599.9 via Frontend Transport; Sun, 4 Sep 2016 10:23:17 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD021.mail.protection.outlook.com (10.173.161.100) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Sun, 4 Sep 2016 10:23:16 +0000 Received: from BuildMachinepc.ap.freescale.net (BuildMachinepc.ap.freescale.net [10.232.133.79]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u84ANCDP024782; Sun, 4 Sep 2016 03:23:13 -0700 From: Pankaj Chauhan To: CC: , , , , Pankaj Chauhan Date: Mon, 5 Sep 2016 16:24:28 +0530 Message-ID: <1473072871-16108-1-git-send-email-pankaj.chauhan@nxp.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131174581972145383; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(1110001)(1109001)(339900001)(53474002)(199003)(54534003)(189002)(47776003)(189998001)(356003)(2906002)(68736007)(229853001)(36756003)(305945005)(104016004)(87936001)(8666005)(4326007)(97736004)(33646002)(110136002)(586003)(7846002)(106466001)(11100500001)(86362001)(48376002)(81156014)(50466002)(8676002)(626004)(2351001)(50226002)(5003940100001)(85426001)(81166006)(105606002)(92566002)(77096005)(69596002)(5660300001)(50986999)(8936002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2443; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD021; 1:nMAD6tsR+bi545zMgqvTyh8fNJeIlzNsXkg9QD0QkLnUc8buIbt2zUf1y3n8etK3BHzMlJ1UKovtiVHSCaI9WESLKzYnC7bEG9LiopHJUu3heMkzFIWFqHCywx4wX2vH0IV1J08NwwikJAE5D3p4M01Vx6+9Akb+3MotucmizhxpgxcC6EvS6G6w1UOTYWPFUplf2OMeS1FUT2aTZ9WGzSAvgdchP2DU971j+pCX+Xtp/lZkkIJoZE3M6PzGnpTacE91jzYmxLYc7uj6GSNZoJFUNr0y/wSUCQxzA4QnlMapSDTSDsYNNe+G2XkKWvQz9lsuurLXRc1cCH1FFVBKsQg6aMKonkD/HPUBGMtsM1i7rz39+uj217R8IhYkAViCd8xkGDGDz2/5pJO97sg3C/pz58Auwn2YjZg4Vnig7keXl0Tn6J7rGc6uKFC9qTAIIUmsQmJedJFt8BcOgFi1Ank51i3cvofxBkq8TsU97tXDyx8sE6949ZV4rpmNSlnHfyGvaQBuVwu+AfyPlQ9ItaALNhib7pgC4I9q3WG2jCb3CYnM8mk+JU0lQJ9qBXiIxYijIx+S0r/dOCENwZRk1+AfNBY5b6cEqCJtaqIgNxf/pQ9iNEAKhH2Rvl00ytKKPhqyP5OQFnIUj889qsByhoSRoC9JF76X9Kh0vN3PkKcACphfRnT5YyhPyQ3qoLwf27G4HhERLGuzecQ4mYGQjJDZIxAP6H8hsJTC9O4Q476ATZC/KNN/q6PZydULNuNltGPDtDntg+41Kf7kpHZMag== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: f07953b0-6b29-46e7-3386-08d3d4ad7c77 X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 2:zN+aWY2QXjk95hCoXr9oExpRExu0ujuM0+j38OYFteumrc1RtD32mhOtHZiWXQjyZRhbAKT8q8U0D9SxVNGxpp/nwXmu8yI5qOX2zKUUMjWR5RdRA62ZebHGrepTrzu6XyiazS9fGAcRw/4B1ZqjmxP8hmUmP8SVng0LQn+og7SZZyYdd/eDq/QKiu49BvaX; 3:TsECEE1i9T518mC2b9iRrl14VntyMvo1Cm/fwcqufNM7MCnw6cwSlmL+9gvbkxDzhY5RvANkyne11oPZAtQ2XCOqXQ2iCdQkTPp6Z7d5fYk+QKWGQQiyyowzpm5Qehve1TmKXuEtYlLg/0GsI9qpOuebeqE9pGBspuZKmHq6Ypjm6EAks+6BJEh9t2JXYXn9cmWf18PMdN2md8LGP6m2s87Ub9rvYIFNSL0DJcbY8ME= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM5PR03MB2443; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 25:xEjFPaVfU/J8yrCJ4pPWd8TIj0hl09/qH8+xYbqlj1lzjyd6xEj+i3DSJcsEJt6lYue26KWB+0n0l1GWH12R5ZG6mgYJMn+Vfl/RgIqTlFZJxs/8nzYj7gHTRa9fuRPXIpd3SoeC3GfLDYf2+qDp1cKHoMIjjWAn+ufkj8wfXjyqDc3YAhQzHnpPYEFKsAZZjNvh03UE9O9NbYQLVZBtIxBvRcav+kocg8IM6j1jABoInCsqQHh+UavgyxOUL+WXMAAMW+3dfOfrb1IqhLtCdyqxvoAmm+BYWNBggnVK3In3+5P8pnK3J/k4pMzaMS6Zfj9zb65wwl7Cej37qOfEvP/ZTnZl6I5Tb0X0kcRV2FJg87M3NzXVEypKuESS4ISXyJUEcsI06Dnhskshvt57BtQL4FvskpXhTKM3SkaDgPbEA4iwGC1/2/kFfSpyCxuSOp22XvKAWLy043diutQChnvSCkXwSnvlX1mYTFm35pFxZME0w3gvQmjggDdoqh/u6g087CbOdYrmkSTPxQA+GxXjTWdqIVFEVHDAbTRfGXcP0rstKeTFY1/ZlV4dfvjvzAIlcn8uuu4yjar/q86x6Oo1wpINvd8EtDSTzZdfOIrEHIyiR5B8RjAX0F2B/dWxkgT/qLDgsPpfUpAOVqOvliJroBWS3bE/KJSm6MPCPzVrdnm8eMRVrY7uQhqaca0jNpCXI5NQir7I5TrAurWH91DvlWM9k0AesndaU8AThxc= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 31:54d2akPsG28TsT6u0nvgh0OTn5F1d4SRqSd2aFs5wW4GIC67S9NyrnbIjURTYmJE1N7JIOqhy6woGV1IBIIPXQuVkhWvPt0ufTMtp05/wdibuy8UpUghuHr0xpdWWba3i0J8ByewcLARRS90ZkVTCtZ6zge1Tuy/eCfNubXeTEYGUcaeSxtOZ1SnufFlKpHMfkfTv+KDzzbcMGVO3gqxGlEpZSy2fV41BI8DvmjDEGw=; 4:T398xvfd+6bX7GephV6KGDz8qQIkcd6CS+LDNiEOWQemT0t4cMO5Gaa/ItEQ0nOb/xGupOKI7ouSR1gP7D+dUrCWjqNLprCwYqRwQmGLgnu1iFxfCPiLzkIP3WgkOfzc48zSc1sgGTRpaaBzCIGAv9csvbS6l5bc0IfhG9IWpCsTDM/3J4f+NuylUfbIw0joQdutDAUhARZfRbNEvd2CMqbEXhMu58tn3JtKNlqft9IjLJPuwBKKm7jwbbt3yo2dgaDiXLXCV9ryQK4Ib9oAKSGHYc2s5z3Ylrm9kVih/fY1gDhvjIkmzDj8SeY3PNcQbUcOSpw5TgHpaJ2ZMBK8r1pLgmyb7miDY1SRMq/k6ChzwsQkVaj54VVM3uj4My3V+C6PJ/NAzcapks+S8I8phlM4WyqM+YTBrR978v/X6iwcjtJ3UYgK+m18KmopV0L/d6cjvvNJZ3XfgxmVGwXSHgIvQrCFZCRm+0gJZ5mgQBEtfvnsz6d4L8SuNdVY4Lx7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13015025)(13017025)(13024025)(13023025)(13018025)(10201501046)(3002001)(6055026); SRVR:DM5PR03MB2443; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2443; X-Forefront-PRVS: 00550ABE1F X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2443; 23:sySUzYFV0kq/cazCMPzMRvAUzw3gRqVvAmGL6mdN9?= =?us-ascii?Q?ifVb8HNbOruA/cxBfShkoTjXhB/LeqWs7vJMQebz+vHfNcopKHvKD0tZrk6d?= =?us-ascii?Q?/YOPkQBL741/D9WjNJE2BwwbUVZEz7Oohh2kU68jSbdsbOQAioa1CH0IlsbH?= =?us-ascii?Q?wUhdoiH6HkectMWNQPrK+ZeWeG/FWorvZCw2zY4tURreAjf7VPBBLbA+JInt?= =?us-ascii?Q?VVChHW8jjrbIiNeFM5blGhtmNQTHuiYHeDy8WpqBV8Z5s/Evgv5NR1PKnf79?= =?us-ascii?Q?z0Rpmls/MeJEQqKTNX22d7oAEbE2NWsZVBAxVdb8CtIUShZOACnbYLKfMWYt?= =?us-ascii?Q?WLNsbaXJ1nJ75xx17xQ7vmPy8TOCb+KwuZ7qgcFvxrMHM2Y3xKeI8Vw9ZtWQ?= =?us-ascii?Q?Nbfe2MQ0l1vazD2vPm2rZv5qT71Z/68FDSzbKoMD7fb8020ftusWSGi0xAzv?= =?us-ascii?Q?XZV22BPLEENdEE9zWkY8QyolpGr/9YWRfbIJKK2I7u2wrd+auD71M+Sozb43?= =?us-ascii?Q?2gnkzt3lqD5A/UL72pma6Yp9wN00/PT5TxeYznqdOfkxs/vThYDuc5lxBZJT?= =?us-ascii?Q?CiGHhQMuLOzPYyf1gcFHXs2dATSPEgtVh5zuB8P7n1v7CWmlm5X74DB//L00?= =?us-ascii?Q?3QQokWWfbasg/J+cWWYODKQZas7k20LzFQztYtQkDqiZCqremO1NBu14U0De?= =?us-ascii?Q?dMLTXQuLsjiTbsN6HymfIXf0w7yNKspokYBa8xX3c5q2eRXh1o3zSGn6yduo?= =?us-ascii?Q?ojzVc48KRqBuU4FS5A/BnZdeGGcWFZGGiA7UvtRCbp84/JUth6D0XfyhveGL?= =?us-ascii?Q?WYbMQYz1eED2sUFTn+d1KX2Tyg46G/jl36uo+ikmbhTujAsIs7KPVetC51gV?= =?us-ascii?Q?azDmlSqC4pGvM1sken7RKqOyyygwUlwckOKTuxNP/RAxKe4WEKFOi7E/2er1?= =?us-ascii?Q?RbYCkj+00N9ZMlAFg1hBrXbclJTFOpY0CGZnR+utO3xHDqNWfRbL225qW2sH?= =?us-ascii?Q?9uSNEw5h33ststn21Dojess87nYmYV8+6kMRq12A6t57GKqJZgQMBhVdxqWW?= =?us-ascii?Q?tGXgRglOe1lhFMoPqDXOE6vsPscLK+23X5p6aygfPIxc6PuwDkJxQFYD3SGs?= =?us-ascii?Q?5GFL3zSXRANjeEquVOXZgRACcF9g5SJ?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2443; 6:Ty9I+I8ssN10YiEjtgqb8q9tmy3+r8zaHpNN0jguRrNCVNmItQFynej84/HzyTwDqSHihns6jRDcU9iuGsfj5vCunFAEfuZQqzY87Lt86y/ZGzfePwsX8TvW6wDhOJ5iBsNBCfpmhzozhTn5Ix8IjiNcDAKlr6o8U7Stl136e3GhLbppbkBePBk8HXhVbW9Sqk3tLm1/4UjRrUFh6/2jgJuwstCaB1E50NJSXapCQxo4og/EeRt8K41tPi8Y+jmzPZQaZGS7xnXkd8OSklWf0F12FbZFNWAtlaOZMpw3gBE=; 5:hnwMdmrLHRzAyRFchyToJR+mP/yYieIjmJpGbg06JZNOy6GV6+QbHQYW8VScr1UYpvKJAB5y3o6b1ME5Lm33/G0L5+cRq5jltP7+HnFmVtGz71ykZE8qHM+anQzLNS32MnH/MPXkrjhnQ2rSL+U9AXU7ija0MCQ1/Yvdes3udaU=; 24:GF9q7eQOjC9GdHgndAmvE5xYjYayMjlRE1vv7WvFtK8ZGludcNaneZY6mwzz9LxYJHw2iN5HO4YpOWDvY8CPdKrE0JYnbfyUT1vmI0LGKIM=; 7:9pqsp3xHQcvDVrGg/QqZ9c+gRI7ZCgXfrkmmhZIZmAAwkcZBRKXak04JobGMXJgSII8P1LE9LJ2F6bIJ97si/1IvrRJk3dUSubmp4BaGETUiCxtdn115Ubq7tbQ6uKO5qGF9vamCi2qhWZ+NL63Nru8ptoX7kcNxw/xkiiAJBXF9+qqLZ6rrsZrUw1wCpvxQRszib9lwiwvRyPt6nJo8VZsaLSRONH4+GNKDpoWgIcGZW3FRxoQB0/dfiKtE3xEk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2016 10:23:16.9649 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2443 Subject: [dpdk-dev] [RFC][PATCH V2 0/3] example/vhost: Introduce Vswitch Framework X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Sep 2016 10:23:19 -0000 Introduce generic vswitch framework in vhost-switch application. Following are the goals/aim of the framework: 1. Make vhost-switch application generic so that it can support devices which don't support VMDQ. 2. Provide a framework so that any switching logic (generic in software or vendor specefic like VMDQ) can work with vhost-switch. Thus making vhost-switch applicable for multiple platforms of different vendors. 3. Make vhost-switch and switching logic scalable in terms of ports or policies of doing rx/tx across the ports added to switch. The patchset includes three patches: 1. "Add vswitch(generic switch) framework": This adds the generic framework, it provides the APIs/accessor functions which the vhos-switch application uses without knowing anything about underlying switching logic. The framework introduces the concept of vswitch_device, vswitch_port, and vswitch_ops. The idea is that vhost-switch will sit over the framework and different switching logics will plug into the framework underneath it. Please refer the patch description for more details of devices, ports and ops. 2. "Add vswitch command line options": Adds two new command line options for vswitch. 3. "Add VMDQ vswitch device": This patch basically delinks existing vhost/main.[c,h] from VMDQ and adds VMDQ as a vswitch device implmentation which plugs into the vswitch framework. Any other vendor logic for switching can also be plugged in same way. Thanks to Tan Jianfeng, Yuanhan Liu, Maxime coquelin for early discussions and inputs on this concept. TODO list: 1. Addd constructor based logic for registration of Vswitch implmentations like VMDQ. we will use similar mechanism as registration of PMD drivers (base on constructor function) to register all the switch implmentations in vhost-switch and then select the required implementation using command line option 'switch'. 2. Test VM2VM hardware mode: I tried following command it didn't work: vhost-switch -c f -n 4 --socket-mem 1024 --huge-dir /mnt/huge -- -p 0x1 --vm2vm 2 --vlan-strip 1 --dev-basename usvhost I tried same command on upstream master also but it didn't work, that means i am doing something wrong, please help me with correct method to test it. Or now the patches are working, so if possible please give a try to hardware VM2VM mode. 3. Changes for Maxime's comment on freeing of buffers in vs_looup_n_fwd(). I wasn't clear about what is the right way to handle, we'll fix it after getting feedback from Maxime. Change Log ========== v1->v2 ------ 1. Tested following: - Ping and iperf from VM to external machine connected to Phys port. - Ping and iperf betweeen 2 VMs in software vm2vm mode - My testsetup is: - vhost & VM machine: xeonD1521 with Network card: X552/X557-AT 10GBASE-T - Peer connected to VM machine: OptiPlex-790 with 82574L Gigabit card 2. Incorporated changes for all the comments from Maxime Coquelin. One comment is not yet taken care off, and it is listed in TODO list. Pankaj Chauhan (3): examples/vhost: Add vswitch (generic switch) framework examples/vhost: Add vswitch command line options examples/vhost: Add VMDQ vswitch device examples/vhost/Makefile | 2 +- examples/vhost/main.c | 651 +++++++++++++------------------------- examples/vhost/main.h | 10 + examples/vhost/vmdq.c | 669 ++++++++++++++++++++++++++++++++++++++++ examples/vhost/vmdq.h | 57 ++++ examples/vhost/vswitch_common.c | 499 ++++++++++++++++++++++++++++++ examples/vhost/vswitch_common.h | 186 +++++++++++ examples/vhost/vswitch_txrx.c | 97 ++++++ examples/vhost/vswitch_txrx.h | 71 +++++ 9 files changed, 1800 insertions(+), 442 deletions(-) create mode 100644 examples/vhost/vmdq.c create mode 100644 examples/vhost/vmdq.h create mode 100644 examples/vhost/vswitch_common.c create mode 100644 examples/vhost/vswitch_common.h create mode 100644 examples/vhost/vswitch_txrx.c create mode 100644 examples/vhost/vswitch_txrx.h -- 1.9.1