fix(examples/iperf): added sequential numberring of Tx'ed datagrams

This commit is contained in:
Ondrej Kosta
2023-09-22 15:09:56 +05:30
committed by Nachiket Kukade
parent e9d442d2b7
commit e7b171604a
2 changed files with 11 additions and 1 deletions

View File

@@ -42,7 +42,7 @@ extern "C" {
#define IPERF_REPORT_TASK_PRIORITY 6 #define IPERF_REPORT_TASK_PRIORITY 6
#define IPERF_REPORT_TASK_STACK 4096 #define IPERF_REPORT_TASK_STACK 4096
#define IPERF_UDP_TX_LEN (1472) #define IPERF_UDP_TX_LEN (1470)
#define IPERF_UDP_RX_LEN (16 << 10) #define IPERF_UDP_RX_LEN (16 << 10)
#define IPERF_TCP_TX_LEN (16 << 10) #define IPERF_TCP_TX_LEN (16 << 10)
#define IPERF_TCP_RX_LEN (16 << 10) #define IPERF_TCP_RX_LEN (16 << 10)

View File

@@ -152,6 +152,8 @@ static void socket_recv(int recv_socket, struct sockaddr_storage listen_addr, ui
static void socket_send(int send_socket, struct sockaddr_storage dest_addr, uint8_t type, int bw_lim) static void socket_send(int send_socket, struct sockaddr_storage dest_addr, uint8_t type, int bw_lim)
{ {
uint8_t *buffer; uint8_t *buffer;
int32_t *pkt_id_p;
int32_t pkt_cnt = 0;
int actual_send = 0; int actual_send = 0;
int want_send = 0; int want_send = 0;
int period_us = -1; int period_us = -1;
@@ -161,6 +163,7 @@ static void socket_send(int send_socket, struct sockaddr_storage dest_addr, uint
int err = 0; int err = 0;
buffer = s_iperf_ctrl.buffer; buffer = s_iperf_ctrl.buffer;
pkt_id_p = (int32_t *)s_iperf_ctrl.buffer;
want_send = s_iperf_ctrl.buffer_len; want_send = s_iperf_ctrl.buffer_len;
iperf_start_report(); iperf_start_report();
@@ -184,6 +187,13 @@ static void socket_send(int send_socket, struct sockaddr_storage dest_addr, uint
} }
prev_time = send_time; prev_time = send_time;
} }
*pkt_id_p = htonl(pkt_cnt); // datagrams need to be sequentially numbered
if (pkt_cnt >= INT32_MAX) {
pkt_cnt = 0;
}
else {
pkt_cnt++;
}
if (s_iperf_ctrl.cfg.type == IPERF_IP_TYPE_IPV6) { if (s_iperf_ctrl.cfg.type == IPERF_IP_TYPE_IPV6) {
actual_send = sendto(send_socket, buffer, want_send, 0, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr_in6)); actual_send = sendto(send_socket, buffer, want_send, 0, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr_in6));
} else if (s_iperf_ctrl.cfg.type == IPERF_IP_TYPE_IPV4) { } else if (s_iperf_ctrl.cfg.type == IPERF_IP_TYPE_IPV4) {