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