From 5329e5211c447b9b823149baf76112eedfeb07fb Mon Sep 17 00:00:00 2001 From: Matias Elo Date: Wed, 15 Nov 2017 12:52:42 +0200 Subject: linux-gen: pktio: add pktio capability to pktio_entry_t Since odp_pktio_capability_t is common for all pktio implementations move it inside pktio_entry_t. Signed-off-by: Matias Elo Reviewed-by: Bill Fischofer Signed-off-by: Maxim Uvarov --- platform/linux-generic/include/odp_packet_dpdk.h | 1 - platform/linux-generic/include/odp_packet_io_internal.h | 1 + platform/linux-generic/include/odp_packet_netmap.h | 1 - platform/linux-generic/pktio/dpdk.c | 4 ++-- platform/linux-generic/pktio/netmap.c | 12 ++++++------ 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/platform/linux-generic/include/odp_packet_dpdk.h b/platform/linux-generic/include/odp_packet_dpdk.h index 7f0e28535..05f00ad34 100644 --- a/platform/linux-generic/include/odp_packet_dpdk.h +++ b/platform/linux-generic/include/odp_packet_dpdk.h @@ -60,7 +60,6 @@ typedef struct { uint8_t lockless_tx; /**< no locking for tx */ uint8_t port_id; /**< DPDK port identifier */ /* --- 34 bytes --- */ - odp_pktio_capability_t capa; /**< interface capabilities */ odp_ticketlock_t rx_lock[PKTIO_MAX_QUEUES]; /**< RX queue locks */ odp_ticketlock_t tx_lock[PKTIO_MAX_QUEUES]; /**< TX queue locks */ /** cache for storing extra RX packets */ diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h index 1a4e345f5..83c449e81 100644 --- a/platform/linux-generic/include/odp_packet_io_internal.h +++ b/platform/linux-generic/include/odp_packet_io_internal.h @@ -159,6 +159,7 @@ struct pktio_entry { odp_pool_t pool; odp_pktio_param_t param; + odp_pktio_capability_t capa; /**< Packet IO capabilities */ /* Storage for queue handles * Multi-queue support is pktio driver specific */ diff --git a/platform/linux-generic/include/odp_packet_netmap.h b/platform/linux-generic/include/odp_packet_netmap.h index a6f68d569..876c7e465 100644 --- a/platform/linux-generic/include/odp_packet_netmap.h +++ b/platform/linux-generic/include/odp_packet_netmap.h @@ -52,7 +52,6 @@ typedef struct { char nm_name[IF_NAMESIZE + 7]; /**< netmap: */ char if_name[IF_NAMESIZE]; /**< interface name used in ioctl */ odp_bool_t is_virtual; /**< nm virtual port (VALE/pipe) */ - odp_pktio_capability_t capa; /**< interface capabilities */ uint32_t num_rx_rings; /**< number of nm rx rings */ uint32_t num_tx_rings; /**< number of nm tx rings */ unsigned num_rx_desc_rings; /**< number of rx descriptor rings */ diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index e9f71257b..07671e62f 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -1122,7 +1122,7 @@ static void dpdk_init_capability(pktio_entry_t *pktio_entry, struct rte_eth_dev_info *dev_info) { pkt_dpdk_t *pkt_dpdk = &pktio_entry->s.pkt_dpdk; - odp_pktio_capability_t *capa = &pkt_dpdk->capa; + odp_pktio_capability_t *capa = &pktio_entry->s.capa; int ptype_cnt; int ptype_l3_ipv4 = 0; int ptype_l4_tcp = 0; @@ -1545,7 +1545,7 @@ static int dpdk_promisc_mode_get(pktio_entry_t *pktio_entry) static int dpdk_capability(pktio_entry_t *pktio_entry, odp_pktio_capability_t *capa) { - *capa = pktio_entry->s.pkt_dpdk.capa; + *capa = pktio_entry->s.capa; return 0; } diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 297d54dcb..cbcf7789d 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -267,9 +267,9 @@ static inline int netmap_wait_for_link(pktio_entry_t *pktio_entry) static void netmap_init_capability(pktio_entry_t *pktio_entry) { pkt_netmap_t *pkt_nm = &pktio_entry->s.pkt_nm; - odp_pktio_capability_t *capa = &pkt_nm->capa; + odp_pktio_capability_t *capa = &pktio_entry->s.capa; - memset(&pkt_nm->capa, 0, sizeof(odp_pktio_capability_t)); + memset(capa, 0, sizeof(odp_pktio_capability_t)); capa->max_input_queues = PKTIO_MAX_QUEUES; if (pkt_nm->num_rx_rings < PKTIO_MAX_QUEUES) @@ -395,8 +395,8 @@ static int netmap_open(odp_pktio_t id ODP_UNUSED, pktio_entry_t *pktio_entry, ODP_DBG("Unable to fetch thread ID. VALE port MAC " "addresses may not be unique.\n"); - pkt_nm->capa.max_input_queues = 1; - pkt_nm->capa.set_op.op.promisc_mode = 0; + pktio_entry->s.capa.max_input_queues = 1; + pktio_entry->s.capa.set_op.op.promisc_mode = 0; pkt_nm->mtu = buf_size; pktio_entry->s.stats_type = STATS_UNSUPPORTED; /* Set MAC address for virtual interface */ @@ -430,7 +430,7 @@ static int netmap_open(odp_pktio_t id ODP_UNUSED, pktio_entry_t *pktio_entry, /* Check if RSS is supported. If not, set 'max_input_queues' to 1. */ if (rss_conf_get_supported_fd(sockfd, netdev, &hash_proto) == 0) { ODP_DBG("RSS not supported\n"); - pkt_nm->capa.max_input_queues = 1; + pktio_entry->s.capa.max_input_queues = 1; } err = netmap_do_ioctl(pktio_entry, SIOCGIFFLAGS, 0); @@ -897,7 +897,7 @@ static int netmap_promisc_mode_get(pktio_entry_t *pktio_entry) static int netmap_capability(pktio_entry_t *pktio_entry, odp_pktio_capability_t *capa) { - *capa = pktio_entry->s.pkt_nm.capa; + *capa = pktio_entry->s.capa; return 0; } -- cgit v1.2.3