From 6ba1affa5410839b3cadf9bf4b6d8df57aa3927d Mon Sep 17 00:00:00 2001 From: Shreyansh Jain Date: Thu, 27 Oct 2016 16:59:12 +0530 Subject: [PATCH] lib: fix ABI version after device model rework rte_device/driver generalization patches [1] were merged without a change in the LIBABIVER variable. This patches bumps the macro of affected libs: - libcryptodev and libetherdev have been bumped - librte_eal version changed in d7e61ad3ae36 ("log: remove deprecated history dump") Details of ABI/API changes: - EAL [version already bumped in: d7e61ad3ae36] |- type field was removed from rte_driver |- rte_pci_device now embeds rte_device |- rte_pci_resource renamed to rte_mem_resource |- numa_node and devargs of rte_pci_driver is moved to rte_driver |- APIs for device hotplug (attach/detach) moved into EAL |- API rte_eal_pci_device_name added for PCI device naming |- vdev registration API introduced (rte_eal_vdrv_register, | rte_eal_vdrv_unregister - librte_crypto (v 1=>2) |- removed rte_cryptodev_create_unique_device_name API |- moved device naming to EAL - librte_ethdev (v 4=>5) |- rte_eth_dev_type is removed |- removed dev_type from rte_eth_dev_allocate API |- removed API rte_eth_dev_get_device_type |- removed API rte_eth_dev_get_addr_by_port |- removed API rte_eth_dev_get_port_by_addr |- removed rte_cryptodev_create_unique_device_name API |- moved device naming to EAL Also, deprecation notice from 16.07 has been removed and release notes for 16.11 added. [1] http://dpdk.org/ml/archives/dev/2016-September/047087.html Signed-off-by: Shreyansh Jain --- doc/guides/rel_notes/deprecation.rst | 12 ----------- doc/guides/rel_notes/release_16_11.rst | 30 ++++++++++++++++++++++++-- lib/librte_cryptodev/Makefile | 2 +- lib/librte_ether/Makefile | 2 +- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index d5c149092f..884a23185f 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -18,18 +18,6 @@ Deprecation Notices ``nb_seg_max`` and ``nb_mtu_seg_max`` providing information about number of segments limit to be transmitted by device for TSO/non-TSO packets. -* The ethdev hotplug API is going to be moved to EAL with a notification - mechanism added to crypto and ethdev libraries so that hotplug is now - available to both of them. This API will be stripped of the device arguments - so that it only cares about hotplugging. - -* Structures embodying pci and vdev devices are going to be reworked to - integrate new common rte_device / rte_driver objects (see - http://dpdk.org/ml/archives/dev/2016-January/031390.html). - ethdev and crypto libraries will then only handle those objects so that they - do not need to care about the kind of devices that are being used, making it - easier to add new buses later. - * ABI changes are planned for 16.11 in the ``rte_mbuf`` structure: some fields may be reordered to facilitate the writing of ``data_off``, ``refcnt``, and ``nb_segs`` in one operation, because some platforms have an overhead if the diff --git a/doc/guides/rel_notes/release_16_11.rst b/doc/guides/rel_notes/release_16_11.rst index aa0c09a0a1..db20567484 100644 --- a/doc/guides/rel_notes/release_16_11.rst +++ b/doc/guides/rel_notes/release_16_11.rst @@ -201,6 +201,32 @@ API Changes * The ``file_name`` data type of ``struct rte_port_source_params`` and ``struct rte_port_sink_params`` is changed from `char *`` to ``const char *``. +* **Improved device/driver hierarchy and generalized hotplugging** + + Device and driver relationship has been restructured by introducing generic + classes. This paves way for having PCI, VDEV and other device types as + just instantiated objects rather than classes in themselves. Hotplugging too + has been generalized into EAL so that ethernet or crypto devices can use the + common infrastructure. + + * removed ``pmd_type`` as way of segregation of devices + * moved ``numa_node`` and ``devargs`` into ``rte_driver`` from + ``rte_pci_driver``. These can now be used by any instantiated object of + ``rte_driver``. + * added ``rte_device`` class and all PCI and VDEV devices inherit from it + * renamed devinit/devuninit handlers to probe/remove to make it more + semantically correct with respect to device<=>driver relationship + * moved hotplugging support to EAL. Hereafter, PCI and vdev can use the + APIs ``rte_eal_dev_attach`` and ``rte_eal_dev_detach``. + * helpers and support macros have been renamed to make them more synonymous + with their device types + (e.g. ``PMD_REGISTER_DRIVER`` => ``RTE_PMD_REGISTER_PCI``) + * Device naming functions have been generalized from ethdev and cryptodev + to EAL. ``rte_eal_pci_device_name`` has been introduced for obtaining + unique device name from PCI Domain-BDF description. + * Virtual device registration APIs have been added: ``rte_eal_vdrv_register`` + and ``rte_eal_vdrv_unregister``. + ABI Changes ----------- @@ -232,11 +258,11 @@ The libraries prepended with a plus sign were incremented in this version. .. code-block:: diff - libethdev.so.4 + + libethdev.so.5 librte_acl.so.2 librte_cfgfile.so.2 librte_cmdline.so.2 - librte_cryptodev.so.1 + + librte_cryptodev.so.2 librte_distributor.so.1 + librte_eal.so.3 librte_hash.so.2 diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile index 314a046687..aebf5d9fa4 100644 --- a/lib/librte_cryptodev/Makefile +++ b/lib/librte_cryptodev/Makefile @@ -34,7 +34,7 @@ include $(RTE_SDK)/mk/rte.vars.mk LIB = librte_cryptodev.a # library version -LIBABIVER := 1 +LIBABIVER := 2 # build flags CFLAGS += -O3 diff --git a/lib/librte_ether/Makefile b/lib/librte_ether/Makefile index 488b7c8471..bc2e5f6518 100644 --- a/lib/librte_ether/Makefile +++ b/lib/librte_ether/Makefile @@ -41,7 +41,7 @@ CFLAGS += $(WERROR_FLAGS) EXPORT_MAP := rte_ether_version.map -LIBABIVER := 4 +LIBABIVER := 5 SRCS-y += rte_ethdev.c -- 2.20.1