From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0049.outbound.protection.outlook.com [104.47.40.49]) by dpdk.org (Postfix) with ESMTP id 535FB558C for ; Tue, 27 Sep 2016 13:26:27 +0200 (CEST) Received: from BN6PR03CA0013.namprd03.prod.outlook.com (10.168.230.151) by DM2PR03MB447.namprd03.prod.outlook.com (10.141.85.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5; Tue, 27 Sep 2016 11:26:26 +0000 Received: from BL2FFO11FD038.protection.gbl (2a01:111:f400:7c09::101) by BN6PR03CA0013.outlook.office365.com (2603:10b6:404:23::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5 via Frontend Transport; Tue, 27 Sep 2016 11:26:25 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=fail action=none header.from=nxp.com; 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 BL2FFO11FD038.mail.protection.outlook.com (10.173.161.134) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.629.5 via Frontend Transport; Tue, 27 Sep 2016 11:26:22 +0000 Received: from [127.0.0.1] (B32944-11.ap.freescale.net [10.232.14.25]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u8RBQDEQ022362; Tue, 27 Sep 2016 04:26:19 -0700 To: "Tan, Jianfeng" , References: <1473072871-16108-1-git-send-email-pankaj.chauhan@nxp.com> <1473072871-16108-2-git-send-email-pankaj.chauhan@nxp.com> <84848c11-fc26-015f-b7f8-a27d0558ef0b@nxp.com> <23bebfde-54ad-04fd-64cb-c99d7a4a78e9@nxp.com> <764c0561-2325-56e9-51e3-f75285044ee4@intel.com> CC: , , From: Pankaj Chauhan Message-ID: Date: Tue, 27 Sep 2016 16:56:12 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <764c0561-2325-56e9-51e3-f75285044ee4@intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131194491844095446; (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)(3190300001)(339900001)(189002)(377454003)(24454002)(199003)(50986999)(2950100002)(305945005)(76176999)(93886004)(54356999)(104016004)(33646002)(31696002)(69596002)(4326007)(86362001)(2906002)(120886001)(97736004)(5001770100001)(8666005)(68736007)(77096005)(105606002)(586003)(19580395003)(230700001)(356003)(189998001)(81166006)(4001350100001)(7846002)(8676002)(47776003)(92566002)(31686004)(65806001)(8936002)(65956001)(81156014)(50466002)(85426001)(36756003)(7246003)(64126003)(87936001)(5660300001)(626004)(106466001)(23746002)(65826007)(83506001)(7126002)(41533002)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR03MB447; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD038; 1:oyY06X0ReEmbj9BypBPy/C/s6ocWSElSrPs0Z6ARAhE+9bJVIt+cvx9x9rX3SyC4F9U1Bc/IbQNcxzNHtvFI/+mMY0DLyT0ng2025f8uawur45mRPAm9M+wmCgx/NgA2JCKSV0L/IjEQwAUYSZZjld5jH7k8cJj83k2Y8M2NlwvvfS1seRlV3ds4/B7a3oGsrH0gw+e09+ZR/jNHqHT/wO7mV3a6LTqBG+AfFR8kl4/z0Annb4zni0Yqc5nBuvFz9cfYsD1JyTq1qkz3jB82y/2Ke52BShmLLTY+UttMkLaMhwUAHeRTUvu1GxH9jg25Udi3FY4YvxoM5sHRuyMXUtoSgfFGCQiI0isXPhGm2eBXnlsHgcCYtypSO197D97GZJIJ8wp2mGvoGZYTSLlkD8P+QR3YD753oClSNj9c6Olu8u/rT1US1YHkbRfdniyopBQrLkD2gK0OxUKpnezTjf6HXE9Kx3EWG9apEOOtHuyP547/oMjizETun+PohyvTGT+6cqGQFoiHQD90tnm7SB17s28fPWaHiHsLM7FDLlDFd+7Axvgmwn8vZmm/hKnsarJ/n1rt+0n1kAo9/xdIZwBJonOys83ptRRVTPL6ECn4CDsHu7Y4+1sbWAsMyQmh16GpzZlY/YPvc9RmBNL3Gg== X-MS-Office365-Filtering-Correlation-Id: f2434435-cf7e-497d-816d-08d3e6c91d3c X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB447; 2:TD94DRj1f8JJrrGB7Oqe6keHzLnJXHvTA438jcsOI8v1UzVVeeyhaE4CtILquRYXkrJEnHB/MqQR+VE+YtcMDFFx2dgA7/jGi/5nVZVKxUTdxq6rP3GDj8oRPOlR0KNaz6bKFYlxibIOrd2gjRe/z4WnLo0leXaZdgrQIvL7AM9yN3FGlnjCCEiBH0vwRJBR; 3:v3VIa6lFnJUZWqm3kTl3IHV4nXGTfkYzOPVdRRYyoJ4zVrrRirWjwlRFpeIBVNmRr9TZ5OdkIoOz4KH3Drob1YM2G62PzTG0seaLkNEijsqLCgcxa2Dq8doc+OcixD8t5Ovq8AKdQ+4UUfV/UGfg8nDxu8l0Oz7K8LTytFCwE5IxBF8L8Jym/0UNnm58pOpUU/IeWxv7Qd7n0hFCoja+7TzmU1QW/BwnF4fqZkb6tV0=; 25:ZVaVuFv9AIA/vu96sTKHOGUBJ1VFlxHjT7eTF2XalyffRzKpKIhKxqo0l/WdcRALiaH9uBBHJDFnnrUPgU2xgf7+VKI6rGVTKbmqsyHZFY5y0qY79Fb/3ZvLKyIwjsu8+dbLeExSmLOUERj+PCQxT86ClylTe9+jPa3ykLtAdjCD124Q1Xwiq4QtvLQqsPPPSvH1TRrx3IWmPUjF5eHOOAlVJT3qiCJjqYCMDijie9PocV0gNtGEVRfrIWA18f/beNoufu9OsF/4FgFXmSSHiITPfAPNXoTmW7x+edJQE75+akiSC0/4Lv1tv6UGZErF+Yt28lvePbbqua9T3hy+tVIFWAFyrir83mg36Vaq+6gVhfde6X4mUCESSbzJ/x63cVt98lg228Dp/h/xo0CXevtqlg3eMgRzVkpPJUfT4+U= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB447; X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB447; 31:hbf3yE3lIGJaBMk7Im6Bcn2LMB9r0L0ZHc8pQUQKiZYTJxql4FfZ4u3m6EBrEEmVxJYQ5T/h4NW4/RFe4D6UEyDCojmfpCTdUhg7uEsIdVJ1wnldTyPIMZY4n/IfUyzjn1++ZiHkpdo4Y9Ry3N3FnengOMFZgaaZTBg1cSi94aEL8kYS8qS+d3j8jsf1Ji2n3TIrWCF+xg+lNU5tHulchZZgUEAVpvapX5mqs34fhAI=; 4:dV+tc5GMiJCqHRw+GMcqINcqhqaxrWv9CVfgGv8kEprWUQxOwYJxUW2g8PBcG3SKktHiBO9bklom9xzjFA6KaGuGBuB0S9gOvxRsZ/kNo5z4lYDPUgnnHAgmLwRkYNIXSCATiilD3/YTn1HIw5felwc+mIlaIrGB20bEWZUnI5R/FcoNHXswr2Wi0GYBFW6uWKqVR9jKjzN7SdFGXbBg6ysRBlniBLfpiwd9eqEhsGH5g1WfNazp6IZbwmsOVpzTWk5t6+TvFtjMf9UKHY5UyVUpuFo/aY8Drx73NpE3ZoaqIUdOembU5UKc7euPtg5YBwBy8VFUsv9Up/SeJ9vb9jZdO294rcR64yQ8Of9HXRS8QjuqvbfvpfuQDaIOLD9WvzkXhkJK561Yoiaw+I6Q4jIDn1w+11RlGkVZ3PkvNjq+LEBVlbsyQbFZrsJesSe/apVx9DcYG2NTeEqieSVsLpGENAImaoUVW5R3rB2xEYowvxBkVk+zC8FsipiOHuiH5KB4F0v06YCm8XTLA+WCC1pmbbARaAIsy2ayVWOYNsK0gO1kEiVux8xjKEtKNlU7ji/QB5u8hiZ+FcDD8bsA3Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(21532816269658)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(13015025)(13017025)(13018025)(13024025)(13023025)(5005006)(3002001)(10201501046)(6055026); SRVR:DM2PR03MB447; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR03MB447; X-Forefront-PRVS: 007814487B X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM2PR03MB447; 23:QH5PAOheMyFcR5aloXkkFb0IyklGteP4p4pLMt?= =?Windows-1252?Q?4xqZ0vU7fCdBpSRmHNg12bJIJOtyE9C7qUi6qxojxXbdsr5UeOPYBgG6?= =?Windows-1252?Q?Y3MYuvuyFvZykUS1kqx0+qT6tPVgv9oLw/k3SBgb7lL3oMEJ4ACBPXd5?= =?Windows-1252?Q?bD3EnvvNmlUhTYC+43vPko16ButFlbXD2bR3U9UZK/N45WzEcWl5bfWU?= =?Windows-1252?Q?2zPXQuP4vIRMT6LEO9SL4Mt0ccpFdEk9oTKcWMguvE/HyU6ntbemAxBs?= =?Windows-1252?Q?ROPIH5w99AwfiBU/Ar01FClAQlMbS/b+A9paEUrTBAfGYOr5+4F0POyp?= =?Windows-1252?Q?PGmmR7mW/nUQeYotJ+umEU1uWCfP5iiBGyHhldp5mP8bcUA4ylP9DrdZ?= =?Windows-1252?Q?BFOmtbvhdQQ+eIrJ36whuBvjKCUOWtEzxkV6k12Zarc9w6xYluuJMWT1?= =?Windows-1252?Q?cQ0zMnyHLLyRjFgTMzcYnvIfQ3/g5NuhXG/FgAdbaF3gvIxTXkJqEBRi?= =?Windows-1252?Q?OXRRbPb+c3RkyR+ZfO8pUtPbWBWqrzmW2Y7LudXopfhGBbFMY8m+gBhw?= =?Windows-1252?Q?riaE3E1lZB1IBJy/PdH0OcR/gcVSSTMeIRdDmCK+8BNJnWItq1S8FXxx?= =?Windows-1252?Q?sQtdjjRDgyAwaRpUqmFoh6BHwYl2yeohIttls6wKW5ck2rh0oEFOFOwM?= =?Windows-1252?Q?nDnxyE1IvpuBLtb0v/xWGhSP4QEJtQYJpfm8t2dumnZZB5ZF7S0pZEor?= =?Windows-1252?Q?A0mLn9zuIUKmpOLG2ZQSvh3z8nmxh+mE55zkMgpzP6XO1Iu6t/wFGVYA?= =?Windows-1252?Q?+tKfjkhgsNR297LPnZLNC4fyiC0CYJ70+lxxhu9E928h1E63w506pxem?= =?Windows-1252?Q?dynexbg5i3AZGS6WFArjKbNcYienh0wi/Mbu3wQbbiqv+kcErp//ehK/?= =?Windows-1252?Q?PwqQShm9XzKVPONPtmevoU0HHtCcKToMqd952Oimi22f4GTSxbngePn+?= =?Windows-1252?Q?WviCOHxSIQdUR/0KCImONmmv6VXlFvKlW0jqFqK2gM66i83HTC7q7dHU?= =?Windows-1252?Q?OJA/RvEPHJdtXAlCOSN0rpCl0Ur9MAELA/vYIfLK4XVKBl461WeM+duJ?= =?Windows-1252?Q?7Oz7zTaYoxAJMoN7p5aCGHrBc7NRJe7m+xM3QLhp8s/dlFR5qtcbaqP1?= =?Windows-1252?Q?LHLvfvJsKL5thurR2lEG8Vc6TsuJGY8e84nqSlTfUrF1FPp5DPgyXQcd?= =?Windows-1252?Q?9QlWk8kiNSr1x9lhQveMMyG8sHR6PLW3ovF5HKXwNncVy2gfp+mW6W0y?= =?Windows-1252?Q?0Tu5Ry7p8WDvHl+8t7wvse9niUXv6pqutFdkfQ5j+ZleQ1rWuU9VsaSm?= =?Windows-1252?Q?QO4Noy4pkUSMeJs35kO4hVyPoUbxWY6qEgD5l8G5fVZx4uwdMxJf0n/Z?= =?Windows-1252?Q?Gd0X1ijeYGm3QDSW7atTank+/3to/pBwTOe60Ne5nZbYbtXorfY0shi0?= =?Windows-1252?Q?2RXE+CLiYPmcUMCJ1Rhez4nuYPKAPrGL7DGiwdFptyosqJ7Ybbx8iBnZ?= =?Windows-1252?Q?6EZygn/I+F4nwt37kljJcZ3BiypP8uymUs?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB447; 6:NNIwT54FQCFhtgcmOAON3ZdedmgF5OS32bHdpnAvGOPAA/kWRFntfclHaLdkhC2GRcpds7G6npCPro1QtpzOjSp8fzocUozacceCCqWl4WkamzCe3pRNMYmGvOaH1qSFp5NRTjD5nXBaL8TqeBGEa1KMvXzYdG1/rBy73GFMiTEVXsdv12a/hjZz+4hw8o1MzN9CinNEeH7pi0oXUxZEYL90Vd5eKJWf4jou+qZ+7k2x6msRz+6dva5p8ZOGudlIq/b5RRTe9gmFtIEKoBC30WTqrGclFUPBZEQK2QuFQj8=; 5:3gdTzjEj0g8yvPSvavIf5OJId1M/i5KU5WEpjjNWSpj5xYeOiGGNrygX3Xurnxz6FmVmB4QVW79j7jaEHNZBjcRRpjvQv5a8FzwS+E0a3/3SWPYQAUp3I8CtYUs9oBFUMTJDas4gRLwy6QEyQpbqjWKif6+PGDvUCN4YSddlt3E=; 24:NRiJAnzdeIRbjUETNqyy4hZCOF50FIijfsfI+A46cRdTzhJyiForCnBSAVBTEE+HFYpzv12YO+yOyfzAGk1sg+C8Z4Abmeppv9szBIKCh9g=; 7:sS9nXqiGlFveevjinKWUZT6pIpj7HlU9Q6+aKp8EIshmQgdhvFp3qjVpfkc2P0kxpylfGU9+w05tK2E9iUT+ulSS5qP6Pk2lCjH7l6MmxVx/6jnPg/RzgnJCcQsKzZ/N/pBj3qw1PUowiEqQONZAXOC7P/e6m5H6MAvYx3ucB/rp4GHBVqqQ9V7NFSkqatAO06yhs5zv4ztide7J0M9octOGdP0eb/Sy3FGlMzJK85Q5cwrmnymoDC+ZyMjG7FudyIWr3vqyttek7OT4oAGQUkt9yKZ/1y62lJJPfPfCzSp80ErznOaqlUEtKJMvT6q6 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2016 11:26:22.2411 (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: DM2PR03MB447 Subject: Re: [dpdk-dev] [RFC][PATCH V2 1/3] examples/vhost: Add vswitch (generic switch) 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: Tue, 27 Sep 2016 11:26:28 -0000 On 9/19/2016 6:12 PM, Tan, Jianfeng wrote: > Hi Pankaj, > Hi Jianfeng, Sorry for delayed reply. >>> Can we hide queues inside struct vswitch_port? I mean: >>> For VMDQ switch, treat (port_id, queue_id) as a vswitch_port, so far >>> you've already stored "struct vhost_dev *" into vswitch_port.priv when >>> it's a virtual port, how about store queue_id into vswitch_port.priv >>> when it's a physical port. >>> For arp_learning switch, make (port_id, all_enabled_queues) as a >>> vswitch_port. >>> Summarize above two: we treat (port_id, all_enabled_queues[]) as a >>> vswitch_port. >>> >>> How about it? >> >> Thanks for wonderful suggestion! Yes it should be possible, instead of >> having one vs_port for physical device we could create one vs_port for >> each phys device + queue_id combination. >> >> Then we can bind the vs_ports to the cores, and do away with binding >> vdevs to the cores. >> >> In order to add extra vs_ports (port + queue_id) there are two methods: >> >> 1. vhost/main.c (or vswitch_common.c) queries the underlying switch >> about how many rx queues to support thourgh a new accessor. VMDQ will >> return the number of vmdq queues, in this case. After getting the >> number of rx queues, vhost/main.c creates the extra ports i.e one >> vs_port for each physical port and queue id combination. >> >> 2. Second method is that the switch implementation for example vmdq.c >> create the extra ports (port + queue_id) as part of vs_port->add_port >> operation for the physical port. >> >> Which method do you think we should follow? I think #1 should be done >> so that same logic can be used for other switches also. > > Although VMDQs are created at initialization, we will not connect all of > them to switch until a virtio device is added. So how about creating > extra vs_ports (port + queue_id) as part of vmdq_add_port_virtio()? > Yes we can do that, it is similar to #2 which is proposed above. But I am little bit confused regarding this approach that we were planning to take, the approach of considering port_id + queue_id as one vswitch port because Yliu mentioned in one of his comments that we should not follow this approach and keep the concept of port simple. So which approach do we take now? are we fine with keeping vswitch port simple and keeping some intelligence regarding vhost devices in the main (main.c, the generic code). > Another thing, why we need the accessor, port_start()? For physical > ports, it's initialized and started at port_init(); for virtual ports, > no need to get started, right? > Intention of port_start was to have some control when the port starts doing tx/rx. For physical port it translates to rte_eth_dev_start(), and for vhost_port it does nothing as you said. Please note that in order to support this i've moved rte_eth_dev_start() from port_init() to vs_port->port_start. Thanks, Pankaj