Due to limited resources of X*710 (parser and analyzer configuration tables, number of packet classification types, number of packet types, filters configuration tables, etc.), it's impossible to simultaneously support all protocols/filters required for different parts on network. To enable protocols/filters extensions for X*710, new Admin Command for loading user defined configurations is added. PPP is a format of extend configuration for X*710, it allows user to load user defined configuration to X*710.
List of possible use cases for extended X*710 configuration using profiles could include following: Configuring Analyzer/Parser to support new protocols, e.g. - IP L2TPv3 tunneling protocol - IPSec ESP/AH protocols - MPLSoGRE, MPLSoUDP tunnels - GTP-C/GTP-U tunnels New PCTYPEs for offloading packet classification to X*710. e.g. - new IP Protocol in addition to TCP/UDP/SCTP - new TCP/UDP subtypes, like TCP SYN, TCP FIN - new PCTYPE for tunneled packets like GTP-C, GTP-U New PTYPEs for packets identification, e.g. - MAC, MPLS, IP4, UDP - MAC, MPLS, MPLS, IP6, TCP Fixes for NVM configuration, e.g. - list of enabled stat counters to improve throughput - parser/analyzer configuration for some corner cases v8 changes: Change dynamic device profile to dynamic device personalization. v7 changes: Fix one coding style problem. Add condition during ddp processing. v6 changes: Change pipeline personalization profile to dynamic device profile. v5 changes: Change parameter of rte_pmd_i40e_process_ppp_package to extend operation. Change structure rte_pmd_i40e_profile_info. v4 changes: Fix compile error with gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3). Move ppp related structures to rte_pmd_i40e.h. Not support remove PPP temporarily. v3 changes: Move ppp AQ command code to base code. Beilei Xing (6): net/i40e/base: change ppp to ddp net/i40e: add dynamic device personalization processing app/testpmd: add command for loading ddp net/i40e: add get all loaded profiles app/testpmd: add command for getting loaded profiles doc: add dynamic device personalization support for i40e app/test-pmd/cmdline.c | 164 +++++++++++++++++++++ app/test-pmd/config.c | 67 +++++++++ app/test-pmd/testpmd.h | 3 + doc/guides/rel_notes/release_17_05.rst | 4 + drivers/net/i40e/base/i40e_adminq_cmd.h | 10 +- drivers/net/i40e/base/i40e_common.c | 24 +-- drivers/net/i40e/base/i40e_prototype.h | 4 +- drivers/net/i40e/base/i40e_type.h | 28 ++-- drivers/net/i40e/i40e_ethdev.c | 235 ++++++++++++++++++++++++++++++ drivers/net/i40e/rte_pmd_i40e.h | 70 +++++++++ drivers/net/i40e/rte_pmd_i40e_version.map | 2 + 11 files changed, 578 insertions(+), 33 deletions(-) -- 2.5.5