UDT Reference: Structures

UDT Socket Structures

The structures used in UDT API are listed in the table below:

Structures Comments
UDTSOCKET UDT socket descriptor
ERRORINFO Description of UDT system errors
UDSET Set of UDT sockets
TRACEINFO UDT performance statistics and protocol parameters
UDTSOCKET

This is used as the descriptor of a UDT socket. Its internal is not exposed to application and subject to future changes.

ERRORINFO

The ERRORINFO structure contains the specific information of a UDT error. It has two helper functions to let applications know an integral error code and a piece of text information.

Functions Comments
int getErrorCode() read the UDT error code
const char* getErrorMessage() read the text information about the error.
void clear() clear the error information (set to SUCCESS).
UDSET

The UDSET structure is used with select call to access multiple UDT descriptors.

Four macros are defined on the UDSET structure to processing a UDT socket set. They are very similar to the fd_set structure and macros in traditional standard socket API.

Macros Comments
UD_CLR(u, *set) remove socket u from set.
UD_ISSET(u, *set) check if u is in set.
UD_SET(u, *set) add u into the set.
UD_ZERO(*set) initialize set to empty.
TRACEINFO

The TRACEINFO structure stores the performance trace information. Its member attributes can be read directly by applications.

Members Comments
The following attributes are aggregate values since the UDT socket is created.
int64_t msTimeStamp time elapsed since the UDT socket is created, in milliseconds
int64_t pktSentTotal total number of sent packets, including retransmissions
int64_t pktRecvTotal total number of received packets
int pktSndLossTotal total number of lost packets, measured in the sending side
int pktRcvLossTotal total number of lost packets, measured in the receiving side
int pktRetransTotal total number of retransmitted packets, measured in the sending side
int pktSentACKTotal total number of sent ACK packets
int pktRecvACKTotal total number of received ACK packets
int pktSentNAKTotal total number of sent NAK packets
int pktRecvNAKTotal total number of received NAK packets
The following attributes are local values since the last time they are recorded.
int64 pktSent number of sent packets, including retransmissions
int64 pktRecv number of received packets
int pktSndLoss number of lost packets, measured in the sending side
int pktRcvLoss number of lost packets, measured in the receiving side
int pktRetrans number of retransmitted packets, measured in the sending side
int pktSentACK number of sent ACK packets
int pktRecvACK number of received ACK packets
int pktSentNAK number of sent NAK packets
int pktRecvNAK number of received NAK packets
double mbpsSendRate sending rate in Mbps
double mbpsRecvRate receiving rate in Mbps
The following attributes are instant values at the time they are observed.
double usPktSndPeriod packet sending period, in microseconds
int pktFlowWindow flow window size, in number of packets
int pktCongestionWindow congestion window size, in number of packets
int pktFlightSize number packets on the flight
double msRTT round trip time, in milliseconds
double mbpsBandwidth estimated bandwidth, in Mbps
int byteAvailSndBuf available sending buffer size, in bytes
int byteAvailRcvBuf available receiving buffer size, in bytes
See Also

UDT Socket Structures