ice: track q_id in representor
authorMichal Swiatkowski <michal.swiatkowski@linux.intel.com>
Tue, 24 Oct 2023 11:09:18 +0000 (13:09 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 13 Nov 2023 19:42:14 +0000 (11:42 -0800)
Previously queue index of control plane VSI used by port representor was
always id of VF. If we want to allow adding port representors for
different devices we have to track queue index in the port representor
structure.

Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Reviewed-by: Piotr Raczynski <piotr.raczynski@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Tested-by: Sujai Buvaneswaran <sujai.buvaneswaran@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_eswitch.c
drivers/net/ethernet/intel/ice/ice_repr.c
drivers/net/ethernet/intel/ice/ice_repr.h

index a862681c0f64a198e8d1cca83593ecb4b9d3729a..119185564450d198a13576f12a24794d8b2e6e5f 100644 (file)
@@ -38,7 +38,7 @@ ice_eswitch_add_vf_sp_rule(struct ice_pf *pf, struct ice_vf *vf)
        rule_info.sw_act.vsi_handle = ctrl_vsi->idx;
        rule_info.sw_act.fltr_act = ICE_FWD_TO_Q;
        rule_info.sw_act.fwd_id.q_id = hw->func_caps.common_cap.rxq_first_id +
-                                      ctrl_vsi->rxq_map[vf->vf_id];
+                                      ctrl_vsi->rxq_map[vf->repr->q_id];
        rule_info.flags_info.act |= ICE_SINGLE_ACT_LB_ENABLE;
        rule_info.flags_info.act_valid = true;
        rule_info.tun_type = ICE_SW_TUN_AND_NON_TUN;
index c686ac0935ebecbd7b80e8dce80efff527c39ee4..a2dc216c964fb4068990fb1bea035693c51f2fbd 100644 (file)
@@ -306,6 +306,7 @@ static int ice_repr_add(struct ice_vf *vf)
 
        repr->src_vsi = vsi;
        repr->vf = vf;
+       repr->q_id = vf->vf_id;
        vf->repr = repr;
        np = netdev_priv(repr->netdev);
        np->repr = repr;
index e1ee2d2c1d2de8fd3d41ea851c089663682399a3..f350273b887487e22b2bf9dc55d3673d2e7df1b3 100644 (file)
@@ -13,6 +13,7 @@ struct ice_repr {
        struct net_device *netdev;
        struct metadata_dst *dst;
        struct ice_esw_br_port *br_port;
+       int q_id;
 #ifdef CONFIG_ICE_SWITCHDEV
        /* info about slow path rule */
        struct ice_rule_query_data sp_rule;