NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
rtt_template.c File Reference
#include <doca_pcc_dev.h>
#include <doca_pcc_dev_event.h>
#include <doca_pcc_dev_algo_access.h>
#include "utils.h"
#include "rtt_template_ctxt.h"
#include "rtt_template_algo_params.h"
#include "rtt_template.h"
Include dependency graph for rtt_template.c:

Go to the source code of this file.

Macros

#define FF32BIT   (0xffffffff)
 
#define DEC_FACTOR   ((1 << 16) - param[RTT_TEMPLATE_UPDATE_FACTOR]) /* Rate decrease factor */
 
#define CNP_DEC_FACTOR   ((1 << 16) - 2 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* CNP rate decrease factor */
 
#define NACK_DEC_FACTOR   ((1 << 16) - 5 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* NACK rate decrease factor */
 
#define ABORT_TIME   (300000) /* The time to abort rtt_req - in nanosec */
 
#define BW_MB_DEFAULT_FXP16   (BW_MB_DEFAULT << 16) /* Default BW in fixed point */
 
#define NP_RX_RATE_TH   (58982) /* Threshold to update current rate according to NP RX rate. 0.9 in 16b fixed point */
 
#define HIGH_UTIL_THRESHOLD   (55704) /* 0.85 in 16b fixed point */
 
#define HIGH_UTIL_DEC_FACTOR    ((1 << 16) - 2 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* Rate decrease factor in high port utilization mode */
 
#define HIGH_UTIL_CNP_DEC_FACTOR
 
#define HIGH_UTIL_NACK_DEC_FACTOR
 

Enumerations

enum  rtt_template_params_t {
  RTT_TEMPLATE_UPDATE_FACTOR = 0 , RTT_TEMPLATE_AI = 1 , RTT_TEMPLATE_BASE_RTT = 2 , RTT_TEMPLATE_NEW_FLOW_RATE = 3 ,
  RTT_TEMPLATE_MIN_RATE = 4 , RTT_TEMPLATE_MAX_DELAY = 5 , RTT_TEMPLATE_PARAM_NUM
}
 
enum  { RTT_TEMPLATE_COUNTER_TX_EVENT = 0 , RTT_TEMPLATE_COUNTER_RTT_EVENT = 1 , RTT_TEMPLATE_COUNTER_NUM }
 

Functions

void rtt_template_init (uint32_t algo_idx)
 
static uint32_t algorithm_core (cc_ctxt_rtt_template_t *ccctx, uint32_t rtt, uint32_t cur_rate, uint32_t *param, uint8_t is_high_util, uint32_t norm_np_rx_rate)
 
static void rtt_template_handle_roce_tx (doca_pcc_dev_event_t *event, uint32_t cur_rate, cc_ctxt_rtt_template_t *ccctx, doca_pcc_dev_results_t *results)
 
static void rtt_template_handle_roce_rtt (doca_pcc_dev_event_t *event, uint32_t cur_rate, uint32_t *param, cc_ctxt_rtt_template_t *ccctx, doca_pcc_dev_results_t *results)
 
static void rtt_template_handle_roce_cnp (doca_pcc_dev_event_t *event, uint32_t cur_rate, cc_ctxt_rtt_template_t *ccctx, doca_pcc_dev_results_t *results)
 
static void rtt_template_handle_roce_nack (doca_pcc_dev_event_t *event, uint32_t cur_rate, cc_ctxt_rtt_template_t *ccctx, doca_pcc_dev_results_t *results)
 
static void rtt_template_handle_new_flow (doca_pcc_dev_event_t *event, uint32_t cur_rate, uint32_t *param, cc_ctxt_rtt_template_t *ccctx, doca_pcc_dev_results_t *results)
 
void rtt_template_algo (doca_pcc_dev_event_t *event, uint32_t *param, uint32_t *counter, doca_pcc_dev_algo_ctxt_t *algo_ctxt, doca_pcc_dev_results_t *results)
 
doca_pcc_dev_error_t rtt_template_set_algo_params (uint32_t param_id_base, uint32_t param_num, const uint32_t *new_param_values, uint32_t *params)
 

Variables

enum { ... }  rtt_template_counter_t
 
const volatile char rtt_template_desc [] = "Rtt template v0.1"
 
static const volatile char rtt_template_param_update_factor_desc [] = "UPDATE_FACTOR, update factor"
 
static const volatile char rtt_template_param_ai_desc [] = "AI, ai"
 
static const volatile char rtt_template_param_base_rtt_desc [] = "BASE_RTT, base rtt"
 
static const volatile char rtt_template_param_new_flow_rate_desc [] = "NEW_FLOW_RATE, new flow rate"
 
static const volatile char rtt_template_param_min_rate_desc [] = "MIN_RATE, min rate"
 
static const volatile char rtt_template_param_max_delay_desc [] = "MAX_DELAY, max delay"
 
static const volatile char rtt_template_counter_tx_desc [] = "COUNTER_TX_EVENT, number of tx events handled"
 
static const volatile char rtt_template_counter_rtt_desc [] = "COUNTER_RTT_EVENT, number of rtt events handled"
 

Macro Definition Documentation

◆ ABORT_TIME

#define ABORT_TIME   (300000) /* The time to abort rtt_req - in nanosec */

Definition at line 44 of file rtt_template.c.

◆ BW_MB_DEFAULT_FXP16

#define BW_MB_DEFAULT_FXP16   (BW_MB_DEFAULT << 16) /* Default BW in fixed point */

Definition at line 45 of file rtt_template.c.

◆ CNP_DEC_FACTOR

#define CNP_DEC_FACTOR   ((1 << 16) - 2 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* CNP rate decrease factor */

Definition at line 42 of file rtt_template.c.

◆ DEC_FACTOR

#define DEC_FACTOR   ((1 << 16) - param[RTT_TEMPLATE_UPDATE_FACTOR]) /* Rate decrease factor */

Definition at line 41 of file rtt_template.c.

◆ FF32BIT

#define FF32BIT   (0xffffffff)

Definition at line 40 of file rtt_template.c.

◆ HIGH_UTIL_CNP_DEC_FACTOR

#define HIGH_UTIL_CNP_DEC_FACTOR
Value:
((1 << 16) - 4 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* CNP rate decrease factor in high port utilization mode \
*/
@ RTT_TEMPLATE_UPDATE_FACTOR
Definition: rtt_template.c:56

Definition at line 50 of file rtt_template.c.

◆ HIGH_UTIL_DEC_FACTOR

#define HIGH_UTIL_DEC_FACTOR    ((1 << 16) - 2 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* Rate decrease factor in high port utilization mode */

Definition at line 48 of file rtt_template.c.

◆ HIGH_UTIL_NACK_DEC_FACTOR

#define HIGH_UTIL_NACK_DEC_FACTOR
Value:
((1 << 16) - 10 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* NACK rate decrease factor in high port utilization \
mode */

Definition at line 52 of file rtt_template.c.

◆ HIGH_UTIL_THRESHOLD

#define HIGH_UTIL_THRESHOLD   (55704) /* 0.85 in 16b fixed point */

Definition at line 47 of file rtt_template.c.

◆ NACK_DEC_FACTOR

#define NACK_DEC_FACTOR   ((1 << 16) - 5 * param[RTT_TEMPLATE_UPDATE_FACTOR]) /* NACK rate decrease factor */

Definition at line 43 of file rtt_template.c.

◆ NP_RX_RATE_TH

#define NP_RX_RATE_TH   (58982) /* Threshold to update current rate according to NP RX rate. 0.9 in 16b fixed point */

Definition at line 46 of file rtt_template.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RTT_TEMPLATE_COUNTER_TX_EVENT 
RTT_TEMPLATE_COUNTER_RTT_EVENT 
RTT_TEMPLATE_COUNTER_NUM 

Definition at line 65 of file rtt_template.c.

◆ rtt_template_params_t

Enumerator
RTT_TEMPLATE_UPDATE_FACTOR 
RTT_TEMPLATE_AI 
RTT_TEMPLATE_BASE_RTT 
RTT_TEMPLATE_NEW_FLOW_RATE 
RTT_TEMPLATE_MIN_RATE 
RTT_TEMPLATE_MAX_DELAY 
RTT_TEMPLATE_PARAM_NUM 

Definition at line 55 of file rtt_template.c.

Function Documentation

◆ algorithm_core()

static uint32_t algorithm_core ( cc_ctxt_rtt_template_t ccctx,
uint32_t  rtt,
uint32_t  cur_rate,
uint32_t *  param,
uint8_t  is_high_util,
uint32_t  norm_np_rx_rate 
)
inlinestatic

Definition at line 174 of file rtt_template.c.

◆ rtt_template_algo()

void rtt_template_algo ( doca_pcc_dev_event_t event,
uint32_t *  param,
uint32_t *  counter,
doca_pcc_dev_algo_ctxt_t algo_ctxt,
doca_pcc_dev_results_t results 
)

Definition at line 441 of file rtt_template.c.

◆ rtt_template_handle_new_flow()

static void rtt_template_handle_new_flow ( doca_pcc_dev_event_t event,
uint32_t  cur_rate,
uint32_t *  param,
cc_ctxt_rtt_template_t ccctx,
doca_pcc_dev_results_t results 
)
inlinestatic

Definition at line 425 of file rtt_template.c.

◆ rtt_template_handle_roce_cnp()

static void rtt_template_handle_roce_cnp ( doca_pcc_dev_event_t event,
uint32_t  cur_rate,
cc_ctxt_rtt_template_t ccctx,
doca_pcc_dev_results_t results 
)
inlinestatic

Definition at line 377 of file rtt_template.c.

◆ rtt_template_handle_roce_nack()

static void rtt_template_handle_roce_nack ( doca_pcc_dev_event_t event,
uint32_t  cur_rate,
cc_ctxt_rtt_template_t ccctx,
doca_pcc_dev_results_t results 
)
inlinestatic

Definition at line 404 of file rtt_template.c.

◆ rtt_template_handle_roce_rtt()

static void rtt_template_handle_roce_rtt ( doca_pcc_dev_event_t event,
uint32_t  cur_rate,
uint32_t *  param,
cc_ctxt_rtt_template_t ccctx,
doca_pcc_dev_results_t results 
)
inlinestatic

Definition at line 280 of file rtt_template.c.

◆ rtt_template_handle_roce_tx()

static void rtt_template_handle_roce_tx ( doca_pcc_dev_event_t event,
uint32_t  cur_rate,
cc_ctxt_rtt_template_t ccctx,
doca_pcc_dev_results_t results 
)
inlinestatic

Definition at line 229 of file rtt_template.c.

◆ rtt_template_init()

void rtt_template_init ( uint32_t  algo_idx)

Definition at line 81 of file rtt_template.c.

◆ rtt_template_set_algo_params()

doca_pcc_dev_error_t rtt_template_set_algo_params ( uint32_t  param_id_base,
uint32_t  param_num,
const uint32_t *  new_param_values,
uint32_t *  params 
)

Definition at line 474 of file rtt_template.c.

Variable Documentation

◆ rtt_template_counter_rtt_desc

const volatile char rtt_template_counter_rtt_desc[] = "COUNTER_RTT_EVENT, number of rtt events handled"
static

Definition at line 79 of file rtt_template.c.

◆ 

enum { ... } rtt_template_counter_t

◆ rtt_template_counter_tx_desc

const volatile char rtt_template_counter_tx_desc[] = "COUNTER_TX_EVENT, number of tx events handled"
static

Definition at line 78 of file rtt_template.c.

◆ rtt_template_desc

const volatile char rtt_template_desc[] = "Rtt template v0.1"

Definition at line 71 of file rtt_template.c.

◆ rtt_template_param_ai_desc

const volatile char rtt_template_param_ai_desc[] = "AI, ai"
static

Definition at line 73 of file rtt_template.c.

◆ rtt_template_param_base_rtt_desc

const volatile char rtt_template_param_base_rtt_desc[] = "BASE_RTT, base rtt"
static

Definition at line 74 of file rtt_template.c.

◆ rtt_template_param_max_delay_desc

const volatile char rtt_template_param_max_delay_desc[] = "MAX_DELAY, max delay"
static

Definition at line 77 of file rtt_template.c.

◆ rtt_template_param_min_rate_desc

const volatile char rtt_template_param_min_rate_desc[] = "MIN_RATE, min rate"
static

Definition at line 76 of file rtt_template.c.

◆ rtt_template_param_new_flow_rate_desc

const volatile char rtt_template_param_new_flow_rate_desc[] = "NEW_FLOW_RATE, new flow rate"
static

Definition at line 75 of file rtt_template.c.

◆ rtt_template_param_update_factor_desc

const volatile char rtt_template_param_update_factor_desc[] = "UPDATE_FACTOR, update factor"
static

Definition at line 72 of file rtt_template.c.