51#define IPERF_IP_TYPE_IPV4 0
52#define IPERF_IP_TYPE_IPV6 1
53#define IPERF_TRANS_TYPE_TCP 0
54#define IPERF_TRANS_TYPE_UDP 1
56#define IPERF_FLAG_SET(cfg, flag) ((cfg) |= (flag))
57#define IPERF_FLAG_CLR(cfg, flag) ((cfg) &= (~(flag)))
59#define IPERF_FLAG_CLIENT (1)
60#define IPERF_FLAG_SERVER (1 << 1)
61#define IPERF_FLAG_TCP (1 << 2)
62#define IPERF_FLAG_UDP (1 << 3)
64#define IPERF_DEFAULT_PORT 5001
65#define IPERF_DEFAULT_INTERVAL 1
66#define IPERF_DEFAULT_TIME 30
67#define IPERF_DEFAULT_NO_BW_LIMIT -1
69#define IPERF_TRAFFIC_TASK_NAME "iperf_traffic"
70#define IPERF_TRAFFIC_TASK_PRIORITY XF_OSAL_PRIORITY_NORMOL
71#define IPERF_TRAFFIC_TASK_STACK 4096
72#define IPERF_REPORT_TASK_NAME "iperf_report"
73#define IPERF_REPORT_TASK_PRIORITY XF_OSAL_PRIORITY_NORMOL
74#define IPERF_REPORT_TASK_STACK 4096
76#define IPERF_DEFAULT_IPV4_UDP_TX_LEN (1470)
77#define IPERF_DEFAULT_IPV6_UDP_TX_LEN (1450)
78#define IPERF_DEFAULT_UDP_RX_LEN (16 << 10)
79#define IPERF_DEFAULT_TCP_TX_LEN (16 << 10)
80#define IPERF_DEFAULT_TCP_RX_LEN (16 << 10)
82#define IPERF_MAX_DELAY 64
84#define IPERF_SOCKET_RX_TIMEOUT_MS 3000
165#define XF_IPERF_DEFAULT_CONFIG() (xf_iperf_cfg_t) { \
169 .type = IPERF_IP_TYPE_IPV4, \
170 .dport = IPERF_DEFAULT_PORT, \
171 .sport = IPERF_DEFAULT_PORT, \
172 .interval = IPERF_DEFAULT_INTERVAL, \
173 .time = IPERF_DEFAULT_TIME, \
175 .bw_lim = IPERF_DEFAULT_NO_BW_LIMIT, \
176 .traffic_task_stack_size = IPERF_TRAFFIC_TASK_STACK, \
177 .traffic_task_prio = IPERF_TRAFFIC_TASK_PRIORITY, \
178 .report_enabled = true, \
179 .report_task_stack_size = IPERF_REPORT_TASK_STACK, \
180 .report_task_prio = IPERF_REPORT_TASK_PRIORITY, \
xf_iperf_t xf_iperf_get_handle(void)
获取 iperf 句柄。
xf_err_t xf_iperf_start(const xf_iperf_cfg_t *p_cfg, xf_iperf_cb_t cb_func, void *user_args)
启动 iperf.
enum _xf_iperf_event_code_t xf_iperf_event_code_t
iperf 事件声明。
struct _xf_iperf_ctx_t * xf_iperf_t
iperf 句柄。
void(* xf_iperf_cb_t)(xf_iperf_event_id_t event_id, xf_iperf_t hdl, void *user_args)
iperf 回调函数原型。
struct _xf_iperf_cfg_t xf_iperf_cfg_t
iperf 配置类型。
struct _xf_iperf_ctx_t xf_iperf_ctx_t
iperf 上下文.
int32_t xf_iperf_event_id_t
iperf 事件 id。见 xf_iperf_event_code_t.
_xf_iperf_event_code_t
iperf 事件声明。
bool xf_iperf_is_running(void)
检查 iperf 是否正在运行。
xf_err_t xf_iperf_stop(void)
停止 iperf.
void * xf_osal_thread_t
线程句柄。
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
uint32_t traffic_task_prio
uint32_t report_task_stack_size
uint32_t report_task_prio
uint32_t traffic_task_stack_size
xf_osal_thread_t report_task_hdl
xf_osal_thread_t traffic_task_hdl
uint32_t actual_len_internal