[dpdk-dev] [PATCH v3 3/7] drivers/net/bnxt new driver for Broadcom bnxt

Stephen Hemminger stephen at networkplumber.org
Sat Mar 5 00:02:07 CET 2016


On Fri,  4 Mar 2016 13:05:24 -0800
Stephen Hurd <stephen.hurd at broadcom.com> wrote:

> New driver for Broadcom bnxt (NexXtreme C-series) devices.
> 
> Standards-compliant 10/25/50G support with 30MPPS full-duplex throughput
> http://www.broadcom.com/press/release.php?id=s923886
> 
> Signed-off-by: Stephen Hurd <stephen.hurd at broadcom.com>
> ---
> v3:
> * Fix incorrect format specifier compilation error on i686
>   (PRIx64 instead of lx for uint64_t) on line 1337
> 
>  drivers/net/bnxt/Makefile                 |   79 ++
>  drivers/net/bnxt/bnxt.h                   |  217 ++++
>  drivers/net/bnxt/bnxt_cpr.c               |  138 +++
>  drivers/net/bnxt/bnxt_cpr.h               |  117 ++
>  drivers/net/bnxt/bnxt_ethdev.c            | 1381 ++++++++++++++++++++++
>  drivers/net/bnxt/bnxt_filter.c            |  175 +++
>  drivers/net/bnxt/bnxt_filter.h            |   74 ++
>  drivers/net/bnxt/bnxt_hwrm.c              | 1554 ++++++++++++++++++++++++
>  drivers/net/bnxt/bnxt_hwrm.h              |  105 ++
>  drivers/net/bnxt/bnxt_irq.c               |  154 +++
>  drivers/net/bnxt/bnxt_irq.h               |   51 +
>  drivers/net/bnxt/bnxt_ring.c              |  306 +++++
>  drivers/net/bnxt/bnxt_ring.h              |  104 ++
>  drivers/net/bnxt/bnxt_rxq.c               |  383 ++++++
>  drivers/net/bnxt/bnxt_rxq.h               |   75 ++
>  drivers/net/bnxt/bnxt_rxr.c               |  369 ++++++
>  drivers/net/bnxt/bnxt_rxr.h               |   73 ++
>  drivers/net/bnxt/bnxt_stats.c             |  190 +++
>  drivers/net/bnxt/bnxt_stats.h             |   44 +
>  drivers/net/bnxt/bnxt_txq.c               |  164 +++
>  drivers/net/bnxt/bnxt_txq.h               |   76 ++
>  drivers/net/bnxt/bnxt_txr.c               |  326 +++++
>  drivers/net/bnxt/bnxt_txr.h               |   71 ++
>  drivers/net/bnxt/bnxt_vnic.c              |  285 +++++
>  drivers/net/bnxt/bnxt_vnic.h              |   80 ++
>  drivers/net/bnxt/hsi_struct_def_dpdk.h    | 1832 +++++++++++++++++++++++++++++
>  drivers/net/bnxt/rte_pmd_bnxt_version.map |    4 +
>  27 files changed, 8427 insertions(+)
>  create mode 100644 drivers/net/bnxt/Makefile
>  create mode 100644 drivers/net/bnxt/bnxt.h
>  create mode 100644 drivers/net/bnxt/bnxt_cpr.c
>  create mode 100644 drivers/net/bnxt/bnxt_cpr.h
>  create mode 100644 drivers/net/bnxt/bnxt_ethdev.c
>  create mode 100644 drivers/net/bnxt/bnxt_filter.c
>  create mode 100644 drivers/net/bnxt/bnxt_filter.h
>  create mode 100644 drivers/net/bnxt/bnxt_hwrm.c
>  create mode 100644 drivers/net/bnxt/bnxt_hwrm.h
>  create mode 100644 drivers/net/bnxt/bnxt_irq.c
>  create mode 100644 drivers/net/bnxt/bnxt_irq.h
>  create mode 100644 drivers/net/bnxt/bnxt_ring.c
>  create mode 100644 drivers/net/bnxt/bnxt_ring.h
>  create mode 100644 drivers/net/bnxt/bnxt_rxq.c
>  create mode 100644 drivers/net/bnxt/bnxt_rxq.h
>  create mode 100644 drivers/net/bnxt/bnxt_rxr.c
>  create mode 100644 drivers/net/bnxt/bnxt_rxr.h
>  create mode 100644 drivers/net/bnxt/bnxt_stats.c
>  create mode 100644 drivers/net/bnxt/bnxt_stats.h
>  create mode 100644 drivers/net/bnxt/bnxt_txq.c
>  create mode 100644 drivers/net/bnxt/bnxt_txq.h
>  create mode 100644 drivers/net/bnxt/bnxt_txr.c
>  create mode 100644 drivers/net/bnxt/bnxt_txr.h
>  create mode 100644 drivers/net/bnxt/bnxt_vnic.c
>  create mode 100644 drivers/net/bnxt/bnxt_vnic.h
>  create mode 100644 drivers/net/bnxt/hsi_struct_def_dpdk.h
>  create mode 100644 drivers/net/bnxt/rte_pmd_bnxt_version.map

Looks good, I just have a couple of functionality comments.

1. Driver does not appear to support Link State interrupt. Not a big
   deal, but would be good to have.

2. Driver does not support hotplug

3. Since driver does not support scattered receive, it should check
   and error out on enable_scatter (ditto for other features in rxmode).
   This will save pain in future when some application asks device to do
   something it can not do.

4. Does driver support SECONDARY process model, it appears secondary
   device will reset hardware.

5. Driver does not supper per-receive queue data interrupts.
   This is necessary for power-saving NAPI like code.




 



More information about the dev mailing list