diff options
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_tx_sched.c | 89 |
1 files changed, 69 insertions, 20 deletions
diff --git a/CORE/CLD_TXRX/TXRX/ol_tx_sched.c b/CORE/CLD_TXRX/TXRX/ol_tx_sched.c index 58779e43a72d..82195f7030c9 100644 --- a/CORE/CLD_TXRX/TXRX/ol_tx_sched.c +++ b/CORE/CLD_TXRX/TXRX/ol_tx_sched.c @@ -195,12 +195,13 @@ ol_tx_sched_select_batch_rr( struct ol_tx_sched_rr_t *scheduler = pdev->tx_sched.scheduler; struct ol_tx_active_queues_in_tid_t *txq_queue; struct ol_tx_frms_queue_t *next_tq; - u_int16_t frames, used_credits, tx_limit, tx_limit_flag = 0; + u_int16_t frames, used_credits = 0, tx_limit, tx_limit_flag = 0; int bytes; TX_SCHED_DEBUG_PRINT("Enter %s\n", __func__); - if (TAILQ_EMPTY(&scheduler->tx_active_tids_list)) return; + if (TAILQ_EMPTY(&scheduler->tx_active_tids_list)) + return used_credits; txq_queue = TAILQ_FIRST(&scheduler->tx_active_tids_list); @@ -212,10 +213,10 @@ ol_tx_sched_select_batch_rr( credit = OL_A_MIN(credit, TX_SCH_MAX_CREDIT_FOR_THIS_TID(next_tq)); frames = next_tq->frms; /* download as many frames as credit allows */ - tx_limit = ol_tx_bad_peer_dequeue_check(txq, category->specs.send_limit, &tx_limit_flag); + tx_limit = ol_tx_bad_peer_dequeue_check(next_tq, frames, &tx_limit_flag); frames = ol_tx_dequeue( - pdev, txq, &sctx->head, tx_limit, &credit, &bytes); - ol_tx_bad_peer_update_tx_limit(pdev, txq, frames, tx_limit_flag); + pdev, next_tq, &sctx->head, tx_limit, &credit, &bytes); + ol_tx_bad_peer_update_tx_limit(pdev, next_tq, frames, tx_limit_flag); used_credits = credit; txq_queue->frms -= frames; @@ -425,6 +426,36 @@ ol_txrx_set_wmm_param(ol_txrx_pdev_handle data_pdev, struct ol_tx_wmm_param_t wm "Dummy function when OL_TX_SCHED_RR is enabled\n"); } +/** + * ol_tx_sched_stats_display() - tx sched stats display + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_stats_display(struct ol_txrx_pdev_t *pdev) +{ +} + +/** + * ol_tx_sched_cur_state_display() - tx sched cur stat display + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_cur_state_display(struct ol_txrx_pdev_t *pdev) +{ +} + +/** + * ol_tx_sched_cur_state_display() - reset tx sched stats + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_stats_clear(struct ol_txrx_pdev_t *pdev) +{ +} + #endif /* OL_TX_SCHED == OL_TX_SCHED_RR */ /*--- advanced scheduler ----------------------------------------------------*/ @@ -1042,6 +1073,39 @@ ol_txrx_set_wmm_param(ol_txrx_pdev_handle data_pdev, struct ol_tx_wmm_param_t wm } } +/** + * ol_tx_sched_stats_display() - tx sched stats display + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_stats_display(struct ol_txrx_pdev_t *pdev) +{ + OL_TX_SCHED_WRR_ADV_CAT_STAT_DUMP(pdev->tx_sched.scheduler); +} + +/** + * ol_tx_sched_cur_state_display() - tx sched cur stat display + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_cur_state_display(struct ol_txrx_pdev_t *pdev) +{ + OL_TX_SCHED_WRR_ADV_CAT_CUR_STATE_DUMP(pdev->tx_sched.scheduler); +} + +/** + * ol_tx_sched_cur_state_display() - reset tx sched stats + * @pdev: Pointer to the PDEV structure. + * + * Return: none. + */ +void ol_tx_sched_stats_clear(struct ol_txrx_pdev_t *pdev) +{ + OL_TX_SCHED_WRR_ADV_CAT_STAT_CLEAR(pdev->tx_sched.scheduler); +} + #endif /* OL_TX_SCHED == OL_TX_SCHED_WRR_ADV */ /*--- congestion control discard --------------------------------------------*/ @@ -1413,19 +1477,4 @@ ol_tx_sched_log(struct ol_txrx_pdev_t *pdev) #endif /* defined(DEBUG_HL_LOGGING) */ -void ol_tx_sched_stats_display(struct ol_txrx_pdev_t *pdev) -{ - OL_TX_SCHED_WRR_ADV_CAT_STAT_DUMP(pdev->tx_sched.scheduler); -} - -void ol_tx_sched_cur_state_display(struct ol_txrx_pdev_t *pdev) -{ - OL_TX_SCHED_WRR_ADV_CAT_CUR_STATE_DUMP(pdev->tx_sched.scheduler); -} - -void ol_tx_sched_stats_clear(struct ol_txrx_pdev_t *pdev) -{ - OL_TX_SCHED_WRR_ADV_CAT_STAT_CLEAR(pdev->tx_sched.scheduler); -} - #endif /* defined(CONFIG_HL_SUPPORT) */ |
