src/dpdk/drivers/net/ice/base/ice_sched.c
static enum ice_status
ice_sched_replay_vsi_agg(struct ice_hw *hw, u16 vsi_handle)
{
	ice_declare_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	struct ice_sched_agg_vsi_info *agg_vsi_info;
	struct ice_port_info *pi = hw->port_info;
	struct ice_sched_agg_info *agg_info;
	enum ice_status status;

	ice_zero_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	if (!ice_is_vsi_valid(hw, vsi_handle))
		return ICE_ERR_PARAM;
	agg_info = ice_get_vsi_agg_info(hw, vsi_handle);
	if (!agg_info)
		return ICE_SUCCESS; /* Not present in list - default Agg case */
	agg_vsi_info = ice_get_agg_vsi_info(agg_info, vsi_handle);
	if (!agg_vsi_info)
		return ICE_SUCCESS; /* Not present in list - default Agg case */
	ice_sched_get_ena_tc_bitmap(pi, agg_info->replay_tc_bitmap,
				    replay_bitmap);
	/* Replay aggregator node associated to vsi_handle */
	status = ice_sched_cfg_agg(hw->port_info, agg_info->agg_id,
				   ICE_AGG_TYPE_AGG, replay_bitmap);
	if (status)
		return status;
	/* Replay aggregator node BW (restore aggregator BW) */
	status = ice_sched_replay_agg_bw(hw, agg_info);
	if (status)
		return status;

	ice_zero_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	ice_sched_get_ena_tc_bitmap(pi, agg_vsi_info->replay_tc_bitmap,
				    replay_bitmap);
	/* Move this VSI (vsi_handle) to above aggregator */
	status = ice_sched_assoc_vsi_to_agg(pi, agg_info->agg_id, vsi_handle,
					    replay_bitmap);
	if (status)
		return status;
	/* Replay VSI BW (restore VSI BW) */
	return ice_sched_replay_vsi_bw(hw, vsi_handle,
				       agg_vsi_info->tc_bitmap);
}
/**
 * ice_sched_replay_vsi_agg - replay aggregator & VSI to aggregator node(s)
 * @hw: pointer to the HW struct
 * @vsi_handle: software VSI handle
 *
 * This function replays aggregator node, VSI to aggregator type nodes, and
 * their node bandwidth information. This function needs to be called with
 * scheduler lock held.
 */
replay aggregator & VSI to aggregator node(s)
@hw: pointer to the HW struct
@vsi_handle: software VSI handle

This function replays aggregator node, VSI to aggregator type nodes, and
their node bandwidth information. This function needs to be called with
scheduler lock held.
replay aggregator & VSI to aggregator node ( s ) @hw : pointer to the HW struct @vsi_handle : software VSI handle This function replays aggregator node VSI to aggregator type nodes and their node bandwidth information . This function needs to be called with scheduler lock held .
static enum ice_status
ice_sched_replay_vsi_agg(struct ice_hw *hw, u16 vsi_handle)
{
	ice_declare_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	struct ice_sched_agg_vsi_info *agg_vsi_info;
	struct ice_port_info *pi = hw->port_info;
	struct ice_sched_agg_info *agg_info;
	enum ice_status status;
	ice_zero_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	if (!ice_is_vsi_valid(hw, vsi_handle))
		return ICE_ERR_PARAM;
	agg_info = ice_get_vsi_agg_info(hw, vsi_handle);
	if (!agg_info)
		return ICE_SUCCESS; 
	agg_vsi_info = ice_get_agg_vsi_info(agg_info, vsi_handle);
	if (!agg_vsi_info)
		return ICE_SUCCESS; 
	ice_sched_get_ena_tc_bitmap(pi, agg_info->replay_tc_bitmap,
				    replay_bitmap);
	status = ice_sched_cfg_agg(hw->port_info, agg_info->agg_id,
				   ICE_AGG_TYPE_AGG, replay_bitmap);
	if (status)
		return status;
	status = ice_sched_replay_agg_bw(hw, agg_info);
	if (status)
		return status;
	ice_zero_bitmap(replay_bitmap, ICE_MAX_TRAFFIC_CLASS);
	ice_sched_get_ena_tc_bitmap(pi, agg_vsi_info->replay_tc_bitmap,
				    replay_bitmap);
	status = ice_sched_assoc_vsi_to_agg(pi, agg_info->agg_id, vsi_handle,
					    replay_bitmap);
	if (status)
		return status;
	return ice_sched_replay_vsi_bw(hw, vsi_handle,
				       agg_vsi_info->tc_bitmap);
}
static enum ice_status ice_sched_replay_vsi_agg ( struct ice_hw * hw , u16 vsi_handle ) { ice_declare_bitmap ( replay_bitmap , ICE_MAX_TRAFFIC_CLASS ) ; struct ice_sched_agg_vsi_info * agg_vsi_info ; struct ice_port_info * pi = hw -> port_info ; struct ice_sched_agg_info * agg_info ; enum ice_status status ; ice_zero_bitmap ( replay_bitmap , ICE_MAX_TRAFFIC_CLASS ) ; if ( ! ice_is_vsi_valid ( hw , vsi_handle ) ) return ICE_ERR_PARAM ; agg_info = ice_get_vsi_agg_info ( hw , vsi_handle ) ; if ( ! agg_info ) return ICE_SUCCESS ; agg_vsi_info = ice_get_agg_vsi_info ( agg_info , vsi_handle ) ; if ( ! agg_vsi_info ) return ICE_SUCCESS ; ice_sched_get_ena_tc_bitmap ( pi , agg_info -> replay_tc_bitmap , replay_bitmap ) ; status = ice_sched_cfg_agg ( hw -> port_info , agg_info -> agg_id , ICE_AGG_TYPE_AGG , replay_bitmap ) ; if ( status ) return status ; status = ice_sched_replay_agg_bw ( hw , agg_info ) ; if ( status ) return status ; ice_zero_bitmap ( replay_bitmap , ICE_MAX_TRAFFIC_CLASS ) ; ice_sched_get_ena_tc_bitmap ( pi , agg_vsi_info -> replay_tc_bitmap , replay_bitmap ) ; status = ice_sched_assoc_vsi_to_agg ( pi , agg_info -> agg_id , vsi_handle , replay_bitmap ) ; if ( status ) return status ; return ice_sched_replay_vsi_bw ( hw , vsi_handle , agg_vsi_info -> tc_bitmap ) ; }
ice_sched_replay_vsi_agg - replay aggregator & VSI to aggregator node(s)
 @hw: pointer to the HW struct
 @vsi_handle: software VSI handle
ice_sched_replay_vsi_agg - replay aggregator & VSI to aggregator node ( s ) @hw : pointer to the HW struct @vsi_handle : software VSI handle
/* Not present in list - default Agg case */ /* Not present in list - default Agg case */ /* Replay aggregator node associated to vsi_handle */ /* Replay aggregator node BW (restore aggregator BW) */ /* Move this VSI (vsi_handle) to above aggregator */ /* Replay VSI BW (restore VSI BW) */