numam-dpdk/app
Gregory Etelson 59f3a8acbc app/testpmd: add flex item commands
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>
2021-10-20 19:00:26 +02:00
..
pdump net: add macro to extract MAC address bytes 2021-09-07 19:08:05 +02:00
proc-info mempool: add namespace to flags 2021-10-20 10:00:16 +02:00
test ethdev: fix max Rx packet length 2021-10-18 19:20:20 +02:00
test-acl app/acl: add script to automate testing 2021-07-30 18:34:35 +02:00
test-bbdev app/bbdev: handle endianness of test data 2021-10-18 20:12:15 +02:00
test-cmdline app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
test-compress-perf app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
test-crypto-perf app/crypto-perf: support lookaside IPsec 2021-10-18 20:12:19 +02:00
test-eventdev ethdev: remove jumbo offload flag 2021-10-18 19:20:21 +02:00
test-fib app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
test-flow-perf ethdev: negotiate delivery of packet metadata from HW to PMD 2021-10-13 00:47:42 +02:00
test-pipeline app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
test-pmd app/testpmd: add flex item commands 2021-10-20 19:00:26 +02:00
test-regex app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
test-sad app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00
meson.build app/testpmd: build on Windows 2021-07-02 19:03:03 +02:00