From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [dpdk-dev] [PATCH v3 26/27] memif: replace master/slave with server/client
Date: Wed, 1 Jul 2020 12:46:49 -0700 [thread overview]
Message-ID: <20200701194650.10705-27-stephen@networkplumber.org> (raw)
In-Reply-To: <20200701194650.10705-1-stephen@networkplumber.org>
The names master and slave should be changed in this driver.
It is really a traditional client server model, so use those names.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
doc/guides/nics/memif.rst | 78 +++++++++---------
drivers/net/memif/memif.h | 40 +++++-----
drivers/net/memif/memif_socket.c | 54 ++++++-------
drivers/net/memif/memif_socket.h | 5 +-
drivers/net/memif/rte_eth_memif.c | 128 +++++++++++++++---------------
drivers/net/memif/rte_eth_memif.h | 20 ++---
6 files changed, 163 insertions(+), 162 deletions(-)
diff --git a/doc/guides/nics/memif.rst b/doc/guides/nics/memif.rst
index 9c67d7141cbe..5723ac01c7ee 100644
--- a/doc/guides/nics/memif.rst
+++ b/doc/guides/nics/memif.rst
@@ -13,13 +13,13 @@ The created device transmits packets in a raw format. It can be used with
Ethernet mode, IP mode, or Punt/Inject. At this moment, only Ethernet mode is
supported in DPDK memif implementation.
-Memif works in two roles: master and slave. Slave connects to master over an
+Memif works in two roles: server and client. Client connects to server over an
existing socket. It is also a producer of shared memory file and initializes
the shared memory. Each interface can be connected to one peer interface
-at same time. The peer interface is identified by id parameter. Master
-creates the socket and listens for any slave connection requests. The socket
+at same time. The peer interface is identified by id parameter. Server
+creates the socket and listens for any client connection requests. The socket
may already exist on the system. Be sure to remove any such sockets, if you
-are creating a master interface, or you will see an "Address already in use"
+are creating a server interface, or you will see an "Address already in use"
error. Function ``rte_pmd_memif_remove()``, which removes memif interface,
will also remove a listener socket, if it is not being used by any other
interface.
@@ -31,57 +31,57 @@ net_memif1, and so on. Memif uses unix domain socket to transmit control
messages. Each memif has a unique id per socket. This id is used to identify
peer interface. If you are connecting multiple
interfaces using same socket, be sure to specify unique ids ``id=0``, ``id=1``,
-etc. Note that if you assign a socket to a master interface it becomes a
-listener socket. Listener socket can not be used by a slave interface on same
+etc. Note that if you assign a socket to a server interface it becomes a
+listener socket. Listener socket can not be used by a client interface on same
client.
.. csv-table:: **Memif configuration options**
:header: "Option", "Description", "Default", "Valid value"
"id=0", "Used to identify peer interface", "0", "uint32_t"
- "role=master", "Set memif role", "slave", "master|slave"
+ "role=server", "Set memif role", "client", "server|client"
"bsize=1024", "Size of single packet buffer", "2048", "uint16_t"
"rsize=11", "Log2 of ring size. If rsize is 10, actual ring size is 1024", "10", "1-14"
"socket=/tmp/memif.sock", "Socket filename", "/tmp/memif.sock", "string len 108"
"mac=01:23:45:ab:cd:ef", "Mac address", "01:ab:23:cd:45:ef", ""
"secret=abc123", "Secret is an optional security option, which if specified, must be matched by peer", "", "string len 24"
- "zero-copy=yes", "Enable/disable zero-copy slave mode. Only relevant to slave, requires '--single-file-segments' eal argument", "no", "yes|no"
+ "zero-copy=yes", "Enable/disable zero-copy client mode. Only relevant to client, requires '--single-file-segments' eal argument", "no", "yes|no"
**Connection establishment**
In order to create memif connection, two memif interfaces, each in separate
-process, are needed. One interface in ``master`` role and other in
-``slave`` role. It is not possible to connect two interfaces in a single
+process, are needed. One interface in ``server`` role and other in
+``client`` role. It is not possible to connect two interfaces in a single
process. Each interface can be connected to one interface at same time,
identified by matching id parameter.
Memif driver uses unix domain socket to exchange required information between
memif interfaces. Socket file path is specified at interface creation see
-*Memif configuration options* table above. If socket is used by ``master``
+*Memif configuration options* table above. If socket is used by ``server``
interface, it's marked as listener socket (in scope of current process) and
listens to connection requests from other processes. One socket can be used by
-multiple interfaces. One process can have ``slave`` and ``master`` interfaces
+multiple interfaces. One process can have ``client`` and ``server`` interfaces
at the same time, provided each role is assigned unique socket.
For detailed information on memif control messages, see: net/memif/memif.h.
-Slave interface attempts to make a connection on assigned socket. Process
+Client interface attempts to make a connection on assigned socket. Process
listening on this socket will extract the connection request and create a new
connected socket (control channel). Then it sends the 'hello' message
-(``MEMIF_MSG_TYPE_HELLO``), containing configuration boundaries. Slave interface
+(``MEMIF_MSG_TYPE_HELLO``), containing configuration boundaries. Client interface
adjusts its configuration accordingly, and sends 'init' message
(``MEMIF_MSG_TYPE_INIT``). This message among others contains interface id. Driver
-uses this id to find master interface, and assigns the control channel to this
+uses this id to find server interface, and assigns the control channel to this
interface. If such interface is found, 'ack' message (``MEMIF_MSG_TYPE_ACK``) is
-sent. Slave interface sends 'add region' message (``MEMIF_MSG_TYPE_ADD_REGION``) for
-every region allocated. Master responds to each of these messages with 'ack'
-message. Same behavior applies to rings. Slave sends 'add ring' message
-(``MEMIF_MSG_TYPE_ADD_RING``) for every initialized ring. Master again responds to
-each message with 'ack' message. To finalize the connection, slave interface
+sent. Client interface sends 'add region' message (``MEMIF_MSG_TYPE_ADD_REGION``) for
+every region allocated. Server responds to each of these messages with 'ack'
+message. Same behavior applies to rings. Client sends 'add ring' message
+(``MEMIF_MSG_TYPE_ADD_RING``) for every initialized ring. Server again responds to
+each message with 'ack' message. To finalize the connection, client interface
sends 'connect' message (``MEMIF_MSG_TYPE_CONNECT``). Upon receiving this message
-master maps regions to its address space, initializes rings and responds with
+server maps regions to its address space, initializes rings and responds with
'connected' message (``MEMIF_MSG_TYPE_CONNECTED``). Disconnect
-(``MEMIF_MSG_TYPE_DISCONNECT``) can be sent by both master and slave interfaces at
+(``MEMIF_MSG_TYPE_DISCONNECT``) can be sent by both server and client interfaces at
any time, due to driver error or if the interface is being deleted.
Files
@@ -95,8 +95,8 @@ Shared memory
**Shared memory format**
-Slave is producer and master is consumer. Memory regions, are mapped shared memory files,
-created by memif slave and provided to master at connection establishment.
+Client is producer and server is consumer. Memory regions, are mapped shared memory files,
+created by memif client and provided to server at connection establishment.
Regions contain rings and buffers. Rings and buffers can also be separated into multiple
regions. For no-zero-copy, rings and buffers are stored inside single memory
region to reduce the number of opened files.
@@ -171,11 +171,11 @@ Files
- net/memif/memif.h *- descriptor and ring definitions*
- net/memif/rte_eth_memif.c *- eth_memif_rx() eth_memif_tx()*
-Zero-copy slave
+Zero-copy client
~~~~~~~~~~~~~~~
-Zero-copy slave can be enabled with memif configuration option 'zero-copy=yes'. This option
-is only relevant to slave and requires eal argument '--single-file-segments'.
+Zero-copy client can be enabled with memif configuration option 'zero-copy=yes'. This option
+is only relevant to client and requires eal argument '--single-file-segments'.
This limitation is in place, because it is too expensive to identify memseg
for each packet buffer, resulting in worse performance than with zero-copy disabled.
With single file segments we can calculate offset from the beginning of the file
@@ -183,9 +183,9 @@ for each packet buffer.
**Shared memory format**
-Region 0 is created by memif driver and contains rings. Slave interface exposes DPDK memory (memseg).
+Region 0 is created by memif driver and contains rings. Client interface exposes DPDK memory (memseg).
Instead of using memfd_create() to create new shared file, existing memsegs are used.
-Master interface functions the same as with zero-copy disabled.
+Server interface functions the same as with zero-copy disabled.
region 0:
@@ -211,24 +211,24 @@ Example: testpmd
----------------------------
In this example we run two instances of testpmd application and transmit packets over memif.
-First create ``master`` interface::
+First create ``server`` interface::
- #./build/app/testpmd -l 0-1 --proc-type=primary --file-prefix=pmd1 --vdev=net_memif,role=master -- -i
+ #./build/app/testpmd -l 0-1 --proc-type=primary --file-prefix=pmd1 --vdev=net_memif,role=server -- -i
-Now create ``slave`` interface (master must be already running so the slave will connect)::
+Now create ``client`` interface (server must be already running so the client will connect)::
#./build/app/testpmd -l 2-3 --proc-type=primary --file-prefix=pmd2 --vdev=net_memif -- -i
-You can also enable ``zero-copy`` on ``slave`` interface::
+You can also enable ``zero-copy`` on ``client`` interface::
#./build/app/testpmd -l 2-3 --proc-type=primary --file-prefix=pmd2 --vdev=net_memif,zero-copy=yes --single-file-segments -- -i
Start forwarding packets::
- Slave:
+ Client:
testpmd> start
- Master:
+ Server:
testpmd> start tx_first
Show status::
@@ -241,9 +241,9 @@ Example: testpmd and VPP
------------------------
For information on how to get and run VPP please see `<https://wiki.fd.io/view/VPP>`_.
-Start VPP in interactive mode (should be by default). Create memif master interface in VPP::
+Start VPP in interactive mode (should be by default). Create memif server interface in VPP::
- vpp# create interface memif id 0 master no-zero-copy
+ vpp# create interface memif id 0 server no-zero-copy
vpp# set interface state memif0/0 up
vpp# set interface ip address memif0/0 192.168.1.1/24
@@ -259,7 +259,7 @@ Now create memif interface by running testpmd with these command line options::
#./testpmd --vdev=net_memif,socket=/run/vpp/memif.sock -- -i
-Testpmd should now create memif slave interface and try to connect to master.
+Testpmd should now create memif client interface and try to connect to server.
In testpmd set forward option to icmpecho and start forwarding::
testpmd> set fwd icmpecho
@@ -280,7 +280,7 @@ The situation is analogous to cross connecting 2 ports of the NIC by cable.
To set the loopback, just use the same socket and id with different roles::
- #./testpmd --vdev=net_memif0,role=master,id=0 --vdev=net_memif1,role=slave,id=0 -- -i
+ #./testpmd --vdev=net_memif0,role=server,id=0 --vdev=net_memif1,role=client,id=0 -- -i
Then start the communication::
diff --git a/drivers/net/memif/memif.h b/drivers/net/memif/memif.h
index b91230890410..cb72c692ba03 100644
--- a/drivers/net/memif/memif.h
+++ b/drivers/net/memif/memif.h
@@ -12,8 +12,8 @@
#define MEMIF_NAME_SZ 32
/*
- * S2M: direction slave -> master
- * M2S: direction master -> slave
+ * C2S: direction client -> server
+ * S2C: direction server -> client
*/
/*
@@ -33,8 +33,8 @@ typedef enum memif_msg_type {
} memif_msg_type_t;
typedef enum {
- MEMIF_RING_S2M, /**< buffer ring in direction slave -> master */
- MEMIF_RING_M2S, /**< buffer ring in direction master -> slave */
+ MEMIF_RING_C2S, /**< buffer ring in direction client -> server */
+ MEMIF_RING_S2C, /**< buffer ring in direction server -> client */
} memif_ring_type_t;
typedef enum {
@@ -56,23 +56,23 @@ typedef uint8_t memif_log2_ring_size_t;
*/
/**
- * M2S
- * Contains master interfaces configuration.
+ * S2C
+ * Contains server interfaces configuration.
*/
typedef struct __rte_packed {
uint8_t name[MEMIF_NAME_SZ]; /**< Client app name. In this case DPDK version */
memif_version_t min_version; /**< lowest supported memif version */
memif_version_t max_version; /**< highest supported memif version */
memif_region_index_t max_region; /**< maximum num of regions */
- memif_ring_index_t max_m2s_ring; /**< maximum num of M2S ring */
- memif_ring_index_t max_s2m_ring; /**< maximum num of S2M rings */
+ memif_ring_index_t max_s2c_ring; /**< maximum num of S2C ring */
+ memif_ring_index_t max_c2s_ring; /**< maximum num of C2S rings */
memif_log2_ring_size_t max_log2_ring_size; /**< maximum ring size (as log2) */
} memif_msg_hello_t;
/**
- * S2M
+ * C2S
* Contains information required to identify interface
- * to which the slave wants to connect.
+ * to which the client wants to connect.
*/
typedef struct __rte_packed {
memif_version_t version; /**< memif version */
@@ -83,8 +83,8 @@ typedef struct __rte_packed {
} memif_msg_init_t;
/**
- * S2M
- * Request master to add new shared memory region to master interface.
+ * C2S
+ * Request server to add new shared memory region to server interface.
* Shared files file descriptor is passed in cmsghdr.
*/
typedef struct __rte_packed {
@@ -93,12 +93,12 @@ typedef struct __rte_packed {
} memif_msg_add_region_t;
/**
- * S2M
- * Request master to add new ring to master interface.
+ * C2S
+ * Request server to add new ring to server interface.
*/
typedef struct __rte_packed {
uint16_t flags; /**< flags */
-#define MEMIF_MSG_ADD_RING_FLAG_S2M 1 /**< ring is in S2M direction */
+#define MEMIF_MSG_ADD_RING_FLAG_C2S 1 /**< ring is in C2S direction */
memif_ring_index_t index; /**< ring index */
memif_region_index_t region; /**< region index on which this ring is located */
memif_region_offset_t offset; /**< buffer start offset */
@@ -107,23 +107,23 @@ typedef struct __rte_packed {
} memif_msg_add_ring_t;
/**
- * S2M
+ * C2S
* Finalize connection establishment.
*/
typedef struct __rte_packed {
- uint8_t if_name[MEMIF_NAME_SZ]; /**< slave interface name */
+ uint8_t if_name[MEMIF_NAME_SZ]; /**< client interface name */
} memif_msg_connect_t;
/**
- * M2S
+ * S2C
* Finalize connection establishment.
*/
typedef struct __rte_packed {
- uint8_t if_name[MEMIF_NAME_SZ]; /**< master interface name */
+ uint8_t if_name[MEMIF_NAME_SZ]; /**< server interface name */
} memif_msg_connected_t;
/**
- * S2M & M2S
+ * C2S & S2C
* Disconnect interfaces.
*/
typedef struct __rte_packed {
diff --git a/drivers/net/memif/memif_socket.c b/drivers/net/memif/memif_socket.c
index 67794cb6fa8c..b1475374910e 100644
--- a/drivers/net/memif/memif_socket.c
+++ b/drivers/net/memif/memif_socket.c
@@ -143,8 +143,8 @@ memif_msg_enq_hello(struct memif_control_channel *cc)
e->msg.type = MEMIF_MSG_TYPE_HELLO;
h->min_version = MEMIF_VERSION;
h->max_version = MEMIF_VERSION;
- h->max_s2m_ring = ETH_MEMIF_MAX_NUM_Q_PAIRS;
- h->max_m2s_ring = ETH_MEMIF_MAX_NUM_Q_PAIRS;
+ h->max_c2s_ring = ETH_MEMIF_MAX_NUM_Q_PAIRS;
+ h->max_s2c_ring = ETH_MEMIF_MAX_NUM_Q_PAIRS;
h->max_region = ETH_MEMIF_MAX_REGION_NUM - 1;
h->max_log2_ring_size = ETH_MEMIF_MAX_LOG2_RING_SIZE;
@@ -165,10 +165,10 @@ memif_msg_receive_hello(struct rte_eth_dev *dev, memif_msg_t *msg)
}
/* Set parameters for active connection */
- pmd->run.num_s2m_rings = RTE_MIN(h->max_s2m_ring + 1,
- pmd->cfg.num_s2m_rings);
- pmd->run.num_m2s_rings = RTE_MIN(h->max_m2s_ring + 1,
- pmd->cfg.num_m2s_rings);
+ pmd->run.num_c2s_rings = RTE_MIN(h->max_c2s_ring + 1,
+ pmd->cfg.num_c2s_rings);
+ pmd->run.num_s2c_rings = RTE_MIN(h->max_s2c_ring + 1,
+ pmd->cfg.num_s2c_rings);
pmd->run.log2_ring_size = RTE_MIN(h->max_log2_ring_size,
pmd->cfg.log2_ring_size);
pmd->run.pkt_buffer_size = pmd->cfg.pkt_buffer_size;
@@ -203,7 +203,7 @@ memif_msg_receive_init(struct memif_control_channel *cc, memif_msg_t *msg)
dev = elt->dev;
pmd = dev->data->dev_private;
if (((pmd->flags & ETH_MEMIF_FLAG_DISABLED) == 0) &&
- (pmd->id == i->id) && (pmd->role == MEMIF_ROLE_MASTER)) {
+ (pmd->id == i->id) && (pmd->role == MEMIF_ROLE_SERVER)) {
if (pmd->flags & (ETH_MEMIF_FLAG_CONNECTING |
ETH_MEMIF_FLAG_CONNECTED)) {
memif_msg_enq_disconnect(cc,
@@ -300,21 +300,21 @@ memif_msg_receive_add_ring(struct rte_eth_dev *dev, memif_msg_t *msg, int fd)
}
/* check if we have enough queues */
- if (ar->flags & MEMIF_MSG_ADD_RING_FLAG_S2M) {
- if (ar->index >= pmd->cfg.num_s2m_rings) {
+ if (ar->flags & MEMIF_MSG_ADD_RING_FLAG_C2S) {
+ if (ar->index >= pmd->cfg.num_c2s_rings) {
memif_msg_enq_disconnect(pmd->cc, "Invalid ring index", 0);
return -1;
}
- pmd->run.num_s2m_rings++;
+ pmd->run.num_c2s_rings++;
} else {
- if (ar->index >= pmd->cfg.num_m2s_rings) {
+ if (ar->index >= pmd->cfg.num_s2c_rings) {
memif_msg_enq_disconnect(pmd->cc, "Invalid ring index", 0);
return -1;
}
- pmd->run.num_m2s_rings++;
+ pmd->run.num_s2c_rings++;
}
- mq = (ar->flags & MEMIF_MSG_ADD_RING_FLAG_S2M) ?
+ mq = (ar->flags & MEMIF_MSG_ADD_RING_FLAG_C2S) ?
dev->data->rx_queues[ar->index] : dev->data->tx_queues[ar->index];
mq->intr_handle.fd = fd;
@@ -449,7 +449,7 @@ memif_msg_enq_add_ring(struct rte_eth_dev *dev, uint8_t idx,
return -1;
ar = &e->msg.add_ring;
- mq = (type == MEMIF_RING_S2M) ? dev->data->tx_queues[idx] :
+ mq = (type == MEMIF_RING_C2S) ? dev->data->tx_queues[idx] :
dev->data->rx_queues[idx];
e->msg.type = MEMIF_MSG_TYPE_ADD_RING;
@@ -458,7 +458,7 @@ memif_msg_enq_add_ring(struct rte_eth_dev *dev, uint8_t idx,
ar->offset = mq->ring_offset;
ar->region = mq->region;
ar->log2_ring_size = mq->log2_ring_size;
- ar->flags = (type == MEMIF_RING_S2M) ? MEMIF_MSG_ADD_RING_FLAG_S2M : 0;
+ ar->flags = (type == MEMIF_RING_C2S) ? MEMIF_MSG_ADD_RING_FLAG_C2S : 0;
ar->private_hdr_size = 0;
return 0;
@@ -575,8 +575,8 @@ memif_disconnect(struct rte_eth_dev *dev)
rte_spinlock_unlock(&pmd->cc_lock);
/* unconfig interrupts */
- for (i = 0; i < pmd->cfg.num_s2m_rings; i++) {
- if (pmd->role == MEMIF_ROLE_SLAVE) {
+ for (i = 0; i < pmd->cfg.num_c2s_rings; i++) {
+ if (pmd->role == MEMIF_ROLE_CLIENT) {
if (dev->data->tx_queues != NULL)
mq = dev->data->tx_queues[i];
else
@@ -592,8 +592,8 @@ memif_disconnect(struct rte_eth_dev *dev)
mq->intr_handle.fd = -1;
}
}
- for (i = 0; i < pmd->cfg.num_m2s_rings; i++) {
- if (pmd->role == MEMIF_ROLE_MASTER) {
+ for (i = 0; i < pmd->cfg.num_s2c_rings; i++) {
+ if (pmd->role == MEMIF_ROLE_SERVER) {
if (dev->data->tx_queues != NULL)
mq = dev->data->tx_queues[i];
else
@@ -616,7 +616,7 @@ memif_disconnect(struct rte_eth_dev *dev)
memset(&pmd->run, 0, sizeof(pmd->run));
MIF_LOG(DEBUG, "Disconnected, id: %d, role: %s.", pmd->id,
- (pmd->role == MEMIF_ROLE_MASTER) ? "master" : "slave");
+ (pmd->role == MEMIF_ROLE_SERVER) ? "server" : "client");
}
static int
@@ -694,15 +694,15 @@ memif_msg_receive(struct memif_control_channel *cc)
if (ret < 0)
goto exit;
}
- for (i = 0; i < pmd->run.num_s2m_rings; i++) {
+ for (i = 0; i < pmd->run.num_c2s_rings; i++) {
ret = memif_msg_enq_add_ring(cc->dev, i,
- MEMIF_RING_S2M);
+ MEMIF_RING_C2S);
if (ret < 0)
goto exit;
}
- for (i = 0; i < pmd->run.num_m2s_rings; i++) {
+ for (i = 0; i < pmd->run.num_s2c_rings; i++) {
ret = memif_msg_enq_add_ring(cc->dev, i,
- MEMIF_RING_M2S);
+ MEMIF_RING_S2C);
if (ret < 0)
goto exit;
}
@@ -963,7 +963,7 @@ memif_socket_init(struct rte_eth_dev *dev, const char *socket_filename)
ret = rte_hash_lookup_data(hash, key, (void **)&socket);
if (ret < 0) {
socket = memif_socket_create(key,
- (pmd->role == MEMIF_ROLE_SLAVE) ? 0 : 1);
+ (pmd->role == MEMIF_ROLE_CLIENT) ? 0 : 1);
if (socket == NULL)
return -1;
ret = rte_hash_add_key_data(hash, key, socket);
@@ -1039,7 +1039,7 @@ memif_socket_remove_device(struct rte_eth_dev *dev)
}
int
-memif_connect_master(struct rte_eth_dev *dev)
+memif_connect_server(struct rte_eth_dev *dev)
{
struct pmd_internals *pmd = dev->data->dev_private;
@@ -1050,7 +1050,7 @@ memif_connect_master(struct rte_eth_dev *dev)
}
int
-memif_connect_slave(struct rte_eth_dev *dev)
+memif_connect_client(struct rte_eth_dev *dev)
{
int sockfd;
int ret;
diff --git a/drivers/net/memif/memif_socket.h b/drivers/net/memif/memif_socket.h
index 5c49ec24ecbc..b9b8a151782f 100644
--- a/drivers/net/memif/memif_socket.h
+++ b/drivers/net/memif/memif_socket.h
@@ -60,7 +60,8 @@ void memif_disconnect(struct rte_eth_dev *dev);
* - On success, zero.
* - On failure, a negative value.
*/
-int memif_connect_master(struct rte_eth_dev *dev);
+int memif_connect_server(struct rte_eth_dev *dev);
+
/**
* If device is properly configured, send connection request.
@@ -71,7 +72,7 @@ int memif_connect_master(struct rte_eth_dev *dev);
* - On success, zero.
* - On failure, a negative value.
*/
-int memif_connect_slave(struct rte_eth_dev *dev);
+int memif_connect_client(struct rte_eth_dev *dev);
struct memif_socket_dev_list_elt {
TAILQ_ENTRY(memif_socket_dev_list_elt) next;
diff --git a/drivers/net/memif/rte_eth_memif.c b/drivers/net/memif/rte_eth_memif.c
index b6da9a8b4046..7f49a71f583d 100644
--- a/drivers/net/memif/rte_eth_memif.c
+++ b/drivers/net/memif/rte_eth_memif.c
@@ -132,7 +132,7 @@ memif_mp_request_regions(struct rte_eth_dev *dev)
struct memif_region *r;
struct pmd_process_private *proc_private = dev->process_private;
struct pmd_internals *pmd = dev->data->dev_private;
- /* in case of zero-copy slave, only request region 0 */
+ /* in case of zero-copy client, only request region 0 */
uint16_t max_region_num = (pmd->flags & ETH_MEMIF_FLAG_ZERO_COPY) ?
1 : ETH_MEMIF_MAX_REGION_NUM;
@@ -210,7 +210,7 @@ memif_get_ring(struct pmd_internals *pmd, struct pmd_process_private *proc_priva
int ring_size = sizeof(memif_ring_t) + sizeof(memif_desc_t) *
(1 << pmd->run.log2_ring_size);
- p = (uint8_t *)p + (ring_num + type * pmd->run.num_s2m_rings) * ring_size;
+ p = (uint8_t *)p + (ring_num + type * pmd->run.num_c2s_rings) * ring_size;
return (memif_ring_t *)p;
}
@@ -245,7 +245,7 @@ memif_get_buffer(struct pmd_process_private *proc_private, memif_desc_t *d)
return ((uint8_t *)proc_private->regions[d->region]->addr + d->offset);
}
-/* Free mbufs received by master */
+/* Free mbufs received by server */
static void
memif_free_stored_mbufs(struct pmd_process_private *proc_private, struct memif_queue *mq)
{
@@ -322,7 +322,7 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
ring_size = 1 << mq->log2_ring_size;
mask = ring_size - 1;
- if (type == MEMIF_RING_S2M) {
+ if (type == MEMIF_RING_C2S) {
cur_slot = mq->last_head;
last_slot = __atomic_load_n(&ring->head, __ATOMIC_ACQUIRE);
} else {
@@ -396,7 +396,7 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
}
no_free_bufs:
- if (type == MEMIF_RING_S2M) {
+ if (type == MEMIF_RING_C2S) {
__atomic_store_n(&ring->tail, cur_slot, __ATOMIC_RELEASE);
mq->last_head = cur_slot;
} else {
@@ -404,7 +404,7 @@ eth_memif_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
}
refill:
- if (type == MEMIF_RING_M2S) {
+ if (type == MEMIF_RING_S2C) {
head = __atomic_load_n(&ring->head, __ATOMIC_ACQUIRE);
n_slots = ring_size - head + mq->last_tail;
@@ -499,7 +499,7 @@ eth_memif_rx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
mq->last_tail = cur_slot;
-/* Supply master with new buffers */
+/* Supply server with new buffers */
refill:
head = ring->head;
n_slots = ring_size - head + mq->last_tail;
@@ -571,7 +571,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
n_free = __atomic_load_n(&ring->tail, __ATOMIC_ACQUIRE) - mq->last_tail;
mq->last_tail += n_free;
- if (type == MEMIF_RING_S2M) {
+ if (type == MEMIF_RING_C2S) {
slot = __atomic_load_n(&ring->head, __ATOMIC_ACQUIRE);
n_free = ring_size - slot + mq->last_tail;
} else {
@@ -586,7 +586,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
saved_slot = slot;
d0 = &ring->desc[slot & mask];
dst_off = 0;
- dst_len = (type == MEMIF_RING_S2M) ?
+ dst_len = (type == MEMIF_RING_C2S) ?
pmd->run.pkt_buffer_size : d0->length;
next_in_chain:
@@ -601,7 +601,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
d0->flags |= MEMIF_DESC_FLAG_NEXT;
d0 = &ring->desc[slot & mask];
dst_off = 0;
- dst_len = (type == MEMIF_RING_S2M) ?
+ dst_len = (type == MEMIF_RING_C2S) ?
pmd->run.pkt_buffer_size : d0->length;
d0->flags = 0;
} else {
@@ -636,7 +636,7 @@ eth_memif_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
}
no_free_slots:
- if (type == MEMIF_RING_S2M)
+ if (type == MEMIF_RING_C2S)
__atomic_store_n(&ring->head, slot, __ATOMIC_RELEASE);
else
__atomic_store_n(&ring->tail, slot, __ATOMIC_RELEASE);
@@ -666,7 +666,7 @@ memif_tx_one_zc(struct pmd_process_private *proc_private, struct memif_queue *mq
next_in_chain:
/* store pointer to mbuf to free it later */
mq->buffers[slot & mask] = mbuf;
- /* Increment refcnt to make sure the buffer is not freed before master
+ /* Increment refcnt to make sure the buffer is not freed before server
* receives it. (current segment)
*/
rte_mbuf_refcnt_update(mbuf, 1);
@@ -719,10 +719,10 @@ eth_memif_tx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
ring_size = 1 << mq->log2_ring_size;
mask = ring_size - 1;
- /* free mbufs received by master */
+ /* free mbufs received by server */
memif_free_stored_mbufs(proc_private, mq);
- /* ring type always MEMIF_RING_S2M */
+ /* ring type always MEMIF_RING_C2S */
slot = ring->head;
n_free = ring_size - ring->head + mq->last_tail;
@@ -780,7 +780,7 @@ eth_memif_tx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
no_free_slots:
rte_mb();
/* update ring pointers */
- if (type == MEMIF_RING_S2M)
+ if (type == MEMIF_RING_C2S)
ring->head = slot;
else
ring->tail = slot;
@@ -895,7 +895,7 @@ memif_region_init_shm(struct rte_eth_dev *dev, uint8_t has_buffers)
}
/* calculate buffer offset */
- r->pkt_buffer_offset = (pmd->run.num_s2m_rings + pmd->run.num_m2s_rings) *
+ r->pkt_buffer_offset = (pmd->run.num_c2s_rings + pmd->run.num_s2c_rings) *
(sizeof(memif_ring_t) + sizeof(memif_desc_t) *
(1 << pmd->run.log2_ring_size));
@@ -904,8 +904,8 @@ memif_region_init_shm(struct rte_eth_dev *dev, uint8_t has_buffers)
if (has_buffers == 1)
r->region_size += (uint32_t)(pmd->run.pkt_buffer_size *
(1 << pmd->run.log2_ring_size) *
- (pmd->run.num_s2m_rings +
- pmd->run.num_m2s_rings));
+ (pmd->run.num_c2s_rings +
+ pmd->run.num_s2c_rings));
memset(shm_name, 0, sizeof(char) * ETH_MEMIF_SHM_NAME_SIZE);
snprintf(shm_name, ETH_MEMIF_SHM_NAME_SIZE, "memif_region_%d",
@@ -990,8 +990,8 @@ memif_init_rings(struct rte_eth_dev *dev)
int i, j;
uint16_t slot;
- for (i = 0; i < pmd->run.num_s2m_rings; i++) {
- ring = memif_get_ring(pmd, proc_private, MEMIF_RING_S2M, i);
+ for (i = 0; i < pmd->run.num_c2s_rings; i++) {
+ ring = memif_get_ring(pmd, proc_private, MEMIF_RING_C2S, i);
__atomic_store_n(&ring->head, 0, __ATOMIC_RELAXED);
__atomic_store_n(&ring->tail, 0, __ATOMIC_RELAXED);
ring->cookie = MEMIF_COOKIE;
@@ -1010,8 +1010,8 @@ memif_init_rings(struct rte_eth_dev *dev)
}
}
- for (i = 0; i < pmd->run.num_m2s_rings; i++) {
- ring = memif_get_ring(pmd, proc_private, MEMIF_RING_M2S, i);
+ for (i = 0; i < pmd->run.num_s2c_rings; i++) {
+ ring = memif_get_ring(pmd, proc_private, MEMIF_RING_S2C, i);
__atomic_store_n(&ring->head, 0, __ATOMIC_RELAXED);
__atomic_store_n(&ring->tail, 0, __ATOMIC_RELAXED);
ring->cookie = MEMIF_COOKIE;
@@ -1021,7 +1021,7 @@ memif_init_rings(struct rte_eth_dev *dev)
continue;
for (j = 0; j < (1 << pmd->run.log2_ring_size); j++) {
- slot = (i + pmd->run.num_s2m_rings) *
+ slot = (i + pmd->run.num_c2s_rings) *
(1 << pmd->run.log2_ring_size) + j;
ring->desc[j].region = 0;
ring->desc[j].offset =
@@ -1032,7 +1032,7 @@ memif_init_rings(struct rte_eth_dev *dev)
}
}
-/* called only by slave */
+/* called only by client */
static int
memif_init_queues(struct rte_eth_dev *dev)
{
@@ -1040,12 +1040,12 @@ memif_init_queues(struct rte_eth_dev *dev)
struct memif_queue *mq;
int i;
- for (i = 0; i < pmd->run.num_s2m_rings; i++) {
+ for (i = 0; i < pmd->run.num_c2s_rings; i++) {
mq = dev->data->tx_queues[i];
mq->log2_ring_size = pmd->run.log2_ring_size;
/* queues located only in region 0 */
mq->region = 0;
- mq->ring_offset = memif_get_ring_offset(dev, mq, MEMIF_RING_S2M, i);
+ mq->ring_offset = memif_get_ring_offset(dev, mq, MEMIF_RING_C2S, i);
mq->last_head = 0;
mq->last_tail = 0;
mq->intr_handle.fd = eventfd(0, EFD_NONBLOCK);
@@ -1063,12 +1063,12 @@ memif_init_queues(struct rte_eth_dev *dev)
}
}
- for (i = 0; i < pmd->run.num_m2s_rings; i++) {
+ for (i = 0; i < pmd->run.num_s2c_rings; i++) {
mq = dev->data->rx_queues[i];
mq->log2_ring_size = pmd->run.log2_ring_size;
/* queues located only in region 0 */
mq->region = 0;
- mq->ring_offset = memif_get_ring_offset(dev, mq, MEMIF_RING_M2S, i);
+ mq->ring_offset = memif_get_ring_offset(dev, mq, MEMIF_RING_S2C, i);
mq->last_head = 0;
mq->last_tail = 0;
mq->intr_handle.fd = eventfd(0, EFD_NONBLOCK);
@@ -1140,8 +1140,8 @@ memif_connect(struct rte_eth_dev *dev)
}
if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
- for (i = 0; i < pmd->run.num_s2m_rings; i++) {
- mq = (pmd->role == MEMIF_ROLE_SLAVE) ?
+ for (i = 0; i < pmd->run.num_c2s_rings; i++) {
+ mq = (pmd->role == MEMIF_ROLE_CLIENT) ?
dev->data->tx_queues[i] : dev->data->rx_queues[i];
ring = memif_get_ring_from_queue(proc_private, mq);
if (ring == NULL || ring->cookie != MEMIF_COOKIE) {
@@ -1153,11 +1153,11 @@ memif_connect(struct rte_eth_dev *dev)
mq->last_head = 0;
mq->last_tail = 0;
/* enable polling mode */
- if (pmd->role == MEMIF_ROLE_MASTER)
+ if (pmd->role == MEMIF_ROLE_SERVER)
ring->flags = MEMIF_RING_FLAG_MASK_INT;
}
- for (i = 0; i < pmd->run.num_m2s_rings; i++) {
- mq = (pmd->role == MEMIF_ROLE_SLAVE) ?
+ for (i = 0; i < pmd->run.num_s2c_rings; i++) {
+ mq = (pmd->role == MEMIF_ROLE_CLIENT) ?
dev->data->rx_queues[i] : dev->data->tx_queues[i];
ring = memif_get_ring_from_queue(proc_private, mq);
if (ring == NULL || ring->cookie != MEMIF_COOKIE) {
@@ -1169,7 +1169,7 @@ memif_connect(struct rte_eth_dev *dev)
mq->last_head = 0;
mq->last_tail = 0;
/* enable polling mode */
- if (pmd->role == MEMIF_ROLE_SLAVE)
+ if (pmd->role == MEMIF_ROLE_CLIENT)
ring->flags = MEMIF_RING_FLAG_MASK_INT;
}
@@ -1188,11 +1188,11 @@ memif_dev_start(struct rte_eth_dev *dev)
int ret = 0;
switch (pmd->role) {
- case MEMIF_ROLE_SLAVE:
- ret = memif_connect_slave(dev);
+ case MEMIF_ROLE_CLIENT:
+ ret = memif_connect_client(dev);
break;
- case MEMIF_ROLE_MASTER:
- ret = memif_connect_master(dev);
+ case MEMIF_ROLE_SERVER:
+ ret = memif_connect_server(dev);
break;
default:
MIF_LOG(ERR, "Unknown role: %d.", pmd->role);
@@ -1232,17 +1232,17 @@ memif_dev_configure(struct rte_eth_dev *dev)
struct pmd_internals *pmd = dev->data->dev_private;
/*
- * SLAVE - TXQ
- * MASTER - RXQ
+ * CLIENT - TXQ
+ * SERVER - RXQ
*/
- pmd->cfg.num_s2m_rings = (pmd->role == MEMIF_ROLE_SLAVE) ?
+ pmd->cfg.num_c2s_rings = (pmd->role == MEMIF_ROLE_CLIENT) ?
dev->data->nb_tx_queues : dev->data->nb_rx_queues;
/*
- * SLAVE - RXQ
- * MASTER - TXQ
+ * CLIENT - RXQ
+ * SERVER - TXQ
*/
- pmd->cfg.num_m2s_rings = (pmd->role == MEMIF_ROLE_SLAVE) ?
+ pmd->cfg.num_s2c_rings = (pmd->role == MEMIF_ROLE_CLIENT) ?
dev->data->nb_rx_queues : dev->data->nb_tx_queues;
return 0;
@@ -1265,7 +1265,7 @@ memif_tx_queue_setup(struct rte_eth_dev *dev,
}
mq->type =
- (pmd->role == MEMIF_ROLE_SLAVE) ? MEMIF_RING_S2M : MEMIF_RING_M2S;
+ (pmd->role == MEMIF_ROLE_CLIENT) ? MEMIF_RING_C2S : MEMIF_RING_S2C;
mq->n_pkts = 0;
mq->n_bytes = 0;
mq->intr_handle.fd = -1;
@@ -1293,7 +1293,7 @@ memif_rx_queue_setup(struct rte_eth_dev *dev,
return -ENOMEM;
}
- mq->type = (pmd->role == MEMIF_ROLE_SLAVE) ? MEMIF_RING_M2S : MEMIF_RING_S2M;
+ mq->type = (pmd->role == MEMIF_ROLE_CLIENT) ? MEMIF_RING_S2C : MEMIF_RING_C2S;
mq->n_pkts = 0;
mq->n_bytes = 0;
mq->intr_handle.fd = -1;
@@ -1348,8 +1348,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
stats->opackets = 0;
stats->obytes = 0;
- tmp = (pmd->role == MEMIF_ROLE_SLAVE) ? pmd->run.num_s2m_rings :
- pmd->run.num_m2s_rings;
+ tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_c2s_rings :
+ pmd->run.num_s2c_rings;
nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp :
RTE_ETHDEV_QUEUE_STAT_CNTRS;
@@ -1362,8 +1362,8 @@ memif_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
stats->ibytes += mq->n_bytes;
}
- tmp = (pmd->role == MEMIF_ROLE_SLAVE) ? pmd->run.num_m2s_rings :
- pmd->run.num_s2m_rings;
+ tmp = (pmd->role == MEMIF_ROLE_CLIENT) ? pmd->run.num_s2c_rings :
+ pmd->run.num_c2s_rings;
nq = (tmp < RTE_ETHDEV_QUEUE_STAT_CNTRS) ? tmp :
RTE_ETHDEV_QUEUE_STAT_CNTRS;
@@ -1385,14 +1385,14 @@ memif_stats_reset(struct rte_eth_dev *dev)
int i;
struct memif_queue *mq;
- for (i = 0; i < pmd->run.num_s2m_rings; i++) {
- mq = (pmd->role == MEMIF_ROLE_SLAVE) ? dev->data->tx_queues[i] :
+ for (i = 0; i < pmd->run.num_c2s_rings; i++) {
+ mq = (pmd->role == MEMIF_ROLE_CLIENT) ? dev->data->tx_queues[i] :
dev->data->rx_queues[i];
mq->n_pkts = 0;
mq->n_bytes = 0;
}
- for (i = 0; i < pmd->run.num_m2s_rings; i++) {
- mq = (pmd->role == MEMIF_ROLE_SLAVE) ? dev->data->rx_queues[i] :
+ for (i = 0; i < pmd->run.num_s2c_rings; i++) {
+ mq = (pmd->role == MEMIF_ROLE_CLIENT) ? dev->data->rx_queues[i] :
dev->data->tx_queues[i];
mq->n_pkts = 0;
mq->n_bytes = 0;
@@ -1473,8 +1473,8 @@ memif_create(struct rte_vdev_device *vdev, enum memif_role_t role,
pmd->flags = flags;
pmd->flags |= ETH_MEMIF_FLAG_DISABLED;
pmd->role = role;
- /* Zero-copy flag irelevant to master. */
- if (pmd->role == MEMIF_ROLE_MASTER)
+ /* Zero-copy flag irelevant to server. */
+ if (pmd->role == MEMIF_ROLE_SERVER)
pmd->flags &= ~ETH_MEMIF_FLAG_ZERO_COPY;
ret = memif_socket_init(eth_dev, socket_filename);
@@ -1487,8 +1487,8 @@ memif_create(struct rte_vdev_device *vdev, enum memif_role_t role,
pmd->cfg.log2_ring_size = log2_ring_size;
/* set in .dev_configure() */
- pmd->cfg.num_s2m_rings = 0;
- pmd->cfg.num_m2s_rings = 0;
+ pmd->cfg.num_c2s_rings = 0;
+ pmd->cfg.num_s2c_rings = 0;
pmd->cfg.pkt_buffer_size = pkt_buffer_size;
rte_spinlock_init(&pmd->cc_lock);
@@ -1524,10 +1524,10 @@ memif_set_role(const char *key __rte_unused, const char *value,
{
enum memif_role_t *role = (enum memif_role_t *)extra_args;
- if (strstr(value, "master") != NULL) {
- *role = MEMIF_ROLE_MASTER;
- } else if (strstr(value, "slave") != NULL) {
- *role = MEMIF_ROLE_SLAVE;
+ if (strstr(value, "server") != NULL) {
+ *role = MEMIF_ROLE_SERVER;
+ } else if (strstr(value, "client") != NULL) {
+ *role = MEMIF_ROLE_CLIENT;
} else {
MIF_LOG(ERR, "Unknown role: %s.", value);
return -EINVAL;
@@ -1670,7 +1670,7 @@ rte_pmd_memif_probe(struct rte_vdev_device *vdev)
int ret = 0;
struct rte_kvargs *kvlist;
const char *name = rte_vdev_device_name(vdev);
- enum memif_role_t role = MEMIF_ROLE_SLAVE;
+ enum memif_role_t role = MEMIF_ROLE_CLIENT;
memif_interface_id_t id = 0;
uint16_t pkt_buffer_size = ETH_MEMIF_DEFAULT_PKT_BUFFER_SIZE;
memif_log2_ring_size_t log2_ring_size = ETH_MEMIF_DEFAULT_RING_SIZE;
@@ -1798,7 +1798,7 @@ RTE_PMD_REGISTER_VDEV(net_memif, pmd_memif_drv);
RTE_PMD_REGISTER_PARAM_STRING(net_memif,
ETH_MEMIF_ID_ARG "=<int>"
- ETH_MEMIF_ROLE_ARG "=master|slave"
+ ETH_MEMIF_ROLE_ARG "=server|client"
ETH_MEMIF_PKT_BUFFER_SIZE_ARG "=<int>"
ETH_MEMIF_RING_SIZE_ARG "=<int>"
ETH_MEMIF_SOCKET_ARG "=<string>"
diff --git a/drivers/net/memif/rte_eth_memif.h b/drivers/net/memif/rte_eth_memif.h
index 6f45b7072c69..d45dfdd172b7 100644
--- a/drivers/net/memif/rte_eth_memif.h
+++ b/drivers/net/memif/rte_eth_memif.h
@@ -36,8 +36,8 @@ extern int memif_logtype;
"%s(): " fmt "\n", __func__, ##args)
enum memif_role_t {
- MEMIF_ROLE_MASTER,
- MEMIF_ROLE_SLAVE,
+ MEMIF_ROLE_SERVER,
+ MEMIF_ROLE_CLIENT,
};
struct memif_region {
@@ -64,8 +64,8 @@ struct memif_queue {
uint16_t last_tail; /**< last ring tail */
struct rte_mbuf **buffers;
- /**< Stored mbufs. Used in zero-copy tx. Slave stores transmitted
- * mbufs to free them once master has received them.
+ /**< Stored mbufs. Used in zero-copy tx. Client stores transmitted
+ * mbufs to free them once server has received them.
*/
/* rx/tx info */
@@ -102,15 +102,15 @@ struct pmd_internals {
struct {
memif_log2_ring_size_t log2_ring_size; /**< log2 of ring size */
- uint8_t num_s2m_rings; /**< number of slave to master rings */
- uint8_t num_m2s_rings; /**< number of master to slave rings */
+ uint8_t num_c2s_rings; /**< number of client to server rings */
+ uint8_t num_s2c_rings; /**< number of server to client rings */
uint16_t pkt_buffer_size; /**< buffer size */
} cfg; /**< Configured parameters (max values) */
struct {
memif_log2_ring_size_t log2_ring_size; /**< log2 of ring size */
- uint8_t num_s2m_rings; /**< number of slave to master rings */
- uint8_t num_m2s_rings; /**< number of master to slave rings */
+ uint8_t num_c2s_rings; /**< number of client to server rings */
+ uint8_t num_s2c_rings; /**< number of server to client rings */
uint16_t pkt_buffer_size; /**< buffer size */
} run;
/**< Parameters used in active connection */
@@ -137,7 +137,7 @@ void memif_free_regions(struct rte_eth_dev *dev);
/**
* Finalize connection establishment process. Map shared memory file
- * (master role), initialize ring queue, set link status up.
+ * (server role), initialize ring queue, set link status up.
*
* @param dev
* memif device
@@ -149,7 +149,7 @@ int memif_connect(struct rte_eth_dev *dev);
/**
* Create shared memory file and initialize ring queue.
- * Only called by slave when establishing connection
+ * Only called by client when establishing connection
*
* @param dev
* memif device
--
2.26.2
next prev parent reply other threads:[~2020-07-01 19:50 UTC|newest]
Thread overview: 186+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-04 21:02 [dpdk-dev] [RFC] doc: change to diverse and inclusive language Stephen Hemminger
2020-06-05 1:04 ` [dpdk-dev] [RFC] replace master/slave with primary/secondary Stephen Hemminger
2020-06-05 10:43 ` Gaëtan Rivet
2020-06-05 11:14 ` Ananyev, Konstantin
2020-06-05 16:33 ` Stephen Hemminger
2020-06-05 17:10 ` Wiles, Keith
2020-06-05 17:45 ` Stephen Hemminger
2020-06-05 19:23 ` Wiles, Keith
2020-06-05 19:53 ` Stephen Hemminger
2020-06-05 20:09 ` Wiles, Keith
2020-06-05 11:28 ` Bruce Richardson
2020-06-05 12:15 ` Gaëtan Rivet
2020-06-05 15:27 ` Stephen Hemminger
2020-06-05 7:54 ` [dpdk-dev] [RFC] doc: change to diverse and inclusive language Luca Boccassi
2020-06-05 8:35 ` Bruce Richardson
2020-06-05 21:40 ` Aaron Conole
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 00/26] Change references to master/slave to Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 01/26] eal: rename terms used for DPDK lcores Stephen Hemminger
2020-06-29 17:04 ` Bruce Richardson
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 02/26] kni: fix reference to master/slave process Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 03/26] bbdev: rename master to initial lcore Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 04/26] librte_power: change reference to rte_master_lcore Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 05/26] drivers: replace master/slave terminolgy Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 06/26] examples/distrutor: rename master to initial Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 07/26] examples/bond: replace references to master lcore Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 08/26] examples/ethtool-app: replace references to slave with worker Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 09/26] examples/ip_pipeline: replace references to master_lcore Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 10/26] examples/qos_{meter/sched}: replace references to master lcore Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 11/26] examples/l3fwd: " Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 12/26] examples/l2fwd: " Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 13/26] examples/multi_process: " Stephen Hemminger
2020-06-05 22:57 ` [dpdk-dev] [RFC v2 14/26] examples/performance-thread: replace reference " Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 15/26] examples/ptpclient: replace references " Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 16/26] examples/ipcsec-secgw: " Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 17/26] examples: replace reference " Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 18/26] app/test-pmd: change references to master/slave Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 19/26] test-eventdev: replace references to slave with worker lcores Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 20/26] app/test: repalce refernces to master/slave Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 21/26] doc: fix incorrect reference to master process Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 22/26] doc: update references to master/slave lcore in samples Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 23/26] doc: replace master lcore terminology Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 24/26] app/pdump: replace references to master/slave lcore Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 25/26] app/test-XXX: replace reference to master/slave Stephen Hemminger
2020-06-05 22:58 ` [dpdk-dev] [RFC v2 26/26] eal: mark old naming as deprecated Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 00/27] Replace references to master and slave Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 01/27] eal: rename terms used for DPDK lcores Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 02/27] kni: fix reference to master/slave process Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 03/27] bbdev: rename master to initial lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 04/27] librte_power: change reference to rte_master_lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 05/27] drivers: replace master/slave terminolgy Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 06/27] examples/distrutor: rename master to initial Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 07/27] examples/bond: replace references to master lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 08/27] examples/ethtool-app: replace references to slave with worker Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 09/27] examples/ip_pipeline: replace references to master_lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 10/27] examples/qos_{meter/sched}: replace references to master lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 11/27] examples/l3fwd: " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 12/27] examples/l2fwd: " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 13/27] examples/multi_process: " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 14/27] examples/performance-thread: replace reference " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 15/27] examples/ptpclient: replace references " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 16/27] examples/ipcsec-secgw: " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 17/27] examples: replace reference " Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 18/27] app/test-pmd: change references to master/slave Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 19/27] test-eventdev: replace references to slave with worker lcores Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 20/27] app/test: replace refernces to master/slave Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 21/27] doc: fix incorrect reference to master process Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 22/27] doc: update references to master/slave lcore in documentation Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 23/27] app/pdump: replace references to master/slave lcore Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 24/27] app/test-XXX: replace reference to master/slave Stephen Hemminger
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 25/27] eal: mark old naming as deprecated Stephen Hemminger
2020-07-01 19:46 ` Stephen Hemminger [this message]
2020-07-01 19:46 ` [dpdk-dev] [PATCH v3 27/27] vhost: rename SLAVE to CLIENT Stephen Hemminger
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 00/27] Replace references to master and slave Stephen Hemminger
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 01/27] eal: rename terms used for DPDK lcores Stephen Hemminger
2020-07-17 14:07 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 02/27] kni: fix reference to master/slave process Stephen Hemminger
2020-07-13 12:23 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 03/27] bbdev: rename master to initial lcore Stephen Hemminger
2020-07-13 12:26 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 04/27] librte_power: change reference to rte_master_lcore Stephen Hemminger
2020-07-13 12:37 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 05/27] drivers: replace master/slave terminology Stephen Hemminger
2020-07-13 12:52 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 06/27] examples/distributor: rename master to initial Stephen Hemminger
2020-07-13 12:53 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 07/27] examples/bond: replace references to master lcore Stephen Hemminger
2020-07-13 12:56 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 08/27] examples/ethtool-app: replace references to slave with worker Stephen Hemminger
2020-07-13 12:59 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 09/27] examples/ip_pipeline: replace references to master_lcore Stephen Hemminger
2020-07-13 13:01 ` Burakov, Anatoly
2020-09-10 9:52 ` Dumitrescu, Cristian
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 10/27] examples/qos_{meter/sched}: replace references to master lcore Stephen Hemminger
2020-07-15 11:31 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 11/27] examples/l3fwd: " Stephen Hemminger
2020-07-15 11:46 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 12/27] examples/l2fwd: " Stephen Hemminger
2020-07-15 11:51 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 13/27] examples/multi_process: " Stephen Hemminger
2020-07-15 11:53 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 14/27] examples/performance-thread: replace reference " Stephen Hemminger
2020-07-15 12:09 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 15/27] examples/ptpclient: replace references " Stephen Hemminger
2020-07-15 12:24 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 16/27] examples/ipcsec-secgw: " Stephen Hemminger
2020-07-15 12:27 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 17/27] examples: replace reference " Stephen Hemminger
2020-07-15 12:33 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 18/27] app/test-pmd: change references to master/slave Stephen Hemminger
2020-07-15 12:39 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 19/27] test-eventdev: replace references to slave with worker lcores Stephen Hemminger
2020-07-15 12:41 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 20/27] app/test: replace refernces to master/slave Stephen Hemminger
2020-07-15 13:23 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 21/27] doc: fix incorrect reference to master process Stephen Hemminger
2020-07-15 13:24 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 22/27] doc: update references to master/slave lcore in documentation Stephen Hemminger
2020-07-17 14:01 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 23/27] app/pdump: replace references to master/slave lcore Stephen Hemminger
2020-07-15 13:25 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 24/27] app/test-XXX: replace reference to master/slave Stephen Hemminger
2020-07-17 12:56 ` Burakov, Anatoly
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 25/27] eal: mark old naming as deprecated Stephen Hemminger
2020-07-15 13:28 ` Burakov, Anatoly
2020-07-15 20:29 ` Stephen Hemminger
2020-07-16 13:41 ` Burakov, Anatoly
2020-07-16 22:04 ` Stephen Hemminger
2020-07-17 15:21 ` Burakov, Anatoly
2020-07-17 15:35 ` Dmitry Kozliuk
2020-07-17 15:43 ` Burakov, Anatoly
2020-07-17 15:44 ` Burakov, Anatoly
2020-07-18 2:22 ` Stephen Hemminger
2020-07-20 12:32 ` Burakov, Anatoly
2020-07-20 18:51 ` Stephen Hemminger
2020-07-22 9:05 ` Burakov, Anatoly
2020-07-22 10:07 ` Burakov, Anatoly
2020-07-22 13:53 ` Stephen Hemminger
2020-07-16 22:05 ` Stephen Hemminger
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 26/27] memif: replace master/slave with server/client Stephen Hemminger
2020-07-17 13:01 ` Burakov, Anatoly
2020-07-18 2:23 ` Stephen Hemminger
2020-07-01 20:23 ` [dpdk-dev] [PATCH v4 27/27] vhost: rename SLAVE to CLIENT Stephen Hemminger
2020-07-02 11:17 ` Xia, Chenbo
2020-07-03 7:36 ` Adrian Moreno
2020-07-13 11:05 ` [dpdk-dev] [PATCH v4 00/27] Replace references to master and slave Burakov, Anatoly
2020-07-13 12:33 ` Burakov, Anatoly
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 0/6] Inclusive language fixes and deprecation notices Stephen Hemminger
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 1/6] doc: announce deprecation of master lcore Stephen Hemminger
2020-07-29 9:23 ` Burakov, Anatoly
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 2/6] kni: fix reference to master/slave process Stephen Hemminger
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 3/6] doc: fix incorrect reference to master process Stephen Hemminger
2020-07-29 9:24 ` Burakov, Anatoly
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 4/6] doc: announce deprecation blacklist/whitelist Stephen Hemminger
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 5/6] rte_ethdev: change comment to rte_dev_eth_mac_addr_add Stephen Hemminger
2020-07-27 19:20 ` [dpdk-dev] [PATCH 20.08 6/6] check_maintainers: change variable names Stephen Hemminger
2020-07-28 5:16 ` [dpdk-dev] [PATCH 20.08 0/6] Inclusive language fixes and deprecation notices Stephen Hemminger
2020-07-30 0:57 ` [dpdk-dev] [PATCH v2 20.08 0/6] inclusive " Stephen Hemminger
2020-07-30 0:57 ` [dpdk-dev] [PATCH v2 20.08 1/6] doc: announce deprecation of master lcore Stephen Hemminger
2020-07-30 8:42 ` Bruce Richardson
2020-08-06 16:49 ` Thomas Monjalon
2020-08-06 17:00 ` Stephen Hemminger
2020-08-06 17:14 ` Thomas Monjalon
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 2/6] kni: fix reference to master/slave process Stephen Hemminger
2020-07-30 8:42 ` Bruce Richardson
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 3/6] doc: fix incorrect reference to master process Stephen Hemminger
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 4/6] doc: announce deprecation blacklist/whitelist Stephen Hemminger
2020-07-30 8:45 ` Bruce Richardson
2020-07-30 15:10 ` Stephen Hemminger
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 5/6] rte_ethdev: change comment to rte_dev_eth_mac_addr_add Stephen Hemminger
2020-08-06 16:53 ` Thomas Monjalon
2020-07-30 0:58 ` [dpdk-dev] [PATCH v2 20.08 6/6] check_maintainers: change variable names Stephen Hemminger
2020-08-06 16:55 ` Thomas Monjalon
2020-08-06 16:56 ` [dpdk-dev] [PATCH v2 20.08 0/6] inclusive language fixes and deprecation notices Thomas Monjalon
2020-08-07 10:45 ` Mcnamara, John
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 " Stephen Hemminger
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 1/6] doc: announce deprecation of master lcore Stephen Hemminger
2020-08-07 0:10 ` Thomas Monjalon
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 2/6] kni: fix reference to master/slave process Stephen Hemminger
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 3/6] doc: fix incorrect reference to master process Stephen Hemminger
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 4/6] doc: announce deprecation blacklist/whitelist Stephen Hemminger
2020-08-07 0:15 ` Thomas Monjalon
2020-08-07 8:43 ` Gaëtan Rivet
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 5/6] rte_ethdev: change comment to rte_dev_eth_mac_addr_add Stephen Hemminger
2020-08-06 17:19 ` [dpdk-dev] [PATCH v3 20.08 6/6] check_maintainers: change variable names Stephen Hemminger
2020-08-07 10:45 ` [dpdk-dev] [PATCH v3 20.08 0/6] inclusive language fixes and deprecation notices Mcnamara, John
2020-08-07 10:56 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200701194650.10705-27-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).