git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
crypto/octeontx: add global resource init
[dpdk.git]
/
examples
/
rxtx_callbacks
/
main.c
diff --git
a/examples/rxtx_callbacks/main.c
b/examples/rxtx_callbacks/main.c
index
35b9b0c
..
2058be6
100644
(file)
--- a/
examples/rxtx_callbacks/main.c
+++ b/
examples/rxtx_callbacks/main.c
@@
-10,19
+10,19
@@
#include <rte_lcore.h>
#include <rte_mbuf.h>
#include <rte_lcore.h>
#include <rte_mbuf.h>
-#define RX_RING_SIZE 1
28
-#define TX_RING_SIZE
512
+#define RX_RING_SIZE 1
024
+#define TX_RING_SIZE
1024
#define NUM_MBUFS 8191
#define MBUF_CACHE_SIZE 250
#define BURST_SIZE 32
static const struct rte_eth_conf port_conf_default = {
#define NUM_MBUFS 8191
#define MBUF_CACHE_SIZE 250
#define BURST_SIZE 32
static const struct rte_eth_conf port_conf_default = {
- .rxmode = { .max_rx_pkt_len = ETHER_MAX_LEN, },
+ .rxmode = {
+ .max_rx_pkt_len = ETHER_MAX_LEN,
+ },
};
};
-static unsigned nb_ports;
-
static struct {
uint64_t total_cycles;
uint64_t total_pkts;
static struct {
uint64_t total_cycles;
uint64_t total_pkts;
@@
-76,10
+76,17
@@
port_init(uint16_t port, struct rte_mempool *mbuf_pool)
uint16_t nb_txd = TX_RING_SIZE;
int retval;
uint16_t q;
uint16_t nb_txd = TX_RING_SIZE;
int retval;
uint16_t q;
+ struct rte_eth_dev_info dev_info;
+ struct rte_eth_txconf txconf;
- if (
port >= rte_eth_dev_count(
))
+ if (
!rte_eth_dev_is_valid_port(port
))
return -1;
return -1;
+ rte_eth_dev_info_get(port, &dev_info);
+ if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
+ port_conf.txmode.offloads |=
+ DEV_TX_OFFLOAD_MBUF_FAST_FREE;
+
retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);
if (retval != 0)
return retval;
retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);
if (retval != 0)
return retval;
@@
-95,9
+102,11
@@
port_init(uint16_t port, struct rte_mempool *mbuf_pool)
return retval;
}
return retval;
}
+ txconf = dev_info.default_txconf;
+ txconf.offloads = port_conf.txmode.offloads;
for (q = 0; q < tx_rings; q++) {
retval = rte_eth_tx_queue_setup(port, q, nb_txd,
for (q = 0; q < tx_rings; q++) {
retval = rte_eth_tx_queue_setup(port, q, nb_txd,
- rte_eth_dev_socket_id(port),
NULL
);
+ rte_eth_dev_socket_id(port),
&txconf
);
if (retval < 0)
return retval;
}
if (retval < 0)
return retval;
}
@@
-132,7
+141,7
@@
lcore_main(void)
{
uint16_t port;
{
uint16_t port;
-
for (port = 0; port < nb_ports; port++
)
+
RTE_ETH_FOREACH_DEV(port
)
if (rte_eth_dev_socket_id(port) > 0 &&
rte_eth_dev_socket_id(port) !=
(int)rte_socket_id())
if (rte_eth_dev_socket_id(port) > 0 &&
rte_eth_dev_socket_id(port) !=
(int)rte_socket_id())
@@
-143,7
+152,7
@@
lcore_main(void)
printf("\nCore %u forwarding packets. [Ctrl+C to quit]\n",
rte_lcore_id());
for (;;) {
printf("\nCore %u forwarding packets. [Ctrl+C to quit]\n",
rte_lcore_id());
for (;;) {
-
for (port = 0; port < nb_ports; port++
) {
+
RTE_ETH_FOREACH_DEV(port
) {
struct rte_mbuf *bufs[BURST_SIZE];
const uint16_t nb_rx = rte_eth_rx_burst(port, 0,
bufs, BURST_SIZE);
struct rte_mbuf *bufs[BURST_SIZE];
const uint16_t nb_rx = rte_eth_rx_burst(port, 0,
bufs, BURST_SIZE);
@@
-166,6
+175,7
@@
int
main(int argc, char *argv[])
{
struct rte_mempool *mbuf_pool;
main(int argc, char *argv[])
{
struct rte_mempool *mbuf_pool;
+ uint16_t nb_ports;
uint16_t portid;
/* init EAL */
uint16_t portid;
/* init EAL */
@@
-176,7
+186,7
@@
main(int argc, char *argv[])
argc -= ret;
argv += ret;
argc -= ret;
argv += ret;
- nb_ports = rte_eth_dev_count();
+ nb_ports = rte_eth_dev_count
_avail
();
if (nb_ports < 2 || (nb_ports & 1))
rte_exit(EXIT_FAILURE, "Error: number of ports must be even\n");
if (nb_ports < 2 || (nb_ports & 1))
rte_exit(EXIT_FAILURE, "Error: number of ports must be even\n");
@@
-187,7
+197,7
@@
main(int argc, char *argv[])
rte_exit(EXIT_FAILURE, "Cannot create mbuf pool\n");
/* initialize all ports */
rte_exit(EXIT_FAILURE, "Cannot create mbuf pool\n");
/* initialize all ports */
-
for (portid = 0; portid < nb_ports; portid++
)
+
RTE_ETH_FOREACH_DEV(portid
)
if (port_init(portid, mbuf_pool) != 0)
rte_exit(EXIT_FAILURE, "Cannot init port %"PRIu8"\n",
portid);
if (port_init(portid, mbuf_pool) != 0)
rte_exit(EXIT_FAILURE, "Cannot init port %"PRIu8"\n",
portid);