Hi, > -----Original Message----- > From: Dariusz Sosnowski <dsosnow...@nvidia.com> > Sent: Monday, November 7, 2022 12:29 PM > To: Matan Azrad <ma...@nvidia.com>; Slava Ovsiienko > <viachesl...@nvidia.com> > Cc: dev@dpdk.org; Raslan Darawsheh <rasl...@nvidia.com>; > sta...@dpdk.org > Subject: [PATCH] net/mlx5: fix hairpin split with set VLAN VID action > > Before this patch any flow rule which works on hairpin queues and which has > OF_SET_VLAN_VID action was split into 2 flow rules: > > - one subflow for Rx, > - one subflow for Tx. > > OF_SET_VLAN_VID action was always placed in the Tx subflow. > > Assuming a flow rule which matches VLAN traffic and has both > OF_SET_VLAN_VID action, and MODIFY_FIELD action on VLAN VID, but no > OF_PUSH_VLAN action, the following happened: > > - MODIFY_FIELD action was placed in Rx subflow, > - OF_SET_VLAN_VID action was placed in Tx subflow, > - OF_SET_VLAN_VID action is internally compiled to a header modify > command. > > This caused the following issues: > > 1. Since OF_SET_VLAN_VID was placed in Tx subflow, 2 header modify > actions were allocated. One for Rx and one for Tx. > 2. If OF_SET_VLAN_VID action was placed before MODIFY_FIELD on VLAN > VID, > the flow rule executed header modifications in reverse order. > MODIFY_FIELD actions were executed first in the Rx subflow and > OF_SET_VLAN_VID was executed second in Tx subflow. > > This patch fixes this behavior by not splitting hairpin flow rules if > OF_SET_VLAN_VID action is used without OF_PUSH_VLAN. > On top of that, if flow rule is split, the OF_SET_VLAN_VID action is not moved > to Tx subflow (for flow rules mentioned above). > > Fixes: 210008309b45 ("net/mlx5: fix VLAN push action on hairpin queue") > Cc: sta...@dpdk.org > > Signed-off-by: Dariusz Sosnowski <dsosnow...@nvidia.com> > Acked-by: Viacheslav Ovsiienko <viachesl...@nvidia.com>
Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh