[dpdk-dev] [PATCH 0/4] Broadcom 10G NIC Poll Mode Driver

Stephen Hemminger stephen at networkplumber.org
Sat Feb 7 16:15:23 CET 2015


Source was from FreeBSD.

changes were to make it work and lots of de-uglification.

For example, the last change was to remove custom logging and debug macros.

There are still lots of style issues with the driver, because of the amount
of
useless macro wrapping.

I don't believe in the vendor model of taking one driver with lots of
macros and pretending
it is generic across OS's.

It has been tested by our QA group as part of our vRouter product release,
which is
based on DPDK 1.6. There are no open problem reports. The performance is
less
than IXGBE but that is probably because it a a port an not optimized.



On Sat, Feb 7, 2015 at 1:15 AM, Jun Xiao <xiaojuntime at gmail.com> wrote:

> Hi Stephen,
>
> Thanks for your great work on this!
>
> Could you elaborate on a few things:
> - What's the methodology used in the driver porting?
>   e.g. what's the base source you ported from?
>   what's the major change against the base source?
> - What kind of tests have been done on Linux? any known limitations?
>
> Thanks,
> Jun
>
> On Sat, Feb 7, 2015 at 2:36 AM, Stephen Hemminger
> <stephen at networkplumber.org> wrote:
> > From: Stephen Hemminger <shemming at brocade.com>
> >
> > These are the patches to enable supporting the Broadcom
> > NetExtreme II 10G devices (show up as bnx2x on Linux).
> >
> > The driver has only been tested on Linux, there maybe issues
> > with firmware loading and PCI config access on BSD.
> >
> > Stephen Hemminger (4):
> >   pci: allow access to PCI config space
> >   bcm: add BCM pci device ids
> >   bcm: new poll mode driver
> >   bcm: enable BCM poll mode driver in config
> >
> >  config/common_linuxapp                          |    10 +
> >  lib/Makefile                                    |     1 +
> >  lib/librte_eal/common/include/rte_pci.h         |    29 +
> >  lib/librte_eal/common/include/rte_pci_dev_ids.h |    30 +
> >  lib/librte_eal/linuxapp/eal/eal_pci.c           |    15 +
> >  lib/librte_eal/linuxapp/eal/eal_pci_uio.c       |    10 +
> >  lib/librte_eal/linuxapp/eal/rte_eal_version.map |     2 +
> >  lib/librte_pmd_bcm/Makefile                     |    28 +
> >  lib/librte_pmd_bcm/bcm.c                        | 11817
> +++++++++++++++++++
> >  lib/librte_pmd_bcm/bcm.h                        |  1998 ++++
> >  lib/librte_pmd_bcm/bcm_ethdev.c                 |   544 +
> >  lib/librte_pmd_bcm/bcm_ethdev.h                 |    79 +
> >  lib/librte_pmd_bcm/bcm_logs.h                   |    51 +
> >  lib/librte_pmd_bcm/bcm_rxtx.c                   |   487 +
> >  lib/librte_pmd_bcm/bcm_rxtx.h                   |    85 +
> >  lib/librte_pmd_bcm/bcm_stats.c                  |  1619 +++
> >  lib/librte_pmd_bcm/bcm_stats.h                  |   633 +
> >  lib/librte_pmd_bcm/bcm_vfpf.c                   |   597 +
> >  lib/librte_pmd_bcm/bcm_vfpf.h                   |   315 +
> >  lib/librte_pmd_bcm/debug.c                      |   113 +
> >  lib/librte_pmd_bcm/ecore_fw_defs.h              |   423 +
> >  lib/librte_pmd_bcm/ecore_hsi.h                  |  6349 ++++++++++
> >  lib/librte_pmd_bcm/ecore_init.h                 |   842 ++
> >  lib/librte_pmd_bcm/ecore_init_ops.h             |   886 ++
> >  lib/librte_pmd_bcm/ecore_mfw_req.h              |   207 +
> >  lib/librte_pmd_bcm/ecore_reg.h                  |  3664 ++++++
> >  lib/librte_pmd_bcm/ecore_sp.c                   |  5455 +++++++++
> >  lib/librte_pmd_bcm/ecore_sp.h                   |  1796 +++
> >  lib/librte_pmd_bcm/elink.c                      | 13378
> ++++++++++++++++++++++
> >  lib/librte_pmd_bcm/elink.h                      |   610 +
> >  30 files changed, 52073 insertions(+)
> >  create mode 100644 lib/librte_pmd_bcm/Makefile
> >  create mode 100644 lib/librte_pmd_bcm/bcm.c
> >  create mode 100644 lib/librte_pmd_bcm/bcm.h
> >  create mode 100644 lib/librte_pmd_bcm/bcm_ethdev.c
> >  create mode 100644 lib/librte_pmd_bcm/bcm_ethdev.h
> >  create mode 100644 lib/librte_pmd_bcm/bcm_logs.h
> >  create mode 100644 lib/librte_pmd_bcm/bcm_rxtx.c
> >  create mode 100644 lib/librte_pmd_bcm/bcm_rxtx.h
> >  create mode 100644 lib/librte_pmd_bcm/bcm_stats.c
> >  create mode 100644 lib/librte_pmd_bcm/bcm_stats.h
> >  create mode 100644 lib/librte_pmd_bcm/bcm_vfpf.c
> >  create mode 100644 lib/librte_pmd_bcm/bcm_vfpf.h
> >  create mode 100644 lib/librte_pmd_bcm/debug.c
> >  create mode 100644 lib/librte_pmd_bcm/ecore_fw_defs.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_hsi.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_init.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_init_ops.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_mfw_req.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_reg.h
> >  create mode 100644 lib/librte_pmd_bcm/ecore_sp.c
> >  create mode 100644 lib/librte_pmd_bcm/ecore_sp.h
> >  create mode 100644 lib/librte_pmd_bcm/elink.c
> >  create mode 100644 lib/librte_pmd_bcm/elink.h
> >
> > --
> > 2.1.4
> >
>


More information about the dev mailing list