ethdev: add field for device data per process
Primary and secondary processes share a per-device private data. With current design it is not possible to have data per-device per-process. This is required for handling properly the CPP interface inside the NFP PMD with multiprocess support. There is also at least another PMD driver, tap, with similar requirements for per-process device data. Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
621c5c1db2
commit
deb373fb07
@ -342,7 +342,7 @@ The libraries prepended with a plus sign were incremented in this version.
|
||||
librte_cryptodev.so.5
|
||||
librte_distributor.so.1
|
||||
+ librte_eal.so.9
|
||||
librte_ethdev.so.10
|
||||
+ librte_ethdev.so.11
|
||||
+ librte_eventdev.so.6
|
||||
librte_flow_classify.so.1
|
||||
librte_gro.so.1
|
||||
|
@ -16,7 +16,7 @@ LDLIBS += -lrte_mbuf -lrte_kvargs
|
||||
|
||||
EXPORT_MAP := rte_ethdev_version.map
|
||||
|
||||
LIBABIVER := 10
|
||||
LIBABIVER := 11
|
||||
|
||||
SRCS-y += ethdev_private.c
|
||||
SRCS-y += rte_ethdev.c
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright(c) 2017 Intel Corporation
|
||||
|
||||
name = 'ethdev'
|
||||
version = 10
|
||||
version = 11
|
||||
allow_experimental_apis = true
|
||||
sources = files('ethdev_private.c',
|
||||
'ethdev_profile.c',
|
||||
|
@ -539,7 +539,13 @@ struct rte_eth_dev {
|
||||
eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function. */
|
||||
eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit function. */
|
||||
eth_tx_prep_t tx_pkt_prepare; /**< Pointer to PMD transmit prepare function. */
|
||||
struct rte_eth_dev_data *data; /**< Pointer to device data */
|
||||
/**
|
||||
* Next two fields are per-device data but *data is shared between
|
||||
* primary and secondary processes and *process_private is per-process
|
||||
* private. The second one is managed by PMDs if necessary.
|
||||
*/
|
||||
struct rte_eth_dev_data *data; /**< Pointer to device data. */
|
||||
void *process_private; /**< Pointer to per-process device data. */
|
||||
const struct eth_dev_ops *dev_ops; /**< Functions exported by PMD */
|
||||
struct rte_device *device; /**< Backing device */
|
||||
struct rte_intr_handle *intr_handle; /**< Device interrupt handle */
|
||||
|
Loading…
Reference in New Issue
Block a user