From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0059.outbound.protection.outlook.com [104.47.32.59]) by dpdk.org (Postfix) with ESMTP id 9C2825681 for ; Fri, 9 Sep 2016 10:43:54 +0200 (CEST) Received: from BN3PR0301CA0018.namprd03.prod.outlook.com (10.160.180.156) by BN6PR03MB2434.namprd03.prod.outlook.com (10.168.223.12) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.609.9; Fri, 9 Sep 2016 08:43:53 +0000 Received: from BL2FFO11FD044.protection.gbl (2a01:111:f400:7c09::156) by BN3PR0301CA0018.outlook.office365.com (2a01:111:e400:4000::28) 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; Fri, 9 Sep 2016 08:43:53 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) 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.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 BL2FFO11FD044.mail.protection.outlook.com (10.173.161.140) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.587.6 via Frontend Transport; Fri, 9 Sep 2016 08:43:53 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.87]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id u898hoYs018305; Fri, 9 Sep 2016 01:43:50 -0700 From: Shreyansh Jain To: CC: , , Shreyansh Jain Date: Fri, 9 Sep 2016 14:13:44 +0530 Message-ID: <1473410639-10367-1-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1451682326-5834-1-git-send-email-viktorin@rehivetech.com> References: <1451682326-5834-1-git-send-email-viktorin@rehivetech.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131178842332139836; (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)(7916002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(50226002)(4326007)(104016004)(19580395003)(2906002)(2950100001)(87936001)(77096005)(229853001)(47776003)(15975445007)(15395725005)(110136002)(105606002)(106466001)(85426001)(97736004)(8676002)(92566002)(626004)(305945005)(86362001)(189998001)(5660300001)(68736007)(5890100001)(81166006)(50466002)(7846002)(50986999)(76176999)(36756003)(81156014)(586003)(8666005)(33646002)(48376002)(8936002)(356003)(11100500001)(561944003)(2351001)(5003940100001)(7059030)(21314002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2434; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD044; 1:CJV05A3y7ht9Rsgae1RtFixDH6AqayD2DTUhGsCMFG8UX3yuso+FVIHYgaCeqCqz/218rHiVb1eKXU/IlYARk3FEd62m1puznMYm52zNrsdytGjIYiI6U5kABR6T2hyjG1ny4c7EdYg/kYwsBMTYP7zMFlElSrwbeyX/8eSKDn7FXkyfFiZCyYIMw+yU1mh42XWVIQr/GBG6ZKcC6FQkHsdwI0fTEp+PAQbS5+VjwVG91Dj91wxSuashi/8TUq2GxLXcfB7XYluG708RCF1VZ7G1PYRwpKxBw1SVtuO4a7fiSD/1x/oGDMCEgXOFuoszSZ74vq/oD0DCX2puwyxznegq7bGrXKKP3mqPLnu33kjNMEG6ebZWwgzL/y/c6Qfi5Vu1jWhhZ0rDy639TGhToZEyvGUaLSYRaVXrmW4ggi7BXuc3nBFBhqNcSoqRG3JqTLE9E7H65C0ydvanYb32GHqBCQ7vYnxzOxhb6T+fkKes6P5D4/lpJpVJ0RtH4lHstQUTTrE1twTREIkDy9BTDvDtP8PjRbzP77XdGgROic5tAaLJefTRubPlIfP+mePxS3XyDx08pP7b11x6MEBDa5BrikpsQhSU9IQtmAV46qD4GUNLxiPMMdFDiObLltvtnHiYcN2B2hSKmnhMfkrG4qwPp0ByMKKAxlGcqw1RR3177d2/EIsY/yOBJdhAnVlcA5gvNz2XRYzE7ByxzGpkXL4aOA5o5SDZlPOd0VTLLeY= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 55269c49-3d1b-48b2-113c-08d3d88d6db8 X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2434; 2:yciApED9fe908Zusld2SCXSfPI1QRbhXZiEWYliJhIdh6KRq+zG4LUmMSbpSn/jJof4LMUG256H8wUjxlom2jJ1u4rPeiv6btdIIBRLCfVKUu+uDuaiRgTj41R5qQ6lZzln44eyHqBiBzYb2Ic4CqMb+CqqmzUASHe40OpC8xeA8GG6ea8aj5OnU6AOjXCi5; 3:V53JGBzaqwTGB44/Mqh7JYjzkcOvCWfuPEKxbRwmlfOxKhswSW+mYKjw88W6LoUpJELGbUZZuwGK6uekUA2eUaoUFwhfN48kAvGK26MLAplUCHIUT9dd/fgwoJTrj3zVg+g4K2lTW6aXJngwoTf/tpCdAg3NkHoPPnD4Y2f+QsnQKvZI27P+aLVUg50h6kLA8stfb2F88AvznGUvPX8NyywGaTmcHQeGpoIV9ttF8P8=; 25:vrHZBo/gJ+40W3qP5EaAwtxsRPOOPX21R/1vNNLeBta8QmAuiAmebxFky+Vgvaypqnu9/CrBTJQsXqCiI+P28hpEJ6UQkCP6ASFdFNQ5jTWUaopLHwEkNYh6np03+bFIt+X2Ui2g2V9xcppti8iUwh9uAWcSBVN248n+PkONLbq9RhjYAlP8ULCjtKlXl2F4KUUuYkV6dEYHCnZzB2xxYppI9yz1CD3Sh9ItqLfb1/ArJ382WQNohSXb9i3KToVBGRReY7E/K7RPC3xLUeIOl2rs9v66qS6BAU022Knl3NH0YcgptOMafm1bKl9E41WNArnJZ8jE8YHmoK9Sl0GksytrYQmFexrRJ8k+cPOIvKUTjR0YJa4fz95g8QhOcF306hYg9DK0QTft0ymdhcbFhg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR03MB2434; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2434; 31:TBbmPG9q9pxbsfoy3Bu5TZ1VjgueeZVeJbb129baHxxTrcLjeVOk4ytJNdbC+rkH6wUwAlfRYzIU/RlrP03UEaA7lQqkRXX/g16tdBmLJSAucQTshKJKq8QBsdtMwDzwC97/owQ2nXRn3dNJjThIbrhaTI/oF8XAkssS5aWzBU+3l2t/wzVBUp5MLn/LVpwtvKdRyuBPG64mmm1OtsZNCtqB8fGo4nDuv04aJ973dYU=; 4:m6lmMZ2yuOnrZZQwSndyRm4DZO6Ca8qE2V6XP2EBLZ1T6wMdkgS938OSuFVm1DdFTX/LeMR2nhLL8r2rGExxJ+N8/v6UG7a9SS125OuyksUwCcWCg9ce54PqDH1knp9GmcaJJ2BlVAG+8F7qIbrUB1LSbGm4JexAVJybW09HU5RpOFBE4nxePHyMIrCsSDPaWS1GSMwP7XMCXMLN/ljmKkhw0k4dtqI+2C8c7+VO35I/SnknHd6y9uRNMo2sCHSBPBYjKrt57UGoKzhWQfE+LrfFaVVtrfNQPv34h1Du451+gK8Lk0z5VCqzyvWLGoyEFYrWsRMtxaxCo0BhI9iAHATbnz2lTfMPpJxrlxZcitgOt00+nnkFQE4PO/pV2dE2QxBwElA/nyPipI60TTE8vKTfMQAG1nW8AL+afyE4jLKHf3pXFfyF2Lr1GCqU4n8SJc0zcpUqDz77SaVhr+y3jZHu5F7oTOxk6BIqMygZdt0HaCOOSISr+1nlz33KYoBh X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13015025)(13017025)(13023025)(13018025)(13024025)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:BN6PR03MB2434; BCL:0; PCL:0; RULEID:(400006); SRVR:BN6PR03MB2434; X-Forefront-PRVS: 00603B7EEF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2434; 23:TGiThzZWeOZCv88Cjjt3WCt2A9cusjuZymsoFq8/4?= =?us-ascii?Q?5YVRxTETQyJAHg9hJmwt1VoxH9mDaB6WI9bm5VAmC3fUj5cfzX1L9HbRRFem?= =?us-ascii?Q?TXk1pMOjUqbhOXyIAXHX2BmEkusti47Gk2Jy2N2heRt2XSbxn51Xzf/zyIvc?= =?us-ascii?Q?5On3hJ+FU/zb/wM/vYNW+ZJfgrTG4Dpd7lMaqMr8tO1z6mPMgVIxmseKKFju?= =?us-ascii?Q?LMqUFHgOwOJBWAivn7n/wVU2sSVurRfZKXxcPyR91h0TCZ9+X3N6xv/eadM6?= =?us-ascii?Q?S+pVPlI4342Jay9/oi9e12qgRBMZhNGzlSZgVJEefgUooHFZivwXcDQOSxs/?= =?us-ascii?Q?rGAJkPgsD8aEDqMiKY45zdENJIr6Z28sxxGw/IX0rvqs9aH9mvkhWCh76J8k?= =?us-ascii?Q?SvD9BThaAdfR15FgQaBy1lAqoXIVzCM1nbiRcuqM6Htrr18l9BghnHwO0/Ww?= =?us-ascii?Q?jszrgjlG9/+cdiAlfCXMhNYvTcCNKcFWB4ZWAHkXVq4PnPS3YWoSFTybvWnX?= =?us-ascii?Q?KEUJ+fUwWi591jy7DfzPMsqlrATfKwxWc/+Gm1jc++8fs+ZmMqMr7qR6WQBD?= =?us-ascii?Q?pXg0hctFZoAoKv8ydrSEC4avwV6wa0SUF3lm1jgbnHi2QL1t3q8b+2YocoA/?= =?us-ascii?Q?22/g5JAGXvbq5vcU+9/i4RIsufy2HxVg3K/6zsxtUnDq+QJa4tazX7XN+7RP?= =?us-ascii?Q?QRKz8v9fwYI8+z3vkqCXEjZcshu4T8ENjKxD1FJkqgkxL4qjQT4qNugVtMY5?= =?us-ascii?Q?f5ySUD5ayeGV0vcTQr7PhVdhZIGNQBYFy4JTHkYeAzwPTguHdhtmnZrQWq2U?= =?us-ascii?Q?CcCtjE46OXsQaPov81Si/3Zf9UreG0c3Dqt2DxhQvpt4gY9xrcjFkzOTczrR?= =?us-ascii?Q?i2YoPlYlkmh/LOpefh3JFzOBIb+U85Pu4gOHiu1DlJP+OoMVZ+GIZV2E0BWv?= =?us-ascii?Q?A2+Cl7cHuYwc530H6Lum7c98l9Gpk3W8062QIQs/Rbxb/hpJKrt9Dm0D0D7e?= =?us-ascii?Q?VPhk3nAlHNw2ROpLSn0Od+CeTxsTkYGazBxr5Dei4LhJZWPvZgCVHgeQo82L?= =?us-ascii?Q?wri7Y8g82KYnxd+OZGJbeYSkRGbjShOw2+rvMuVM3gkrfqSMfXqOIoMS980f?= =?us-ascii?Q?6Ky2Chg5ODBafgY85oHj78haTRwNV3GZmmsURmNMQKTRHunERtYKagNqPcAp?= =?us-ascii?Q?FnJfPlbRoaqyb63RGZG3WzvPZDS1oVpKvuEMcukhnqHy/+WGjXV0Jg8E5gR+?= =?us-ascii?Q?fMPKPctibsKU7MZVrIA1S/I73ACPL5PW+9beNTc?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2434; 6:x94hC1urZw5hWqoFsg4an6/JMqp3XPKeBqCaG9bjfJy312MSEf7dxXV+M+Exz4PzMFYpRIY41HXJjJVb+WFePzSgnHEiTlpowSDZC9aUHy4khm5awWN1FmP06eJocjg+qruEvV0vNE67ly8ErdpgMAqlUpNuIIKUKc4cfw2ZCDW+4xBXC6uezChg7scuZKxjVCu+zifyBX8XYtvJN3YYJHLoUsR5z1kkSlyopnMI4nBxcAna0BWQjckTSRRZlyN3XWTtLcnydd+qazIZ8heA4Ik5fjrQOxAe/P/ghS1Q0ok=; 5:6l/YYaz9Y9OoT5WWh0NRlKMrzlGeUgYJnuqm8+5NcPNbGy9nP2suzJUTOW/mDuCH/1IJ5UNS4mD8iZ4oQaGfX3E9WFDI+9pa7x/HJOw6W3/gNs42ajnCO79IYoUH/Og74JiWJQsoEaInwGtQ6HlLsrgq2RupkpHDpLnaWSsiMwQ=; 24:BfVc6WN99NZX3T6LsyUka/ih0Yz7ahD0ItWOg4PX5Ow1XkE9r/5KYjruLADAmucuZna4JOuVP7nVRM0VkrMT/H3mvdegdSkEL99jA+QhCC0=; 7:lQKDyIyAH9l9bmn7Iwqmhq4vEZaU9yH2dRItOXW2jn5r5tYEIwTuthIEdxP4vm89XMQOR0Nn9z2oNExefPI1KWxDdoCbr81wgV7n6UTUK6N0+hZT0dDUwvYSiZo8V56SKG7ZG/vBP0lul/egPgD+Nq23NNaBCe5IeaMYYislx9B0APjiQs1uRuErndcnQjHJ6xwnvljOnfTfZCCfY3RXT2ExByucyQRNalosFp/A54+7vGegNwN+JtTBUl5K+04w SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2016 08:43:53.0423 (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: BN6PR03MB2434 Subject: [dpdk-dev] [PATCH v3 00/15] Introduce SoC device/driver framework for EAL 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: Fri, 09 Sep 2016 08:43:55 -0000 Introduction: ============= This patch set is direct derivative of Jan's original series [1],[2]. - As this deviates substantially from original series, if need be I can post it as a separate patch rather than v2. Please suggest. - Also, there are comments on original v1 ([4]) which are _not_ incorporated in this series as they refer to section no more in new version. - This v3 version is based on the rte_driver/device patchset v9 [10]. That series introduced device structures (rte_driver/rte_device) generalizing devices into PCI, VDEV, XXX. For the purpose of this patchset, XXX=>SOC. Aim: ==== As of now EAL is primarly focused on PCI initialization/probing. rte_eal_init() |- rte_eal_pci_init(): Find PCI devices from sysfs |- ... |- rte_eal_memzone_init() |- ... `- rte_eal_pci_probe(): Driver<=>Device initialization This patchset introduces SoC framework which would enable SoC drivers and drivers to be plugged into EAL, very similar to how PCI drivers/devices are done today. This is a stripped down version of PCI framework which allows the SoC PMDs to implement their own routines for detecting devices and linking devices to drivers. 1) Changes to EAL rte_eal_init() |- rte_eal_pci_init(): Find PCI devices from sysfs |- rte_eal_soc_init(): Calls PMDs->scan_fn |- ... |- rte_eal_memzone_init() |- ... |- rte_eal_pci_probe(): Driver<=>Device initialization, PMD->devinit() `- rte_eal_soc_probe(): Calls PMDs->match_fn and PMDs->devinit(); 2) New device/driver structures: - rte_soc_driver (inheriting rte_driver) - rte_soc_device (inheriting rte_device) - rte_eth_dev and eth_driver embedded rte_soc_device and rte_soc_driver, respectively. 3) The SoC PMDs need to: - define rte_soc_driver with necessary scan and match callbacks - Register themselves using DRIVER_REGISTER_SOC() - Implement respective bus scanning in the scan callbacks to add necessary devices to SoC device list - Implement necessary eth_dev_init/uninint for ethernet instances 4) Design considerations that are same as PCI: - SoC initialization is being done through rte_eal_init(), just after PCI initialization is done. - As in case of PCI, probe is done after rte_eal_pci_probe() to link the devices detected with the drivers registered. - Device attach/detach functions are available and have been designed on the lines of PCI framework. - PMDs register using DRIVER_REGISTER_SOC, very similar to DRIVER_REGISTER_PCI for PCI devices. - Linked list of SoC driver and devices exists independent of the other driver/device list, but inheriting rte_driver/rte_driver, these are also part of a global list. 5) Design considerations that are different from PCI: - Each driver implements its own scan and match function. PCI uses the BDF format to read the device from sysfs, but this _may_not_ be a case for a SoC ethernet device. = This is an important change from initial proposal by Jan in [2]. Unlike his attempt to use /sys/bus/platform, this patch relies on the PMD to detect the devices. This is because SoC may require specific or additional info for device detection. Further, SoC may have embedded devices/MACs which require initialization which cannot be covered through sysfs parsing. = PCI based PMDs rely on EAL's capability to detect devices. This proposal puts the onus on PMD to detect devices, add to soc_device_list and wait for Probe. Matching, of device<=>driver is again PMD's callback. Patchset Overview: ================== - Patches 0001~0003 introduce the base infrastructure and test case - Patch 0004 is for command line support for no-soc, on lines of no-pci - Patch 0005 enables EAL to handle SoC type devices - Patch 0006 adds support for scan and probe callbacks and updates the test framework with relevant test case. - Patch 0007~0009 enable device argument, driver specific flags and interrupt handling related basic infra. Subsequent patches build up on them. - Patch 0010~0013 makes changes to PCI as well as ethdev code to remove assumption that eth_driver is a PCI driver. - Patch 0014 adds necessary ethdev probe/remove functions for PMDs to use - Patch 0015 adds support for SoC driver/devices, along with probe/remove functions for Cryptodev devices. Future/Pending Changes: ======================= - Device whitelisting/blacklist still relies on command line '-b' and '-c' which are internally implemented using OPT_PCI_BLACKLIST/OPT_PCI_WHITELIST. This needs to be changed to a generic form - OPT_DEV_*LIST - probably. - No cryptodriver currently uses SoC framework - probably a example driver can be created to demonstrate usage. [1] http://dpdk.org/ml/archives/dev/2016-January/030915.html [2] http://www.dpdk.org/ml/archives/dev/2016-May/038486.html [3] http://dpdk.org/ml/archives/dev/2016-August/045707.html [4] http://dpdk.org/ml/archives/dev/2016-May/038948.html [5] http://dpdk.org/ml/archives/dev/2016-May/038953.html [6] http://dpdk.org/ml/archives/dev/2016-May/038487.html [7] http://dpdk.org/ml/archives/dev/2016-May/038488.html [8] http://dpdk.org/ml/archives/dev/2016-May/038489.html [9] http://dpdk.org/ml/archives/dev/2016-May/038491.html [10] http://dpdk.org/ml/archives/dev/2016-September/046256.html Changes since v2: - Rebasing over rte_driver/device patchset v9 [10] - Added cryptodev support for SoC - Default match function for SoC device<=>Driver - Some variables renamed to reflect 'drv' rather than 'dr' Change since v1 [2]: - Removed patch 1-5 which were for generalizing some PCI specific routines into EAL. These patches are good-to-have but not directly linked to SoC and hence would be proposed separately. - Removed support for sysfs parsing (patches 6~9) - Rebasing over the recent (v8) version of rte_driver/device patchset - Rebasing over master (16.07) - Changes to various map file to change API intro to 16.11 from 16.07 Shreyansh Jain (15): eal/soc: introduce very essential SoC infra definitions eal/soc: add rte_eal_soc_register/unregister logic eal/soc: Implement SoC device list and dump eal: introduce --no-soc option eal/soc: init SoC infra from EAL eal/soc: implement probing of drivers eal/soc: extend and utilize devargs eal/soc: add drv_flags eal/soc: add intr_handle ether: utilize container_of for pci_drv ether: verify we copy info from a PCI device ether: extract function eth_dev_get_intr_handle ether: extract function eth_dev_get_driver_name ether: Support rte_soc_driver/device for etherdev eal/crypto: Support rte_soc_driver/device for cryptodev app/test/Makefile | 1 + app/test/test_soc.c | 337 +++++++++++++++++++++++ lib/librte_cryptodev/rte_cryptodev.c | 122 ++++++++- lib/librte_cryptodev/rte_cryptodev.h | 3 + lib/librte_cryptodev/rte_cryptodev_pmd.h | 18 +- lib/librte_cryptodev/rte_cryptodev_version.map | 3 + lib/librte_eal/bsdapp/eal/Makefile | 1 + lib/librte_eal/bsdapp/eal/eal.c | 4 + lib/librte_eal/bsdapp/eal/eal_soc.c | 46 ++++ lib/librte_eal/bsdapp/eal/rte_eal_version.map | 10 + lib/librte_eal/common/Makefile | 2 +- lib/librte_eal/common/eal_common_dev.c | 27 +- lib/librte_eal/common/eal_common_devargs.c | 17 ++ lib/librte_eal/common/eal_common_options.c | 5 + lib/librte_eal/common/eal_common_soc.c | 350 ++++++++++++++++++++++++ lib/librte_eal/common/eal_internal_cfg.h | 1 + lib/librte_eal/common/eal_options.h | 2 + lib/librte_eal/common/eal_private.h | 14 + lib/librte_eal/common/include/rte_devargs.h | 8 + lib/librte_eal/common/include/rte_soc.h | 260 ++++++++++++++++++ lib/librte_eal/linuxapp/eal/Makefile | 2 + lib/librte_eal/linuxapp/eal/eal.c | 8 + lib/librte_eal/linuxapp/eal/eal_soc.c | 72 +++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 9 + lib/librte_ether/rte_ethdev.c | 165 ++++++++++- lib/librte_ether/rte_ethdev.h | 33 ++- 26 files changed, 1501 insertions(+), 19 deletions(-) create mode 100644 app/test/test_soc.c create mode 100644 lib/librte_eal/bsdapp/eal/eal_soc.c create mode 100644 lib/librte_eal/common/eal_common_soc.c create mode 100644 lib/librte_eal/common/include/rte_soc.h create mode 100644 lib/librte_eal/linuxapp/eal/eal_soc.c -- 2.7.4