|author||Hyong Youb Kim <firstname.lastname@example.org>||2019-03-02 02:42:42 -0800|
|committer||Ferruh Yigit <email@example.com>||2019-03-08 17:52:22 +0100|
net/enic: allow flow mark ID 0
The driver currently accepts mark ID 0 but does not report it in matching packet's mbuf. For example, the following testpmd command succeeds. But, the mbuf of a matching IPv4 UDP packet does not have PKT_RX_FDIR_ID set. flow create 0 ingress pattern ... actions mark id 0 / queue index 0 / end The problem has to do with mapping mark IDs (32-bit) to NIC filter IDs. Filter ID is currently 16-bit, so values greater than 0xffff are rejected. The firmware reserves filter ID 0 for filters that do not mark (e.g. steer w/o mark). And, the driver reserves 0xffff for the flag action. This leaves 1...0xfffe for app use. It is possible to simply reject mark ID 0 as unsupported. But, 0 is commonly used (e.g. OVS-DPDK and VPP). So, when adding a filter, set filter ID = mark ID + 1 to support mark ID 0. The receive handler subtracts 1 from filter ID to get back the original mark ID. Fixes: dfbd6a9cb504 ("net/enic: extend flow director support for 1300 series") Cc: firstname.lastname@example.org Signed-off-by: Hyong Youb Kim <email@example.com> Reviewed-by: John Daley <firstname.lastname@example.org>
Diffstat (limited to 'doc')
1 files changed, 1 insertions, 0 deletions
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index bc38f51..e456e6c 100644
@@ -450,6 +450,7 @@ PKT_RX_VLAN_STRIPPED mbuf flags would not be set. This mode is enabled with the
1000 for 1300 series VICs). Filters are checked for matching in the order they
were added. Since there currently is no grouping or priority support,
'catch-all' filters should be added last.
+ - The supported range of IDs for the 'MARK' action is 0 - 0xFFFD.