These patches mainly support configuring hash functions. In detail, - It can get or set hash functions. - It can configure symmetric hash functions. * Get/set symmetric hash enable per port. * Get/set symmetric hash enable per 'PCTYPE'. * Get/set filter swap configurations. - 'ethdev' level interfaces are added. * 'rte_eth_dev_filter_supported', to check if a filter control is supported on a port. * 'rte_eth_dev_filter_ctrl', a common API to execute specific filter control. - Six commands have been implemented in testpmd to support testing above. * get_sym_hash_ena_per_port * set_sym_hash_ena_per_port * get_sym_hash_ena_per_pctype * set_sym_hash_ena_per_pctype * get_filter_swap * set_filter_swap * get_hash_function * set_hash_function
Note that 'PCTYPE' means 'Packet Classification Type'. v4 changes: * Fixed a bug in testpmd to support 'set_sym_hash_ena_per_port'. Helin Zhang (7): ethdev: add more annotations ethdev: add interfaces and relevant for filter control ethdev: add structures and enum for hash filter control i40e: add hash filter control implementation i40e: add hardware initialization i40e: Use constant random hash keys app/testpmd: add commands to support hash filter control app/test-pmd/cmdline.c | 566 ++++++++++++++++++++++++++++++++++++++ lib/librte_ether/Makefile | 1 + lib/librte_ether/rte_eth_ctrl.h | 154 +++++++++++ lib/librte_ether/rte_ethdev.c | 32 +++ lib/librte_ether/rte_ethdev.h | 53 +++- lib/librte_pmd_i40e/i40e_ethdev.c | 492 ++++++++++++++++++++++++++++++++- 6 files changed, 1291 insertions(+), 7 deletions(-) create mode 100644 lib/librte_ether/rte_eth_ctrl.h -- 1.8.1.4