[dpdk-dev] [PATCH v3] net/nfb: new netcope driver
Rami Rosen
ramirose at gmail.com
Tue Mar 5 21:31:57 CET 2019
Hi,
Added new net driver for Netcope nfb cards
Signed-off-by: Rastislav Cernay <cernay at netcope.com>
Reviewed-by: Rami Rosen <ramirose at gmail.com>
---
v2: remove unnecessary cast
remove unnecessary zeroing
move declaration to not mix with code
restore skeleton example
v3: add release notes
add doc to doc index
add architecture limits to doc
edit features list
add .map file
change link to dependecies to official vendor site
move declarations out of code
remove false comments (rte_errno is set)
comments to c89 style
remove log from main rx loop
remove redundant code
MAINTAINERS | 7 +
config/common_base | 4 +
devtools/test-build.sh | 1 +
doc/guides/nics/features/nfb.ini | 18 +
doc/guides/nics/index.rst | 1 +
doc/guides/nics/nfb.rst | 143 ++++++++
doc/guides/rel_notes/release_19_02.rst | 5 +
drivers/net/Makefile | 1 +
drivers/net/meson.build | 1 +
drivers/net/nfb/Makefile | 41 +++
drivers/net/nfb/meson.build | 9 +
drivers/net/nfb/nfb.h | 50 +++
drivers/net/nfb/nfb_ethdev.c | 589
++++++++++++++++++++++++++++++++
drivers/net/nfb/nfb_rx.c | 127 +++++++
drivers/net/nfb/nfb_rx.h | 213 ++++++++++++
drivers/net/nfb/nfb_rxmode.c | 100 ++++++
drivers/net/nfb/nfb_rxmode.h | 78 +++++
drivers/net/nfb/nfb_stats.c | 78 +++++
drivers/net/nfb/nfb_stats.h | 48 +++
drivers/net/nfb/nfb_tx.c | 113 ++++++
drivers/net/nfb/nfb_tx.h | 204 +++++++++++
drivers/net/nfb/rte_nfb_pmd_version.map | 4 +
mk/rte.app.mk | 1 +
23 files changed, 1836 insertions(+)
create mode 100644 doc/guides/nics/features/nfb.ini
create mode 100644 doc/guides/nics/nfb.rst
create mode 100644 drivers/net/nfb/Makefile
create mode 100644 drivers/net/nfb/meson.build
create mode 100644 drivers/net/nfb/nfb.h
create mode 100644 drivers/net/nfb/nfb_ethdev.c
create mode 100644 drivers/net/nfb/nfb_rx.c
create mode 100644 drivers/net/nfb/nfb_rx.h
create mode 100644 drivers/net/nfb/nfb_rxmode.c
create mode 100644 drivers/net/nfb/nfb_rxmode.h
create mode 100644 drivers/net/nfb/nfb_stats.c
create mode 100644 drivers/net/nfb/nfb_stats.h
create mode 100644 drivers/net/nfb/nfb_tx.c
create mode 100644 drivers/net/nfb/nfb_tx.h
create mode 100644 drivers/net/nfb/rte_nfb_pmd_version.map
Minors:
+int
+nfb_eth_rx_queue_init(struct nfb_device *nfb,
+ uint16_t rx_queue_id,
+ uint16_t port_id,
+ struct rte_mempool *mb_pool,
+ struct ndp_rx_queue *rxq)
+{
+ if (nfb == NULL)
+ return -EINVAL;
+
+ rxq->queue = ndp_open_rx_queue(nfb, rx_queue_id);
+ if (rxq->queue == NULL)
+ return -EINVAL;
+
+ rxq->nfb = nfb;
+ rxq->rx_queue_id = rx_queue_id;
+ rxq->in_port = port_id;
+ rxq->mb_pool = mb_pool;
maybe better to have the following declaration at the beginning
of the method (though not sure it will cause a compilation error
under most compilers)
+
+ const struct rte_pktmbuf_pool_private *mbp_priv =
+ rte_mempool_get_priv(mb_pool);
static __rte_always_inline uint16_t
+nfb_eth_ndp_tx(void *queue,
+ struct rte_mbuf **bufs,
+ uint16_t nb_pkts)
+{
...
...
Should be "TX invalid arguments!\n"):
+ if (unlikely(ndp->queue == NULL || nb_pkts == 0)) {
+ RTE_LOG(ERR, PMD, "RX invalid arguments!\n");
+ return 0;
+ }
+
More information about the dev
mailing list