This will finally bring consistency to the VLAN pattern item definition,
particularly when attempting to match QinQ traffic. Applications relying on
TCI and no QinQ shouldn't notice a difference.

On the other hand, applications relying on EtherType matching will have to
adapt their patterns so they match from outermost to innermost (as on the
wire) instead of the current mess (innermost, then outermost to innermost
in case of QinQ).

Signed-off-by: Adrien Mazarguil <>
 doc/guides/rel_notes/deprecation.rst | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/doc/guides/rel_notes/deprecation.rst 
index 77390ce9f..5cd337807 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -77,3 +77,8 @@ Deprecation Notices
   ``struct rte_flow_item_raw`` will be replaced by standard pointers to the
   same data. They proved difficult to use in the field (e.g. no possibility
   of static initialization) and are unsuitable for C++ applications.
+* rte_flow: VLAN pattern item (``struct rte_flow_item_vlan``) will be
+  redefined more logically with TCI followed by inner EtherType (wire order)
+  instead of outer TPID followed by TCI (with inner EtherType part of the
+  previous pattern item), as the latter results in much confusion.

Reply via email to