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

Structure used to hold adapter endpoint state. More...

#include <adapter_api.h>

Data Fields

CdiListEntry list_entry
 Allow these structures to live in a list in the adapter connection.
 
CdiEndpointHandle cdi_endpoint_handle
 Handle of CDI endpoint associated with this adapter endpoint.
 
AdapterConnectionStateadapter_con_state_ptr
 Pointer back to the adapter connection used by this endpoint.
 
MessageFromEndpoint msg_from_endpoint_func_ptr
 Address of function used to queue packet messages from the endpoint.
 
void * msg_from_endpoint_param_ptr
 Parameter passed to queue message function.
 
volatile CdiConnectionStatus connection_status_code
 Current state of this endpoint. NOTE: Made volatile, since it is written to and read by different threads. The reader uses the value within a loop, so we don't want the value to be cached and held in a register.
 
CdiQueueHandle tx_packet_queue_handle
 Circular queue of TxPacketState structures.
 
CdiSinglyLinkedList tx_packet_waiting_list
 List of packets from packet queue waiting to be sent.
 
volatile uint32_t tx_packets_in_process
 Number of Tx packets that are in process (sent but haven't received ACK/error response).
 
CdiAdapterEndpointStatsendpoint_stats_ptr
 Address where to store adapter endpoint statistics.
 
CdiSignalType start_signal
 Signal used to start adapter endpoint threads. A separate signal is used for the connection (see AdapterConnectionState.start_signal).
 
CdiSignalType shutdown_signal
 Signal used to shutdown adapter endpoint threads.
 
CdiProtocolHandle protocol_handle
 Handle of protocol being used. Value is NULL if none configured.
 
uint32_t tx_in_flight_ref_count
 Number of Tx payloads/packets in flight. When a payload is being queued to transmit, the count is incremented by one. As each packet within a payload is being queued, the value is also incremented by 1. After each packet has been ACKed, this value is decremented by 1. In addition, when the last packet of a payload has been ACKed the value is decremented by 1. This is done to ensure that the value remains non-zero until all the packets of a payload have been ACKed.
 
int maximum_payload_bytes
 The maximum number of bytes that can be sent in a packet through this connection. The number is computed by subtracting the number of bytes required for transmitting a packet through the medium supported by the connection from the maximum number of bytes in a packet on the medium. In other words, this is the maximum number of bytes that the scatter-gather list provided to CdiAdapterSendPacket() can contain.
 
int maximum_tx_sgl_entries
 The maximum number of SGL entries that can be used to represent a single Tx packet of data.
 
int msg_prefix_size
 The size of any required message prefix buffer space that an application must provide in front of all message send and receive buffers for use by the provider. The contents of the prefix space should be treated as opaque. This will be zero for providers that don't support prefix mode.
 
void * type_specific_ptr
 Adapter specific endpoint data.
 

Detailed Description

Structure used to hold adapter endpoint state.


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