summaryrefslogtreecommitdiff
path: root/examples/vmdq
diff options
context:
space:
mode:
authorThomas Monjalon <thomas@monjalon.net>2018-04-05 17:33:21 +0200
committerThomas Monjalon <thomas@monjalon.net>2018-04-18 00:37:05 +0200
commita9dbe180222680edf8c49e86791f972549ce5be3 (patch)
tree24de43bfe7364653ede899a7e2a391a1c7bd65b9 /examples/vmdq
parent8728ccf37615904cf23fb8763895b05c9a3c6b0c (diff)
downloaddpdk-a9dbe180222680edf8c49e86791f972549ce5be3.zip
dpdk-a9dbe180222680edf8c49e86791f972549ce5be3.tar.gz
dpdk-a9dbe180222680edf8c49e86791f972549ce5be3.tar.xz
fix ethdev port id validation
Some DPDK applications wrongly assume these requirements: - no hotplug, i.e. ports are never detached - all allocated ports are available to the application Such application assume a valid port index is in the range [0..count[. There are three consequences when using such wrong design: - new ports having an index higher than the port count won't be valid - old ports being detached (RTE_ETH_DEV_UNUSED) can be valid Such mistake will be less common with growing hotplug awareness. All applications and examples inside this repository - except testpmd - must be fixed to use the function rte_eth_dev_is_valid_port. Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Diffstat (limited to 'examples/vmdq')
-rw-r--r--examples/vmdq/main.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/examples/vmdq/main.c b/examples/vmdq/main.c
index 7284524..2f3eb74 100644
--- a/examples/vmdq/main.c
+++ b/examples/vmdq/main.c
@@ -201,7 +201,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
num_pf_queues, num_pools, queues_per_pool);
printf("vmdq queue base: %d pool base %d\n",
vmdq_queue_base, vmdq_pool_base);
- if (port >= rte_eth_dev_count())
+ if (!rte_eth_dev_is_valid_port(port))
return -1;
/*
@@ -539,9 +539,9 @@ static unsigned check_ports_num(unsigned nb_ports)
}
for (portid = 0; portid < num_ports; portid++) {
- if (ports[portid] >= nb_ports) {
- printf("\nSpecified port ID(%u) exceeds max system port ID(%u)\n",
- ports[portid], (nb_ports - 1));
+ if (!rte_eth_dev_is_valid_port(ports[portid])) {
+ printf("\nSpecified port ID(%u) is not valid\n",
+ ports[portid]);
ports[portid] = INVALID_PORT_ID;
valid_num_ports--;
}