diff options
author | Matias Elo <matias.elo@nokia.com> | 2022-10-31 14:36:24 +0200 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2022-11-30 10:32:09 +0200 |
commit | 5569a65116f998fa087ccaed221bd58a24ae62dc (patch) | |
tree | b6ada02c234fa7ae805d0e319f1a376f2ce4c181 /platform | |
parent | 5234e07944fa288836042b7673056f203b11c6df (diff) |
linux-gen: pktio: use ODP_PKTIN_MAX_QUEUES and ODP_PKTOUT_MAX_QUEUES
Use separate ODP_PKTIN_MAX_QUEUES and ODP_PKTOUT_MAX_QUEUES defines where
applicable.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linux-generic/include/odp_packet_io_internal.h | 5 | ||||
-rw-r--r-- | platform/linux-generic/odp_packet_io.c | 4 | ||||
-rw-r--r-- | platform/linux-generic/odp_pcapng.c | 3 | ||||
-rw-r--r-- | platform/linux-generic/odp_schedule_scalable.c | 2 | ||||
-rw-r--r-- | platform/linux-generic/pktio/dpdk.c | 19 | ||||
-rw-r--r-- | platform/linux-generic/pktio/netmap.c | 21 | ||||
-rw-r--r-- | platform/linux-generic/pktio/null.c | 4 | ||||
-rw-r--r-- | platform/linux-generic/pktio/socket_xdp.c | 8 |
8 files changed, 36 insertions, 30 deletions
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index e6373852b..73da0c2be 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -39,7 +39,6 @@ extern "C" { #include <string.h> #include <sys/select.h> -#define PKTIO_MAX_QUEUES ODP_PKTOUT_MAX_QUEUES #define PKTIO_LSO_PROFILES 16 /* Assume at least Ethernet header per each segment */ #define PKTIO_LSO_MIN_PAYLOAD_OFFSET 14 @@ -158,12 +157,12 @@ typedef struct ODP_ALIGNED_CACHE { odp_queue_t queue; odp_pktin_queue_t pktin; odp_pktin_vector_config_t vector; - } in_queue[PKTIO_MAX_QUEUES]; + } in_queue[ODP_PKTIN_MAX_QUEUES]; struct { odp_queue_t queue; odp_pktout_queue_t pktout; - } out_queue[PKTIO_MAX_QUEUES]; + } out_queue[ODP_PKTOUT_MAX_QUEUES]; } pktio_entry_t; diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c index dcea113bc..4eccbdc7d 100644 --- a/platform/linux-generic/odp_packet_io.c +++ b/platform/linux-generic/odp_packet_io.c @@ -259,7 +259,7 @@ static void init_out_queues(pktio_entry_t *entry) { int i; - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTOUT_MAX_QUEUES; i++) { entry->out_queue[i].queue = ODP_QUEUE_INVALID; entry->out_queue[i].pktout = PKTOUT_INVALID; } @@ -279,7 +279,7 @@ static void init_pktio_entry(pktio_entry_t *entry) odp_atomic_init_u64(&entry->stats_extra.out_discards, 0); odp_atomic_init_u64(&entry->tx_ts, 0); - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTIN_MAX_QUEUES; i++) { entry->in_queue[i].queue = ODP_QUEUE_INVALID; entry->in_queue[i].pktin = PKTIN_INVALID; } diff --git a/platform/linux-generic/odp_pcapng.c b/platform/linux-generic/odp_pcapng.c index b08df3fc9..4423b0483 100644 --- a/platform/linux-generic/odp_pcapng.c +++ b/platform/linux-generic/odp_pcapng.c @@ -46,6 +46,9 @@ #define INOTIFY_BUF_LEN (16 * (sizeof(struct inotify_event))) #define PCAPNG_WATCH_DIR "/var/run/odp/" +#define PKTIO_MAX_QUEUES (ODP_PKTIN_MAX_QUEUES > ODP_PKTOUT_MAX_QUEUES ? \ + ODP_PKTIN_MAX_QUEUES : ODP_PKTOUT_MAX_QUEUES) + /* pcapng: enhanced packet block file encoding */ typedef struct ODP_PACKED pcapng_section_hdr_block_s { uint32_t block_type; diff --git a/platform/linux-generic/odp_schedule_scalable.c b/platform/linux-generic/odp_schedule_scalable.c index f90189d05..172a4d336 100644 --- a/platform/linux-generic/odp_schedule_scalable.c +++ b/platform/linux-generic/odp_schedule_scalable.c @@ -716,7 +716,7 @@ static void pktio_start(int pktio_idx, _ODP_ASSERT(pktio_idx < ODP_CONFIG_PKTIO_ENTRIES); for (i = 0; i < num_in_queue; i++) { rxq = in_queue_idx[i]; - _ODP_ASSERT(rxq < PKTIO_MAX_QUEUES); + _ODP_ASSERT(rxq < ODP_PKTIN_MAX_QUEUES); __atomic_fetch_add(&global->poll_count[pktio_idx], 1, __ATOMIC_RELAXED); qentry = _odp_qentry_from_ext(odpq[i]); diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index 30e6a0e61..205cf1075 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -141,7 +141,7 @@ typedef struct ODP_ALIGNED_CACHE { /* Minimum RX burst size */ uint8_t min_rx_burst; /* Cache for storing extra RX packets */ - pkt_cache_t rx_cache[PKTIO_MAX_QUEUES]; + pkt_cache_t rx_cache[ODP_PKTIN_MAX_QUEUES]; /* --- Control path data --- */ @@ -162,14 +162,14 @@ typedef struct ODP_ALIGNED_CACHE { /* Use system call to get/set vdev promisc mode */ uint8_t vdev_sysc_promisc; /* Number of TX descriptors per queue */ - uint16_t num_tx_desc[PKTIO_MAX_QUEUES]; + uint16_t num_tx_desc[ODP_PKTOUT_MAX_QUEUES]; /* --- Locks for MT safe operations --- */ /* RX queue locks */ - odp_ticketlock_t rx_lock[PKTIO_MAX_QUEUES] ODP_ALIGNED_CACHE; + odp_ticketlock_t rx_lock[ODP_PKTIN_MAX_QUEUES] ODP_ALIGNED_CACHE; /* TX queue locks */ - odp_ticketlock_t tx_lock[PKTIO_MAX_QUEUES] ODP_ALIGNED_CACHE; + odp_ticketlock_t tx_lock[ODP_PKTOUT_MAX_QUEUES] ODP_ALIGNED_CACHE; } pkt_dpdk_t; ODP_STATIC_ASSERT(PKTIO_PRIVATE_SIZE >= sizeof(pkt_dpdk_t), @@ -1264,7 +1264,7 @@ static int dpdk_close(pktio_entry_t *pktio_entry) unsigned i, j; /* Free cache packets */ - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTIN_MAX_QUEUES; i++) { idx = pkt_dpdk->rx_cache[i].idx; for (j = 0; j < pkt_dpdk->rx_cache[i].count; j++) @@ -1572,7 +1572,7 @@ static int dpdk_init_capability(pktio_entry_t *pktio_entry, memset(capa, 0, sizeof(odp_pktio_capability_t)); capa->max_input_queues = RTE_MIN(dev_info->max_rx_queues, - PKTIO_MAX_QUEUES); + ODP_PKTIN_MAX_QUEUES); /* ixgbe devices support only 16 rx queues in RSS mode */ if (!strncmp(dev_info->driver_name, IXGBE_DRV_NAME, @@ -1581,7 +1581,7 @@ static int dpdk_init_capability(pktio_entry_t *pktio_entry, capa->max_input_queues); capa->max_output_queues = RTE_MIN(dev_info->max_tx_queues, - PKTIO_MAX_QUEUES); + ODP_PKTOUT_MAX_QUEUES); capa->min_output_queue_size = dev_info->tx_desc_lim.nb_min; capa->max_output_queue_size = dev_info->tx_desc_lim.nb_max; @@ -1845,10 +1845,11 @@ static int dpdk_open(odp_pktio_t id ODP_UNUSED, return -1; } - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTIN_MAX_QUEUES; i++) odp_ticketlock_init(&pkt_dpdk->rx_lock[i]); + + for (i = 0; i < ODP_PKTOUT_MAX_QUEUES; i++) odp_ticketlock_init(&pkt_dpdk->tx_lock[i]); - } rte_eth_stats_reset(pkt_dpdk->port_id); diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 41ded2ae1..0352e33f7 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -95,9 +95,9 @@ typedef struct { odp_bool_t lockless_rx; /**< no locking for rx */ odp_bool_t lockless_tx; /**< no locking for tx */ /** mapping of pktin queues to netmap rx descriptors */ - netmap_ring_t rx_desc_ring[PKTIO_MAX_QUEUES]; + netmap_ring_t rx_desc_ring[ODP_PKTIN_MAX_QUEUES]; /** mapping of pktout queues to netmap tx descriptors */ - netmap_ring_t tx_desc_ring[PKTIO_MAX_QUEUES]; + netmap_ring_t tx_desc_ring[ODP_PKTOUT_MAX_QUEUES]; netmap_opt_t opt; /**< options */ } pkt_netmap_t; @@ -314,13 +314,15 @@ static inline void netmap_close_descriptors(pktio_entry_t *pktio_entry) int i, j; pkt_netmap_t *pkt_nm = pkt_priv(pktio_entry); - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTIN_MAX_QUEUES; i++) { for (j = 0; j < NM_MAX_DESC; j++) { if (pkt_nm->rx_desc_ring[i].desc[j] != NULL) { nm_close(pkt_nm->rx_desc_ring[i].desc[j]); pkt_nm->rx_desc_ring[i].desc[j] = NULL; } } + } + for (i = 0; i < ODP_PKTOUT_MAX_QUEUES; i++) { for (j = 0; j < NM_MAX_DESC; j++) { if (pkt_nm->tx_desc_ring[i].desc[j] != NULL) { nm_close(pkt_nm->tx_desc_ring[i].desc[j]); @@ -422,8 +424,8 @@ static void netmap_init_capability(pktio_entry_t *pktio_entry) memset(capa, 0, sizeof(odp_pktio_capability_t)); - capa->max_input_queues = PKTIO_MAX_QUEUES; - if (pkt_nm->num_rx_rings < PKTIO_MAX_QUEUES) + capa->max_input_queues = ODP_PKTIN_MAX_QUEUES; + if (pkt_nm->num_rx_rings < ODP_PKTIN_MAX_QUEUES) capa->max_input_queues = pkt_nm->num_rx_rings; if (capa->max_input_queues > NM_MAX_DESC) { /* Have to use a single descriptor to fetch packets from all @@ -434,8 +436,8 @@ static void netmap_init_capability(pktio_entry_t *pktio_entry) NM_MAX_DESC, capa->max_input_queues); } - capa->max_output_queues = PKTIO_MAX_QUEUES; - if (pkt_nm->num_tx_rings < PKTIO_MAX_QUEUES) + capa->max_output_queues = ODP_PKTOUT_MAX_QUEUES; + if (pkt_nm->num_tx_rings < ODP_PKTOUT_MAX_QUEUES) capa->max_output_queues = pkt_nm->num_tx_rings; if (capa->max_output_queues > NM_MAX_DESC) { capa->max_output_queues = NM_MAX_DESC; @@ -578,10 +580,11 @@ static int netmap_open(odp_pktio_t id ODP_UNUSED, pktio_entry_t *pktio_entry, nm_close(desc); - for (i = 0; i < PKTIO_MAX_QUEUES; i++) { + for (i = 0; i < ODP_PKTIN_MAX_QUEUES; i++) odp_ticketlock_init(&pkt_nm->rx_desc_ring[i].lock); + + for (i = 0; i < ODP_PKTOUT_MAX_QUEUES; i++) odp_ticketlock_init(&pkt_nm->tx_desc_ring[i].lock); - } if (pkt_nm->is_virtual) { static unsigned int mac; diff --git a/platform/linux-generic/pktio/null.c b/platform/linux-generic/pktio/null.c index 0bd33f517..b067a68ec 100644 --- a/platform/linux-generic/pktio/null.c +++ b/platform/linux-generic/pktio/null.c @@ -130,8 +130,8 @@ static int null_capability(pktio_entry_t *pktio_entry ODP_UNUSED, { memset(capa, 0, sizeof(odp_pktio_capability_t)); - capa->max_input_queues = PKTIO_MAX_QUEUES; - capa->max_output_queues = PKTIO_MAX_QUEUES; + capa->max_input_queues = ODP_PKTIN_MAX_QUEUES; + capa->max_output_queues = ODP_PKTOUT_MAX_QUEUES; capa->set_op.op.promisc_mode = 0; odp_pktio_config_init(&capa->config); diff --git a/platform/linux-generic/pktio/socket_xdp.c b/platform/linux-generic/pktio/socket_xdp.c index b10fc9fce..be79ca267 100644 --- a/platform/linux-generic/pktio/socket_xdp.c +++ b/platform/linux-generic/pktio/socket_xdp.c @@ -94,7 +94,7 @@ typedef struct { } xdp_umem_info_t; typedef struct { - xdp_sock_t qs[PKTIO_MAX_QUEUES]; + xdp_sock_t qs[ODP_PKTOUT_MAX_QUEUES]; xdp_umem_info_t *umem_info; uint32_t num_q; int pktio_idx; @@ -275,7 +275,7 @@ static int sock_xdp_open(odp_pktio_t pktio, pktio_entry_t *pktio_entry, const ch priv->max_mtu = pool->seg_len; - for (int i = 0; i < PKTIO_MAX_QUEUES; ++i) { + for (int i = 0; i < ODP_PKTOUT_MAX_QUEUES; ++i) { odp_ticketlock_init(&priv->qs[i].rx_lock); odp_ticketlock_init(&priv->qs[i].tx_lock); } @@ -852,8 +852,8 @@ static int set_queue_capability(int fd, const char *devname, odp_pktio_capabilit channels.max_combined = 1U; } - max_channels = _ODP_MIN((uint32_t)PKTIO_MAX_QUEUES, channels.max_combined); - capa->max_input_queues = max_channels; + max_channels = _ODP_MIN((uint32_t)ODP_PKTOUT_MAX_QUEUES, channels.max_combined); + capa->max_input_queues = _ODP_MIN((uint32_t)ODP_PKTIN_MAX_QUEUES, max_channels); capa->max_output_queues = max_channels; return 0; |