23 #ifndef DOCA_PCC_DEV_H_
24 #define DOCA_PCC_DEV_H_
31 #define DOCA_DPA_DEVICE
80 #if __NV_DPA >= __NV_DPA_CX8
81 #define DOCA_PCC_DEV_ACK_NACK_TX_EVENT_DISABLED_SUPPORTED (1)
83 #define DOCA_PCC_DEV_ACK_NACK_TX_EVENT_DISABLED_SUPPORTED (0)
89 #define DOCA_PCC_DEV_TX_FLAG_ACK_EXPECTED (1 << 0)
94 #define DOCA_PCC_DEV_TX_FLAG_OVERLOADED (1 << 1)
99 #define DOCA_PCC_DEV_TX_FLAG_RTT_REQ_SENT (1 << 2)
104 #define DOCA_PCC_DEV_LOG_MAX_RATE (20)
109 #define DOCA_PCC_DEV_MAX_RATE (1U << DOCA_PCC_DEV_LOG_MAX_RATE)
114 #define DOCA_PCC_DEV_DEFAULT_RATE ((DOCA_PCC_DEV_MAX_RATE >> 8) > (1) ? (DOCA_PCC_DEV_MAX_RATE >> 8) : (1))
119 #define DOCA_PCC_DEV_MAX_NUM_USER_SLOTS (8)
124 #define DOCA_PCC_DEV_MAX_NUM_ALGOS (8)
129 #define DOCA_PCC_DEV_MAX_NUM_PARAMS_PER_ALGO (0x26)
134 #define DOCA_PCC_DEV_MAX_NUM_COUNTERS_PER_ALGO (0x3F)
139 #define DOCA_PCC_DEV_ALGO_SLOT_INTERNAL (0xF)
144 #define DOCA_PCC_DEV_ALGO_INDEX_INTERNAL (0xF)
222 uint32_t param_id_base,
224 const uint32_t *new_param_values,
248 uint32_t header_size,
249 uint32_t wait_completed);
#define DOCA_EXPERIMENTAL
To set a Symbol (or specifically a function) as experimental.
#define DOCA_STABLE
To set a Symbol (or specifically a function) as stable API, i.e. it won't be changed.
doca_pcc_dev_error_t
API functions return status.
DOCA_EXPERIMENTAL doca_pcc_dev_error_t doca_pcc_dev_custom_header_set(doca_pcc_dev_algo_ctxt_t *algo_ctxt, doca_pcc_dev_event_t *event, uint32_t *header, uint32_t header_size, uint32_t wait_completed)
User callback executed to set custom header in CCMAD probe packet.
DOCA_STABLE doca_pcc_dev_error_t doca_pcc_dev_user_set_algo_params(uint32_t port_num, uint32_t algo_slot, uint32_t param_id_base, uint32_t param_num, const uint32_t *new_param_values, uint32_t *params)
User callback executed then parameters are set.
DOCA_STABLE void doca_pcc_dev_user_init(uint32_t *disable_event_bitmask)
Entry point to the user one time initialization code.
DOCA_STABLE void doca_pcc_dev_default_internal_algo(doca_pcc_dev_algo_ctxt_t *algo_ctxt, doca_pcc_dev_event_t *event, const doca_pcc_dev_attr_t *attr, doca_pcc_dev_results_t *results)
Implements the internal CC algorithm provided by the lib.
doca_pcc_dev_event_type_enum
CC event type.
DOCA_STABLE void doca_pcc_dev_user_algo(doca_pcc_dev_algo_ctxt_t *algo_ctxt, doca_pcc_dev_event_t *event, const doca_pcc_dev_attr_t *attr, doca_pcc_dev_results_t *results)
Entry point to the user algorithm handling code.
doca_pcc_dev_nack_event_sub_type_enum
CC Nack event subtypes.
struct doca_pcc_dev_results doca_pcc_dev_results_t
CC algorithm results.
@ DOCA_PCC_DEV_EVNT_ROCE_TX
@ DOCA_PCC_DEV_EVNT_ROCE_ACK
@ DOCA_PCC_DEV_EVNT_ROCE_CNP
@ DOCA_PCC_DEV_EVNT_ROCE_NACK
@ DOCA_PCC_DEV_EVNT_ROCE_TX_FOR_ACK_NACK
@ DOCA_PCC_DEV_NACK_EVNT_DUP_READ
@ DOCA_PCC_DEV_NACK_EVNT_OOS
@ DOCA_PCC_DEV_NACK_EVNT_NULL
@ DOCA_PCC_DEV_NACK_EVNT_RNR