CDI SDK
SDK for transporting chunks of data reliably and with low latency using a polled mode network driver.
Loading...
Searching...
No Matches
CdiTxConfigData Struct Reference

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.
 
CdiLogMethodDataconnection_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.
 

Detailed Description

Configuration data used by one of the Cdi...TxCreate() API functions.


The documentation for this struct was generated from the following file: