From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0084.outbound.protection.outlook.com [104.47.38.84]) by dpdk.org (Postfix) with ESMTP id 755341396 for ; Thu, 1 Sep 2016 14:36:12 +0200 (CEST) Received: from BY2PR03CA044.namprd03.prod.outlook.com (10.141.249.17) by MWHPR03MB2446.namprd03.prod.outlook.com (10.169.200.140) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.587.13; Thu, 1 Sep 2016 12:36:10 +0000 Received: from BL2FFO11FD058.protection.gbl (2a01:111:f400:7c09::158) by BY2PR03CA044.outlook.office365.com (2a01:111:e400:2c5d::17) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.9 via Frontend Transport; Thu, 1 Sep 2016 12:36:10 +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 BL2FFO11FD058.mail.protection.outlook.com (10.173.161.126) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Thu, 1 Sep 2016 12:36:09 +0000 Received: from [10.232.14.87] ([10.232.14.87]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id u81Ca5pH021808; Thu, 1 Sep 2016 05:36:06 -0700 To: Ferruh Yigit , References: <1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com> <1472219823-29486-1-git-send-email-shreyansh.jain@nxp.com> <57C589DB.6010704@intel.com> CC: , , , From: Shreyansh Jain Message-ID: <9fc7b95e-d0fd-b82d-2643-239f209e3aaf@nxp.com> Date: Thu, 1 Sep 2016 18:06:04 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <57C589DB.6010704@intel.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Matching-Connectors: 131172069701466548; (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)(3190300001)(24454002)(76104003)(377454003)(199003)(189002)(8676002)(5001770100001)(97736004)(4001350100001)(86362001)(81166006)(81156014)(77096005)(2906002)(31696002)(50986999)(230700001)(76176999)(54356999)(7846002)(586003)(4326007)(2950100001)(65806001)(65956001)(356003)(106466001)(31686004)(64126003)(105606002)(33646002)(47776003)(8666005)(5660300001)(36756003)(626004)(11100500001)(104016004)(305945005)(23746002)(50466002)(8936002)(65826007)(83506001)(68736007)(87936001)(92566002)(189998001)(69596002)(85426001)(7059030)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB2446; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD058; 1:91DxkH87VOG6ECwT4JwRIDmJEo5gCljDsTtvoL0pTML2FsohGDuXFF2I1oVZOCE2eLTJpvH+rGUmI1zYPx+9xgNF+bvOWE480EHqcVknyY47UTc0o22skkhfFYY8JcYF/bxSEQXXASApmFEZpMhyQQahk5HPIKeFY/2zGeGvA0tIqY17OGuaKPFKArzzVkV5mIf5xJ99+UmZK+W17Utg4RQBd2O4Qq1r7SEKtuV9h4LrMAm0RwZMtMnx9M1FuvTrVfh4zlvHBzrXi4WIUdbM7TLrGTWZ5+Gk89TN2aWf6ciIAwcaSMbVqM/gwi8263z5+cr8CGLcqFGfYJluYqtKXWstppG/hCrvK47nvUnsrqmTiTqlxbgj5ftEQ5EBJ1w7Zrx2I5rU6eZqRJFgDrtWhXEhyZKux7deKErqe7zRJStZPLjA9gLeGFOtH50bz13qxaA7s5ucrALZZ431zhVSJGbw3/UA0KyXnWsniE9mq91tD9PruIExI5FFx36tIjft0G7GCi6lWGKT1NPmvSiUMbrCnktfok5DSBXArVZudixjNenxpVd+vwscxEXkTEnRV7/M8LYL4fCNInsRnhaMlUgx9va0oqPMtax1VxWYI2s2u7AACXozgkwbrQGw67pM1B9r+JSnHXktYMyMjCgmLg== X-MS-Office365-Filtering-Correlation-Id: 816bfadc-a89f-44f4-cd4b-08d3d2648d63 X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2446; 2:nq9ONjUCQJthE+/QIaOfIKCU4qDJr5BhIG7jUw199d+yLG6kdFIITMtnLr8ooA1woNRfoWRTe48KnduMKTjXUhjBGEDlkEcSslGPZQM5igJaqWnTHhWXhoeV2BSJUZ6jUY1wNO62dZkUPsQApdYYa2By4s8IEMN6BBok7GrAdbsEfwQJ037OO+rK9Vip/TxY; 3:wgJH078VMty5BujUXU5NvAgB6yylKbBrn1V/n/bxj8CGJhCjlNxbPDFG4Iqupib28epOqooDAfDRx+M+7Gxr1U1gJppRxNDU8k/cC3iBpkckXCaBeil0Ypj3rpMeukG9iX7h9YQbhJ5PH6w9xwd+3IfLuOhnAx9H2jg2X8iIzVsJ/NJNxBPlQjGr0xPVuo7cEnwjdyYDmxDf3R9GT8TT7zpHrEt1N8eb+lfhv7egVus= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR03MB2446; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2446; 25:2QG+ALvLjELacF4QYD6zoU81TZLqmepMew39HJ9Hhtv3+ThuRjBtlit5rZ24SMuoSUBzaYLfIpyFit126i9ui+RIuQpSZ61buHK9E+O2ShD280JCwxmWLT2mEZY4ttR1QjB5T3ecG6GCVN61AVVE7AeLvmKhpFG2y+99Pgdh8O1fouM3cvYYFyYufFY47r5k9A5cDu1lSq6c4ntrNii1+lnJZsHbolnSI8KMwY4Ri+FqfkOfbRBbM0MKYfxhQB3122KB2cUKoHYrWMGi/R6sD4Zw6OEvUcZ/BnlfLBOxAOLdaOGgPlX3TSko0WRYIBU7mGKcCxQmnE6WS2m7Ut3NHHXq4nw3vzRYfKNFUeydL0zgfcUjHr+IV/vkI45otiECx29mDIUUVbbdO1HnBy2Gps+0WnHkCP2LZpS+olwCP1hwpDeQiEHLS+UEA30Vah861uGWloOXIJEsvFkQb7B3mWAj/UNe0hH/dilPMXWRrWyXtUq0Lo3O5SdPAAhqlh/1bYy/mBMm17naC9V0P00Qfoc47ijJLvVggnhjJ+YOqbywgdP6vZiWhrBh95QWCSB3XYJdz/YUAXWUAKQXFitUJpncthHBSiH7IkXr69n8oSD9RS9Ph4XEFZRjGY3D4w3an0Ra+bTxkibJmKuFrAKTSr/KNPG6RGhyvDNzW1a0cVwjEmLZwmzyvfSx3ZyxKW/rDALfl0j+n8DC3L3fzh/Ik4LOFUimYpjHEwpVOxF1YAI= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2446; 31:W/59bfLJA6B4X2D/rfVC8cK/8NchbiPGmwakK1qmgapuE3UgKA2Hukkq1ZQE1Kgkhr6fPtuEj9HfM2/O/sRuWry+9UQ6LAfUehw+Ks1ZyCCUC+HhGv8ECQuagjcH488RPExVB6RfgD8qWhjWnFf8SXH+na6R9FC+v4sMQgEaL9f/Q2xo90Mw4N+7uDAnXr5cess769+RWn3P+bZQh++WdR0diFJvHeU4ALn48oZzW+M=; 4:ikqnrSue6h4LeVOzaPLBrDAw7jsKRujKzSZ8TlxpUjb1HAKu6GpcjOFy7o55yoEG7kQiHZRTFz1g+3N3dgBO6vVJudnCLg1HdYVl20SoAgXhJ3cZcUQ5zc1CHqCPtxWnuRJbyMksholKdx9jxWvW5J1g1aNMfDagkgIJ6DL2UG/61GloinciQqK/OxMiIc+IJbMyes0pfB96i//Fi0/hj6TYDUmYf5a6GR5MrbxVr8WsnzDVMGQ23/ZvnPWRs823Wy9gWeOOBi1UIqlfW5Q3nm7RJy4dZG+mUiCdKmbVxae7kdreksOAJaWTPy40HuwRd2iEqlNonWWkyR1iQQpu612rajzR8MW5nMZsKoVSDFqCkrCNLmh7xesjckuvnpQL/68OpxwpyF2EYbDWg13bZ7OJWLQJU1J/bB6FaiHnQzR7esOc+srCv4mctea29yK8RKsXb9c713c3KhgmM2OhHelQqBl+IvsiF4h6lHTnW9zCezVTRqtOmzBjtZQqXBhw 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:MWHPR03MB2446; BCL:0; PCL:0; RULEID:(400006); SRVR:MWHPR03MB2446; X-Forefront-PRVS: 0052308DC6 X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; MWHPR03MB2446; 23:epz8laO/hKKSe+gbAtmobjcH1bvQllZ1+XgOv?= =?Windows-1252?Q?aakxb/tDrKoiwMKQ3S3Sf6X4xI+PuzhndYbIxDSgylEeyO2+RpjVcdWU?= =?Windows-1252?Q?zpikg2RCgnjSYOB5hr4MIj3kPuyHiWcy6EWYhrQbwGV1IbS0sYkMpGm4?= =?Windows-1252?Q?LbMXJX3U1DJdNMFkvVnMyHeT7Zb2cVChnkliRK2V99Tho2co2uUXh18Q?= =?Windows-1252?Q?ShpEpDOOiUsQdzbAH0TXZbzmTT1anJnbahMChUmEfozEk0gNpUfvANzt?= =?Windows-1252?Q?DM6avJlq0sBWV6LMYoUW67RGgYL5hac39SEwtbi3qxNoWG8L++7qPhLS?= =?Windows-1252?Q?6CzoIxwRXALztS2EIjn+3xfqpEj4vggyIJr1Jt5NGhU+2Z2eYZfyQ8UE?= =?Windows-1252?Q?5gebyL82ISEDfEaNszmPzUPr1LhvwB7bfEG1AOjT5tcU1P9vcAAgqXF0?= =?Windows-1252?Q?xjfzFODn+n60P6W6XXLx1I+yhxzSOWSb1PsZxN+h9dmJ9CEpb/Ma4HH4?= =?Windows-1252?Q?KrDZQVFLlCDHayUMartCgr+aDAopo6TZUw07Ty4DSy3JTzyy2pJnfqHW?= =?Windows-1252?Q?crmCNBpfyk4E+63Hv6sIdmP0LFvvTaJK2H4+lYj8B85IXP3y70uzOAXJ?= =?Windows-1252?Q?Sr/qBX5fnS1RAv/QFv0IOb/etyvAlI7+NEV9xbnIbKpTceNh51QQw8xv?= =?Windows-1252?Q?23TrO5QVGfbFMG7ikL34S4Z0oXKwsjHOPFLOW19gJR69Sz0gJuTrt02H?= =?Windows-1252?Q?TvnnO144FeHxGJPSeEBnmOHtDkJmeaKhh1VyWipxER0rDIyzlfesQW+F?= =?Windows-1252?Q?8t04RDWmSAGgOVijbgvkL70gldPsAujAOOYbcJlyvdebw11k+sFqAgo5?= =?Windows-1252?Q?pI8a4G8QF3Sv3LsTU8vBJgOmF6zKgkXPsiVkECYrROu+oV8neZPKCw9w?= =?Windows-1252?Q?bwqqLVRRl8dFBciyEx7jPEMvWwj5tvzI6C945htx8FjcIPjnTOZM69Vx?= =?Windows-1252?Q?iZ2sOy10GmF+UxuMvoXsrIZbJ38JXGsrxe5VWRwsrVxXbIvntetndMjp?= =?Windows-1252?Q?zry97Z8YVaQKr4J47AZtRqPJIJonQKukAdc+7ZnOwa/eipdK/jRnbitC?= =?Windows-1252?Q?Z5lNSScqa8XWvPFdhvPRcaw8ab/vaFwmax+LumTsj59Lzache+gh0l6Q?= =?Windows-1252?Q?n6g4O43019hFjTbg8R/H1nCYXLJgOW/nUcFLhiV75mtZ2jobuxctLJiE?= =?Windows-1252?Q?nPoJ9VRyc3HNPhmihCB0aJjea7kG+TRGgN38cxFXlk9p037xNbIhGYIy?= =?Windows-1252?Q?HCfOEds6JotLsdJ6iGdlIq0E01WLKpYdKnQBKTsyyf6gngLkByDL2AwK?= =?Windows-1252?Q?P76btt5kj33AprxOyDOduP3p+NrqFvGdMbiRo4//JnIC41OaecWJvaj1?= =?Windows-1252?Q?FDQQfw/xDusYdYukHl8Hpu54QpyeoCBZgOhvezGuoc2RtzRcdiR8kuJX?= =?Windows-1252?Q?tpOB2SBd1dCovAidsEdTcI4W8X2?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2446; 6:jEJ3zafYv8/xkdhFmww0s7UHS/HzZe806KTBoNm9/GNd6sCWPUeLHZ4Jj9je2XdZB20uXLYajChEXkF667ewFCG0qJ0UX79HuFT2OR2wlY2pNOWEcZKa8zyq77RnK5U8YpKzkkVMPJc/qP2/Q0Irp7BBbrdXUOTgNXKZU8v9EiR5YmUXoiEWryN5tvK8UP8JppiQlol28RRk7P6OLdowt52N4DWs2Fzdxx0PH/cZjJkJpDvo2l+8Kg+asthUqXm1EEpCerNHyh6eYvdllqTc6Jj0KKQoKjjN6xiddxjp+Bc=; 5:EP6suzA7XnPgagIkJVf4LEPRQhZ+hhD5P4ZaZ9IPjZKmPbVTxIOlJdVnUcUP56zLM9Al5u5aQy5KhsT/1QqV2xXbDgqvQWd2k1bG0bt2Y+XG/xBKrgtYI8W4Bp9qGjcMNHTIRkYDy3PS9Sfixv3G3/8DjvbktQq6XglGVRCwi+A=; 24:T92eQDl6TCi6+gwQ7MPFVgMHADgmOww4ERPR5+miP2m9WukAaUL18Z6s4WHyukrKUsTWhJqN1PIYhbvbjEaUZV1fPWwnaXpTtUso36YvBtI=; 7:WOckoq3ELQ0jb/CJmPJiRhSQBqrRonREO23uJPAl/IzOKx6cRbaA18JVkm4N6b8ytL/7u7c8UkhDj6Q6CoUAbIApslbk1atiqeEzOeV8l1bWaB65wdj0/LrWHqucefU8nFhqfpMCjr2cL+UOGhLz+A+Qc0M6YywzJXYyIZCsvZ2bFQVb3xB7XDGecnGhVcMBB9lubOvdc7LFtb8qIZ7eaVSoobrJylz02lbVCga6MmBD1aj6GVCp93HAX8Gm8mzL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2016 12:36:09.7566 (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: MWHPR03MB2446 Subject: Re: [dpdk-dev] [PATCH v8 00/25] Introducing rte_driver/rte_device generalization 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: Thu, 01 Sep 2016 12:36:13 -0000 Hi Ferruh, Sorry for the delay in my reply. Please find some comments inline. On Tuesday 30 August 2016 06:57 PM, Ferruh Yigit wrote: > On 8/26/2016 2:56 PM, Shreyansh Jain wrote: >> Based on master (e22856313fff2) >> >> Background: >> =========== >> >> It includes two different patch-sets floated on ML earlier: >> * Original patch series is from David Marchand [1], [2]. >> `- This focused mainly on PCI (PDEV) part >> `- v7 of this was posted by me [8] in August/2016 >> * Patch series [4] from Jan Viktorin >> `- This focused on VDEV and rte_device integration >> >> Introduction: >> ============= >> >> This patch series introduces a generic device model, moving away from PCI >> centric code layout. Key change is to introduce rte_driver/rte_device >> structures at the top level which are inherited by >> rte_XXX_driver/rte_XXX_device - where XXX belongs to {pci, vdev, soc (in >> future),...}. >> >> Key motivation for this series is to move away from PCI centric design of >> EAL to a more hierarchical device model - pivoted around a generic driver >> and device. Each specific driver and device can inherit the common >> properties of the generic set and build upon it through driver/device >> specific functions. >> >> Earlier, the EAL device initialization model was: >> (Refer: [3]) >> >> -- >> Constructor: >> |- PMD_DRIVER_REGISTER(rte_driver) >> `- insert into dev_driver_list, rte_driver object >> >> rte_eal_init(): >> |- rte_eal_pci_init() >> | `- scan and fill pci_device_list from sysfs >> | >> |- rte_eal_dev_init() >> | `- For each rte_driver in dev_driver_list >> | `- call the rte_driver->init() function >> | |- PMDs designed to call rte_eth_driver_register(eth_driver) >> | |- eth_driver have rte_pci_driver embedded in them >> | `- rte_eth_driver_register installs the >> | rte_pci_driver->devinit/devuninit callbacks. >> | >> |- rte_eal_pci_probe() >> | |- For each device detected, dev_driver_list is parsed and matching is >> | | done. >> | |- For each matching device, the rte_pci_driver->devinit() is called. >> | |- Default map is to rte_eth_dev_init() which in turn creates a >> | | new ethernet device (eth_dev) >> | | `- eth_drv->eth_dev_init() is called which is implemented by >> `--| individual PMD drivers. >> >> -- >> >> The structure of driver looks something like: >> >> +------------+ ._____. >> | rte_driver <-----| PMD |___ >> | .init | `-----` \ >> +----.-------+ | \ >> `-. | What PMD actually is >> \ | | >> +----------v----+ | >> | eth_driver | | >> | .eth_dev_init | | >> +----.----------+ | >> `-. | >> \ | >> +------------v---+ >> | rte_pci_driver | >> | .pci_devinit | >> +----------------+ >> >> and all devices are part of a following linked lists: >> - dev_driver_list for all rte_drivers >> - pci_device_list for all devices, whether PCI or VDEV >> >> >> From the above: >> * a PMD initializes a rte_driver, eth_driver even though actually it is a >> pci_driver >> * initialization routines are passed from rte_driver->pci_driver->eth_driver >> even though they should ideally be rte_eal_init()->rte_pci_driver() >> * For a single driver/device type model, this is not necessarily a >> functional issue - but more of a design language. >> * But, when number of driver/device type increase, this would create problem >> in how driver<=>device links are represented. >> >> Proposed Architecture: >> ====================== >> >> A nice representation has already been created by David in [3]. Copying that >> here: >> >> +------------------+ +-------------------------------+ >> | | | | >> | rte_pci_device | | rte_pci_driver | >> | | | | >> +-------------+ | +--------------+ | | +---------------------------+ | >> | | | | | | | | | | >> | rte_eth_dev +---> rte_device +-----> rte_driver | | >> | | | | char name[] | | | | char name[] | | >> +-------------+ | | | | | | int init(rte_device *) | | >> | +--------------+ | | | int uninit(rte_device *) | | >> | | | | | | >> +------------------+ | +---------------------------+ | >> | | >> +-------------------------------+ >> >> - for ethdev on top of vdev devices >> >> +------------------+ +-------------------------------+ >> | | | | >> | drv specific | | rte_vdev_driver | >> | | | | >> +-------------+ | +--------------+ | | +---------------------------+ | >> | | | | | | | | | | >> | rte_eth_dev +---> rte_device +-----> rte_driver | | >> | | | | char name[] | | | | char name[] | | >> +-------------+ | | | | | | int init(rte_device *) | | >> | +--------------+ | | | int uninit(rte_device *) | | >> | | | | | | >> +------------------+ | +---------------------------+ | >> | | >> | int priv_size | >> | | >> +-------------------------------+ I am in agreement to all the points you have raised below. Still, there are some comments: > > There are also "eth_driver" and "rte_cryptodev_driver", which can be > represent as: > +-----------------------------------+ > | | > | eth_driver / rte_cryptodev_driver | > | | > | +-------------------------------+ | > | | | | > | | rte_pci_driver | | > | | | | > | | +---------------------------+ | | > | | | | | | > | | | rte_driver | | | > | | | char name[] | | | > | | | int init(rte_device *) | | | > | | | int uninit(rte_device *) | | | > | | | | | | > | | +---------------------------+ | | > | | | | > | +-------------------------------+ | > | | > +-----------------------------------+ > > Is eth_driver really needs to be inherited from rte_pci_driver? > It is possible to have ethernet driver, without PCI bus, at least we > have virtual driver samples. I agree with this. There would be cases where even non-PCI devices are ethernet devices. As of now, in the proposed patchset, rte_soc_driver has been added into this but it is not a scalable solution. We cannot go on and add all type of devices into this. Having said this, back reference to type of ethernet device would be important if the ethernet driver needs to refer to some hardware specific information as part of rte_xxx_driver. > > How about: > +-------------------------------+ > | | > | rte_pci_driver / | > | rte_vdev_driver | > | +---------------------------+ | +-------------------+ > | | | | | eth_driver | > | | rte_driver |<---------- driver | > | | char name[] | | | eth_dev_init | > | | int init(rte_device *) | | | eth_dev_uninit | > | | int uninit(rte_device *) | | | | > | | | | | | > | +---------------------------+ | | | > | functional_driver ------------------>| | > +-------------------------------+ +-------------------+ Even while I was re-creating this patchset I was wondering how to realign the eth_driver<=>rte_eth_dev (even naming is inconsistent) with rte_*_driver/device and rte_driver/device. I agree with you that we should link eth_driver->rte_driver. My only concern being a case where a PCI (or other) based ethernet device needs access to driver structure for some info. Is that even a possible usecase? > > Currently there is no way to reference rte_vdev_driver from eth_driver, > since it only has pci_drv field. True. > > With this update, it can be possible to create eth_driver and > rte_eth_vdev_probe() for virtual drivers for example. (Although this may > not necessary right now, this gives ability to do.) > Agree with you. This change can help various other similar cases. > > > Another think, what do you think moving "dev_private_size" from > eth_driver and rte_cryptodev_driver to rte_driver, since this looks like > generic need for drivers. I don't see any problem in this as well. > > > > And last think, what do you think renaming eth_driver to rte_eth_driver > to be consistent? Yes, I think it should have been a most basic patch - eth_driver<->rte_eth_dev combination has existed too long. > > > Thanks, > ferruh > > - Shreyansh