CDI SDK
SDK for transporting chunks of data reliably and with low latency using a polled mode network driver.
|
This file contains internal definitions and implementation used within the SDK to support functionality that is not part of the API. More...
#include "adapter_efa.h"
#include "adapter_efa_probe_tx.h"
#include "adapter_api.h"
#include "adapter_efa_probe_control.h"
#include "cdi_os_api.h"
#include "endpoint_manager.h"
#include "internal.h"
#include "internal_utility.h"
#include "payload.h"
Macros | |
#define | LEGACY_SEND_PING_COMMAND_FREQUENCY_MSEC (3000) |
Legacy protocols before version 5 used 3000 for ping command frequency. | |
Functions | |
static bool | EfaEnqueueSendProbePacket (ProbeEndpointState *probe_ptr) |
static int | ProcessSendCommandRetry (ProbeEndpointState *probe_ptr, const char *remote_ip_str, int remote_dest_port, ProbeCommand command) |
Process the state of command that can be resent multiple times, due to not receiving an ACK. | |
void | ProbeTxEfaMessageFromEndpoint (void *param_ptr, Packet *packet_ptr, EndpointMessageType message_type) |
void | ProbeTxControlMessageFromEndpoint (void *param_ptr, Packet *packet_ptr) |
bool | ProbeTxControlProcessPacket (ProbeEndpointState *probe_ptr, const CdiDecodedProbeHeader *probe_hdr_ptr, uint64_t *wait_timeout_ms_ptr) |
uint64_t | ProbeTxControlProcessProbeState (ProbeEndpointState *probe_ptr) |
This file contains internal definitions and implementation used within the SDK to support functionality that is not part of the API.
|
static |
Send a probe packet using the EFA adapter interface to the endpoint associated with the probe connection. Only one packet is sent at a time, waiting for the packet's ACK before sending the next one. Probe doesn't send very many packets so no need to optimize and require additional DMA packet buffers.
probe_ptr | Pointer to probe connection state data. |
void ProbeTxControlMessageFromEndpoint | ( | void * | param_ptr, |
Packet * | packet_ptr ) |
Process a control packet completion message from the transmitter probe control interface endpoint.
NOTE: This function is called from PollThread().
param_ptr | Pointer to user parameter. |
packet_ptr | Pointer to packet containing the control message. |
bool ProbeTxControlProcessPacket | ( | ProbeEndpointState * | probe_ptr, |
const CdiDecodedProbeHeader * | probe_hdr_ptr, | ||
uint64_t * | wait_timeout_ms_ptr ) |
Process control message for Tx connection.
NOTE: This function is called from ProbeControlThread().
probe_ptr | Pointer to probe endpoint state data. |
probe_hdr_ptr | Pointer to control message header. |
wait_timeout_ms_ptr | Pointer to current wait timeout. This function may alter the contents of the value. |
uint64_t ProbeTxControlProcessProbeState | ( | ProbeEndpointState * | probe_ptr | ) |
Called when the wait timeout period has expired. Time to process the current Tx probe state.
NOTE: This function is called from ProbeControlThread().
probe_ptr | Pointer to probe endpoint state data. |
void ProbeTxEfaMessageFromEndpoint | ( | void * | param_ptr, |
Packet * | packet_ptr, | ||
EndpointMessageType | message_type ) |
Process a probe packet completion message from the transmitter EFA endpoint.
NOTE: This function is called from Poll().
param_ptr | Pointer to user parameter. |
packet_ptr | Pointer to packet. |
message_type | Endpoint message type. |
|
static |
Process the state of command that can be resent multiple times, due to not receiving an ACK.
probe_ptr | Pointer to probe endpoint state data. |
remote_ip_str | Pointer to remote endpoint's IP string. |
remote_dest_port | Remote endpoint's destination port. |
command | Command to send. |