On Thu, Jan 25, 2024 at 01:53:10PM +0100, Michal Swiatkowski wrote: > Tx rule in switchdev was changed to use PF instead of additional control > plane VSI. Because of that during lag we should control it. Control > means to add and remove the default Tx rule during lag active/inactive > switching. > > It can be done the same way as default Rx rule.
Hi Michal, Can I confirm that LAG TX/RX works both before and after this patch? > > Reviewed-by: Wojciech Drewek <wojciech.dre...@intel.com> > Reviewed-by: Marcin Szycik <marcin.szy...@linux.intel.com> > Signed-off-by: Michal Swiatkowski <michal.swiatkow...@linux.intel.com> > --- > drivers/net/ethernet/intel/ice/ice_lag.c | 39 ++++++++++++++++++------ > drivers/net/ethernet/intel/ice/ice_lag.h | 3 +- > 2 files changed, 32 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/ethernet/intel/ice/ice_lag.c > b/drivers/net/ethernet/intel/ice/ice_lag.c ... > @@ -266,9 +274,22 @@ ice_lag_cfg_dflt_fltr(struct ice_lag *lag, bool add) > { > u32 act = ICE_SINGLE_ACT_VSI_FORWARDING | > ICE_SINGLE_ACT_VALID_BIT | ICE_SINGLE_ACT_LAN_ENABLE; > + int err; > + > + err = ice_lag_cfg_fltr(lag, act, lag->pf_recipe, &lag->pf_rx_rule_id, > + ICE_FLTR_RX, add); > + if (err) > + return err; > + > + err = ice_lag_cfg_fltr(lag, act, lag->pf_recipe, &lag->pf_tx_rule_id, > + ICE_FLTR_TX, add); > + if (err) { > + ice_lag_cfg_fltr(lag, act, lag->pf_recipe, &lag->pf_rx_rule_id, > + ICE_FLTR_RX, !add); > + return err; > + } > > - return ice_lag_cfg_fltr(lag, act, lag->pf_recipe, > - &lag->pf_rule_id, add); > + return 0; > } nit: perhaps this could be more idiomatically written using a goto to unwind on error. ...