CDI SDK
SDK for transporting chunks of data reliably and with low latency using a polled mode network driver.
|
Configuration data used by one of the Cdi...TxCreate() API functions. More...
#include <cdi_core_api.h>
Data Fields | |
CdiAdapterHandle | adapter_handle |
Handle of the adapter to use for this connection. The handle is returned by the CdiCoreNetworkAdapterInitialize() API function. | |
const char * | dest_ip_addr_str |
The IP address of the host which is to receive the flow from this transmitter. NOTE: This must be the dotted form of an IPv4 address. DNS may be supported in the future. | |
int | dest_port |
The port number to use at the receiving host. The range of valid values is 1 to 65535, inclusive and must match the value configured for the receiving connection. | |
const char * | bind_ip_addr_str |
The IP address of the host interface to bind to for internal CDI command communication. If NULL, interface binding is not used (default behavior). NOTE: This must be the dotted form of an IPv4 address. DNS may be supported in the future. | |
int | shared_thread_id |
To reduce CPU core usage, multiple connections can share the same poll thread by specifying a shared poll thread identifier. Any connection that uses the same identifier will share a single instance of the poll thread. Dynamically adding/removing connections while payloads are transferring may cause them to be late. Therefore, connections that share the same poll thread should be created and connected before payloads are transferred. If the thread identifier is 0 or negative (ie. -1), a unique poll thread is created and associated only with this connection. NOTE: If enabled (greater than 0), then all connections with matching shared_thread_id must also match in their setting of thread_core_num. | |
int | thread_core_num |
The core to dedicate to this connection's packet send poll thread. A value of -1 disables pinning the thread to a specific core otherwise the value must be between 0 (inclusive) and the number of CPU cores (exclusive) in the host. The packet send thread continuously polls the underlying hardware for a time to send packets when the packet send queue is not empty so it can consume a large portion of the available time on whatever CPU it's running whether pinned or not. | |
int | max_simultaneous_tx_payloads |
The max number of allowable payloads that can be simultaneously transmitted on a single connection in the SDK. This number should be smaller than the respective receive limit since more payloads can potentially be in flight in the receive logic. This is because Tx packets can get acknowledged to the transmitter before being fully processed by the receiver, allowing the transmitter to send more. NOTE: If it's 0, then CDI_MAX_SIMULTANEOUS_TX_PAYLOADS_PER_CONNECTION will be used. | |
int | max_simultaneous_tx_payload_sgl_entries |
The max number of sgl entries in use at one time for each transmit connection in the SDK. This number should be set to account for the number of payloads in flight (max_simultaneous_tx_payloads) as well as the maximum size of the payloads being sent. A 4K video payload will have at least one entry per packet sent so large payloads can have many SGL entries. The SGL entries for a given payload should all be returned by the transmit callback function. NOTE: If it's 0, then CDI_MAX_SIMULTANEOUS_TX_PAYLOAD_SGL_ENTRIES_PER_CONNECTION will be used. | |
const char * | connection_name_str |
Pointer to name of the connection. It is used as an identifier when generating log messages that are specific to this connection. If NULL, a name is internally generated. Length of name must not exceed MAX_CONNECTION_NAME_STRING_LENGTH. | |
CdiLogMethodData * | connection_log_method_data_ptr |
Pointer to log configuration data for this connection. | |
CdiCoreConnectionCallback | connection_cb_ptr |
Address of the user function to call whenever the status of a connection changes. | |
CdiUserCbParameter | connection_user_cb_param |
User defined callback parameter passed to the user registered connection callback function (see connection_cb_ptr). This allows the application to associate a TX connection to a single registered user callback function. | |
CdiCoreStatsCallback | stats_cb_ptr |
Address of the user function to call whenever a new set of statistics is available. | |
CdiUserCbParameter | stats_user_cb_param |
User defined callback parameter passed to the user registered statistics callback function (see stats_cb_ptr). This allows the application to associate statistics to a single registered user callback function. | |
CdiStatsConfigData | stats_config |
Configuration data for gathering statistics. The data can be changed at runtime using the CdiCoreStatsReconfigure() API function. | |
Configuration data used by one of the Cdi...TxCreate() API functions.