net/mlx5: translate flex item pattern into matcher
authorViacheslav Ovsiienko <viacheslavo@nvidia.com>
Tue, 2 Nov 2021 08:53:45 +0000 (10:53 +0200)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 4 Nov 2021 21:55:40 +0000 (22:55 +0100)
commit6dac7d7ff2bf5525056f64c6a5236fef2a76f98e
tree7c0d109556068fd4967bcddd15eeb0bf309ab36f
parentb293e8e49d786e101df6ebedd36e52c38440d07b
net/mlx5: translate flex item pattern into matcher

The matcher is an steering engine entity that represents
the flow pattern to hardware to match. It order to
provide match on the flex item pattern the appropriate
matcher fields should be configured with values and masks
accordingly.

The flex item related matcher fields is an array of eight
32-bit fields to match with data captured by sample registers
of configured flex parser. One packet field, presented in
item pattern can be split between several sample registers,
and multiple fields can be combined together into single
sample register to optimize hardware resources usage
(number os sample registers is limited), depending on field
modes, widths and offsets. Actual mapping is complicated
and controlled by special translation data, built by PMD
on flex item creation.

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_flow_flex.c