MCUXpresso_MIMXRT1021xxxxx/boards/evkmimxrt1020/wifi_examples/wifi_serial_iperf3/iperf_api.h
Yilin Sun 763d32be90
Updated SDK to v2.15.000
Signed-off-by: Yilin Sun <imi415@imi.moe>
2024-03-15 22:23:36 +08:00

81 lines
2.3 KiB
C

#ifndef __IPERF_API_H__
#define __IPERF_API_H__
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
/* @TEST_ANCHOR */
/******************************************************************/
/* Iperf States */
#define TEST_START 1
#define TEST_RUNNING 2
#define TEST_END 4
#define PARAM_EXCHANGE 9
#define CREATE_STREAMS 10
#define SERVER_TERMINATE 11
#define CLIENT_TERMINATE 12
#define EXCHANGE_RESULTS 13
#define DISPLAY_RESULTS 14
#define IPERF_START 15
#define IPERF_DONE 16
#define ACCESS_DENIED (-1)
#define SERVER_ERROR (-2)
#define IPERF_NOP (-42) // Created not an official IPERF3 state
/*******************************************************************/
#define IPERF_CLIENT_RX 1
#define IPERF_CLIENT_TX 0
#define IPERF_CLIENT_TX_UDP 2
#define IPERF_CLIENT_RX_UDP 3
#define IPERF_BUFFER_MAX 1024
#define CTRL_IPERF_MSG_LEN 1
#define MAGIC_COOKIE "abeceda890abeceda890abeceda890123456"
#define TCP 1
#define UDP 2
#define OUTPUT_STR_MAX (1024)
#ifndef SENDER_PORT_NUM
#define SENDER_PORT_NUM 5201
#endif
struct iperf_ip
{
uint8_t ip[4];
};
struct iperf_ctx
{
/*Declarations*/
int socket_type;
int mode;
volatile signed char state;
int send_counter;
int ctrl_sock;
int real_send_buff_counter;
int real_recv_buff_counter;
char *ctrl_buf;
void *addr;
uint32_t addr_len;
char *send_buf;
char *recv_buf;
struct iperf_ip server_ip;
int data_sock;
int skip_state_start;
int iperf_done;
};
void iperf_hw_init(struct iperf_ctx *ctx);
int iperf_send(int socket, void *buffer, size_t len, int flag);
int iperf_send_to(int socket, char *buffer, int len, int flags, void *to, int tolen);
int iperf_connect(int socket, void *addr, uint32_t addrlen);
int iperf_socket(int protocol);
int iperf_recv_from_blocked(int socket, void *buf, size_t len, int flags);
int iperf_recv_from_timeout(int socket, void *buf, size_t len, int flags, int timeout_ms);
int iperf_recv_noblock(int socket, void *buf, size_t len, int flags);
int iperf_recv_blocked(int socket, void *buf, size_t len, int flags);
int iperf_recv_timeout(int socket, void *buf, size_t len, int flags, int timeout_ms);
int iperf_socket_close(int socket);
#endif