[dpdk-dev] [PATCH 00/22][PMD][I40E] *** Add i40e PMD support ***

Helin Zhang helin.zhang at intel.com
Wed May 21 17:29:59 CEST 2014


Summary:
The series of patches are to add i40e PMD support.
* Add new PMD driver of i40e in the folder of librte_pmd_i40e
* Add some neccessary definitions, changes in rte_mbuf.h and eth_dev
* Add new configurations for i40e
* Add or modifiy makefiles to support i40e compilation
* Add neccessary changes in ixgbe, e1000 and vmxnet3 PMD, as hash flags
  has been enlarged from 16 bits to 64 bits to support i40e
* Add neccessary changes in example applications and testpmd to use
  ETH_RSS_IP to replace all IP hash flags, as i40e introduced more
  hash flags.
* Add command in testpmd for port based vlan insertion offload testing
* Add neccessary changes in eth_dev to support configuring maximum
  packet length of less than 1518
* Add two sys files in igb_uio to support enabling/disabling
  'Extended Tag' and resetting 'Max Read Request Size', as it has
  big impacts on i40e performance
* Add neccessary changes in pci to read/write the above two sys files
  during probing PCI

Helin Zhang (22):
  i40e: add basic shared code
  i40e: add PMD source files
  i40e: add i40e support
  e1000: enlarge the hash flags of RSS to 64 bits
  ixgbe: enlarge the hash flags of RSS to 64 bits
  vmxnet3: enlarge the hash flags of RSS to 64 bits
  app/testpmd: enlarge the hash flags of RSS to 64 bits
  examples/qos_meter: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/multi_process: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/l3fwd: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/l3fwd-vf: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/l3fwd-power: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/ip_reassembly: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/dpdk_qat: use ETH_RSS_IP to replace IP hash flags of RSS
  examples/load_balancer: use ETH_RSS_IP to replace IP hash flags of RSS
  app/test-pmd: tell the driver the correct packet type to support    
    i40e TX checksum offload
  app/test-pmd: support displaying i40e 32 bytes RX descriptor
  app/test-pmd: support setting port based VLAN ID offloading
  igb_uio: add sys files to read/write specific bits in pci config space
  pci: support reading/writing sys files of 'extended_tag' and    
    'max_read_request_size'
  config: add configurations for enabling 'Extended Tag' or    
    resetting 'Max Read Request Size'
  ethdev: support setting maximum packet length to less than 1518

 app/test-pmd/cmdline.c                          |    65 +-
 app/test-pmd/config.c                           |    45 +-
 app/test-pmd/csumonly.c                         |     2 +
 app/test-pmd/parameters.c                       |     5 +-
 app/test-pmd/testpmd.c                          |     2 +-
 app/test-pmd/testpmd.h                          |     4 +-
 config/defconfig_i686-default-linuxapp-gcc      |    30 +
 config/defconfig_i686-default-linuxapp-icc      |    30 +
 config/defconfig_x86_64-default-bsdapp-gcc      |    15 +
 config/defconfig_x86_64-default-linuxapp-gcc    |    30 +
 config/defconfig_x86_64-default-linuxapp-icc    |    30 +
 examples/dpdk_qat/main.c                        |     2 +-
 examples/ip_reassembly/main.c                   |     2 +-
 examples/l3fwd-power/main.c                     |     2 +-
 examples/l3fwd-vf/main.c                        |     2 +-
 examples/l3fwd/main.c                           |     2 +-
 examples/load_balancer/init.c                   |     2 +-
 examples/multi_process/symmetric_mp/main.c      |     2 +-
 examples/qos_meter/main.c                       |     2 +-
 lib/Makefile                                    |     1 +
 lib/librte_eal/common/include/rte_pci_dev_ids.h |    44 +
 lib/librte_eal/linuxapp/eal/eal_pci.c           |   101 +
 lib/librte_eal/linuxapp/igb_uio/igb_uio.c       |   107 +
 lib/librte_ether/rte_ethdev.c                   |    25 +-
 lib/librte_ether/rte_ethdev.h                   |   146 +-
 lib/librte_ether/rte_ether.h                    |    24 +
 lib/librte_mbuf/rte_mbuf.h                      |     8 +
 lib/librte_pmd_e1000/igb_rxtx.c                 |    16 +-
 lib/librte_pmd_i40e/Makefile                    |    85 +
 lib/librte_pmd_i40e/i40e/i40e_adminq.c          |  1210 ++
 lib/librte_pmd_i40e/i40e/i40e_adminq.h          |   121 +
 lib/librte_pmd_i40e/i40e/i40e_adminq_cmd.h      |  2198 ++++
 lib/librte_pmd_i40e/i40e/i40e_alloc.h           |    65 +
 lib/librte_pmd_i40e/i40e/i40e_common.c          |  5176 ++++++++
 lib/librte_pmd_i40e/i40e/i40e_dcb.c             |  1165 ++
 lib/librte_pmd_i40e/i40e/i40e_dcb.h             |   264 +
 lib/librte_pmd_i40e/i40e/i40e_diag.c            |   180 +
 lib/librte_pmd_i40e/i40e/i40e_diag.h            |    61 +
 lib/librte_pmd_i40e/i40e/i40e_hmc.c             |   388 +
 lib/librte_pmd_i40e/i40e/i40e_hmc.h             |   287 +
 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c         |  1443 ++
 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h         |   272 +
 lib/librte_pmd_i40e/i40e/i40e_nvm.c             |   487 +
 lib/librte_pmd_i40e/i40e/i40e_osdep.h           |   192 +
 lib/librte_pmd_i40e/i40e/i40e_prototype.h       |   480 +
 lib/librte_pmd_i40e/i40e/i40e_register.h        | 15210 ++++++++++++++++++++++
 lib/librte_pmd_i40e/i40e/i40e_register_int.h    |    96 +
 lib/librte_pmd_i40e/i40e/i40e_status.h          |   107 +
 lib/librte_pmd_i40e/i40e/i40e_type.h            |  1660 +++
 lib/librte_pmd_i40e/i40e/i40e_virtchnl.h        |   385 +
 lib/librte_pmd_i40e/i40e_ethdev.c               |  3961 ++++++
 lib/librte_pmd_i40e/i40e_ethdev.h               |   349 +
 lib/librte_pmd_i40e/i40e_ethdev_vf.c            |  1286 ++
 lib/librte_pmd_i40e/i40e_logs.h                 |    74 +
 lib/librte_pmd_i40e/i40e_pf.c                   |   902 ++
 lib/librte_pmd_i40e/i40e_pf.h                   |    67 +
 lib/librte_pmd_i40e/i40e_rxtx.c                 |  2217 ++++
 lib/librte_pmd_i40e/i40e_rxtx.h                 |   187 +
 lib/librte_pmd_ixgbe/ixgbe_rxtx.c               |    16 +-
 lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c           |    16 +-
 mk/rte.app.mk                                   |     4 +
 61 files changed, 41311 insertions(+), 46 deletions(-)
 create mode 100644 lib/librte_pmd_i40e/Makefile
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_adminq.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_adminq.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_adminq_cmd.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_alloc.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_common.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_dcb.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_dcb.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_diag.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_diag.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_hmc.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_hmc.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_lan_hmc.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_nvm.c
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_osdep.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_prototype.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_register.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_register_int.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_status.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_type.h
 create mode 100644 lib/librte_pmd_i40e/i40e/i40e_virtchnl.h
 create mode 100644 lib/librte_pmd_i40e/i40e_ethdev.c
 create mode 100644 lib/librte_pmd_i40e/i40e_ethdev.h
 create mode 100644 lib/librte_pmd_i40e/i40e_ethdev_vf.c
 create mode 100644 lib/librte_pmd_i40e/i40e_logs.h
 create mode 100644 lib/librte_pmd_i40e/i40e_pf.c
 create mode 100644 lib/librte_pmd_i40e/i40e_pf.h
 create mode 100644 lib/librte_pmd_i40e/i40e_rxtx.c
 create mode 100644 lib/librte_pmd_i40e/i40e_rxtx.h

-- 
1.8.1.4



More information about the dev mailing list