59f3a8acbc
Network port hardware is shipped with fixed number of supported network protocols. If application must work with a protocol that is not included in the port hardware by default, it can try to add the new protocol to port hardware. Flex item or flex parser is port infrastructure that allows application to add support for a custom network header and offload flows to match the header elements. Application must complete the following tasks to create a flow rule that matches custom header: 1. Create flow item object in port hardware. Application must provide custom header configuration to PMD. PMD will use that configuration to create flex item object in port hardware. 2. Create flex patterns to match. Flex pattern has a spec and a mask components, like a regular flow item. Combined together, spec and mask can target unique data sequence or a number of data sequences in the custom header. Flex patterns of the same flex item can have different lengths. Flex pattern is identified by unique handler value. 3. Create a flow rule with a flex flow item that references flow pattern. Testpmd flex CLI commands are: testpmd> flow flex_item create <port> <flex_id> <filename> testpmd> set flex_pattern <pattern_id> \ spec <spec data> mask <mask data> testpmd> set flex_pattern <pattern_id> is <spec_data> testpmd> flow create <port> ... \ / flex item is <flex_id> pattern is <pattern_id> / ... The patch works with the jansson library API. A new optional dependency on jansson library is added for testpmd. If jansson not detected the flex item functionality is disabled. Jansson development files must be present: jansson.pc, jansson.h libjansson.[a,so] Signed-off-by: Gregory Etelson <getelson@nvidia.com> Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com> |
||
---|---|---|
.. | ||
pdump | ||
proc-info | ||
test | ||
test-acl | ||
test-bbdev | ||
test-cmdline | ||
test-compress-perf | ||
test-crypto-perf | ||
test-eventdev | ||
test-fib | ||
test-flow-perf | ||
test-pipeline | ||
test-pmd | ||
test-regex | ||
test-sad | ||
meson.build |