| NVIDIA DOCA SDK | Data Center on a Chip Framework Documentation |

Modules | |
| DOCA PCC Device Algorithm Access | |
| DOCA PCC Device Common | |
| DOCA PCC Device Event | |
| DOCA PCC Device Services | |
| DOCA PCC Device Utilities | |
| DOCA PCC Device Notification Point | |
Data Structures | |
| struct | doca_pcc_dev_results |
| CC algorithm results. More... | |
Macros | |
| #define | DOCA_DPA_DEVICE |
| declares that we are compiling for the DPA Device More... | |
| #define | DOCA_PCC_DEV_ACK_NACK_TX_EVENT_DISABLED_SUPPORTED (1) |
| #define | DOCA_PCC_DEV_TX_FLAG_ACK_EXPECTED (1 << 0) |
| TX Flag: Ack expected. More... | |
| #define | DOCA_PCC_DEV_TX_FLAG_OVERLOADED (1 << 1) |
| TX Flag: Overloaded: More... | |
| #define | DOCA_PCC_DEV_TX_FLAG_RTT_REQ_SENT (1 << 2) |
| TX Flag: RTT packet sent. More... | |
| #define | DOCA_PCC_DEV_LOG_MAX_RATE (20) /* rate format in fixed point 20 */ |
| defines the fixed point fraction size of the rate limiter More... | |
| #define | DOCA_PCC_DEV_MAX_RATE (1U << DOCA_PCC_DEV_LOG_MAX_RATE) |
| Max rate in rate limiter fixed point. More... | |
| #define | DOCA_PCC_DEV_DEFAULT_RATE ((DOCA_PCC_DEV_MAX_RATE >> 8) > (1) ? (DOCA_PCC_DEV_MAX_RATE >> 8) : (1)) |
| Default rate. The user overrides the default in the user algo function. More... | |
| #define | DOCA_PCC_DEV_MAX_NUM_USER_SLOTS (8) |
| Max number of algo slots supported by the lib. More... | |
| #define | DOCA_PCC_DEV_MAX_NUM_ALGOS (8) |
| Max number of algos supported by the lib. More... | |
| #define | DOCA_PCC_DEV_MAX_NUM_PARAMS_PER_ALGO (0x26) |
| Max number of parameters per algo supported by the lib. More... | |
| #define | DOCA_PCC_DEV_MAX_NUM_COUNTERS_PER_ALGO (0x3F) |
| Max number of counters per algo supported by the lib. More... | |
| #define | DOCA_PCC_DEV_ALGO_SLOT_INTERNAL (0xF) |
| Reserved algo slot for internal algo provided by the lib. More... | |
| #define | DOCA_PCC_DEV_ALGO_INDEX_INTERNAL (0xF) |
| Reserved algo index for internal algo provided by the lib. More... | |
Typedefs | |
| typedef struct doca_pcc_dev_results | doca_pcc_dev_results_t |
| CC algorithm results. More... | |
Enumerations | |
| enum | doca_pcc_dev_event_type_enum { DOCA_PCC_DEV_EVNT_NULL = 0 , DOCA_PCC_DEV_EVNT_FW = 1 , DOCA_PCC_DEV_EVNT_ROCE_CNP = 2 , DOCA_PCC_DEV_EVNT_ROCE_TX = 3 , DOCA_PCC_DEV_EVNT_ROCE_ACK = 4 , DOCA_PCC_DEV_EVNT_ROCE_NACK = 5 , DOCA_PCC_DEV_EVNT_RTT = 6 , DOCA_PCC_DEV_EVNT_ROCE_TX_FOR_ACK_NACK = 31 } |
| CC event type. More... | |
| enum | doca_pcc_dev_nack_event_sub_type_enum { DOCA_PCC_DEV_NACK_EVNT_NULL = 0 , DOCA_PCC_DEV_NACK_EVNT_RNR = 1 , DOCA_PCC_DEV_NACK_EVNT_OOS = 2 , DOCA_PCC_DEV_NACK_EVNT_DUP_READ = 3 } |
| CC Nack event subtypes. More... | |
DOCA PCC Device library. For more details please refer to the user guide on DOCA devzone.
| #define DOCA_DPA_DEVICE |
declares that we are compiling for the DPA Device
Definition at line 31 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_ACK_NACK_TX_EVENT_DISABLED_SUPPORTED (1) |
Flag to check if disabling ACK/NACK is supported
Definition at line 81 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_ALGO_INDEX_INTERNAL (0xF) |
Reserved algo index for internal algo provided by the lib.
Definition at line 144 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_ALGO_SLOT_INTERNAL (0xF) |
Reserved algo slot for internal algo provided by the lib.
Definition at line 139 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_DEFAULT_RATE ((DOCA_PCC_DEV_MAX_RATE >> 8) > (1) ? (DOCA_PCC_DEV_MAX_RATE >> 8) : (1)) |
Default rate. The user overrides the default in the user algo function.
Definition at line 114 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_LOG_MAX_RATE (20) /* rate format in fixed point 20 */ |
defines the fixed point fraction size of the rate limiter
Definition at line 104 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_MAX_NUM_ALGOS (8) |
Max number of algos supported by the lib.
Definition at line 124 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_MAX_NUM_COUNTERS_PER_ALGO (0x3F) |
Max number of counters per algo supported by the lib.
Definition at line 134 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_MAX_NUM_PARAMS_PER_ALGO (0x26) |
Max number of parameters per algo supported by the lib.
Definition at line 129 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_MAX_NUM_USER_SLOTS (8) |
Max number of algo slots supported by the lib.
Definition at line 119 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_MAX_RATE (1U << DOCA_PCC_DEV_LOG_MAX_RATE) |
Max rate in rate limiter fixed point.
Definition at line 109 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_TX_FLAG_ACK_EXPECTED (1 << 0) |
TX Flag: Ack expected.
Definition at line 89 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_TX_FLAG_OVERLOADED (1 << 1) |
TX Flag: Overloaded:
Definition at line 94 of file doca_pcc_dev.h.
| #define DOCA_PCC_DEV_TX_FLAG_RTT_REQ_SENT (1 << 2) |
TX Flag: RTT packet sent.
Definition at line 99 of file doca_pcc_dev.h.
| typedef struct mlnx_cc_ack_nack_cnp_extra_t doca_pcc_dev_ack_nack_cnp_extra_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_ack_nack_cnp_t doca_pcc_dev_ack_nack_cnp_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_algo_ctxt_t doca_pcc_dev_algo_ctxt_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_attr_t doca_pcc_dev_attr_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_event_general_attr_t doca_pcc_dev_event_general_attr_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef union mlnx_cc_event_spec_attr_t doca_pcc_dev_event_spec_attr_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_event_t doca_pcc_dev_event_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_fw_data_t doca_pcc_dev_fw_data_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct doca_pcc_dev_results doca_pcc_dev_results_t |
CC algorithm results.
| typedef struct mlnx_cc_roce_tx_cntrs_t doca_pcc_dev_roce_tx_cntrs_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_roce_tx_extra_t doca_pcc_dev_roce_tx_extra_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_roce_tx_t doca_pcc_dev_roce_tx_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
| typedef struct mlnx_cc_rtt_tstamp_t doca_pcc_dev_rtt_tstamp_t |
Definition at line 1 of file doca_pcc_dev_data_structures.h.
CC event type.
Definition at line 45 of file doca_pcc_dev.h.
CC Nack event subtypes.
Definition at line 59 of file doca_pcc_dev.h.
| 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.
Called in user application to change custom header only for CCMAD probe type
| [in] | algo_ctxt | - pointer to user context for this flow (restored from previous iteration) |
| [in] | event | - pointer to event data struct to be used with getter functions |
| [in] | header | - header content memory address |
| [in] | header_size | - header size length, the unit is Double Words. |
| [in] | wait_completed | - When set, the function will return after the setting is applied, assuring that the next probe packet will use the custom header content. When cleared, the function will not wait for the setting to finish. It will return earlier, and the next transmitted probe may still use the previous header content. |
| 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.
The lib provides an internal built-in CC algorithm implementation. The user may call this function for flows with algo_slot that is not set by the user (An unknown algo_slot can be the result of running without algo negotiation)
| [in] | algo_ctxt | - |
| [in] | event | - |
| [in] | attr | - |
| [out] | results | - |
| 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.
This code handles a single event. it receives the algorithm context, the event information (opaque struct), and some attributes (algo id), and returns the PCC rate The event info should not be used directly through the struct. It is recommended to use the supplied "getter" functions (doca_pcc_dev_event.h) to help generate more future compatible code if event information placement changes
| [in] | algo_ctxt | - pointer to user context for this flow (restored from previous iteration) |
| [in] | event | - pointer to event data struct to be used with getter functions |
| [in] | attr | - information about event like algo type |
| [out] | results | - new rate information to be written to HW. The rate is expressed as a 20b fixed point number in range (0 , 1] |
Definition at line 153 of file rp_rtt_template_dev_main.c.
| DOCA_STABLE void doca_pcc_dev_user_init | ( | uint32_t * | disable_event_bitmask | ) |
Entry point to the user one time initialization code.
This is called on PCC process load and should initialize the data of all user algorithms.
| [out] | disable_event_bitmask | - a bitmaks of events that should be discarded and not passed to the event processing code |
Definition at line 188 of file rp_rtt_template_dev_main.c.
| 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.
Called when the parameter change was set externally. The implementation should: Check the given new_parameters values. If those are correct from the algorithm perspective, assign them to the given parameter array.
| [in] | port_num | - index of the port |
| [in] | algo_slot | - Algo slot identifier as referred to in the PPCC command field "algo_slot" if possible it should be equal to the algo_idx |
| [in] | param_id_base | - id of the first parameter that was changed. |
| [in] | param_num | - number of all parameters that were changed |
| [in] | new_param_values | - pointer to an array which holds param_num number of new values for parameters |
| [in] | params | - pointer to an array which holds beginning of the current parameters to be changed |
Definition at line 233 of file rp_rtt_template_dev_main.c.