27 #include <flextcp_plif.h> 28 #include "../tcp_common.h" 30 static int test_tcp_valid_rxseq_single(uint32_t fs_seq, uint32_t fs_avail,
31 uint32_t pkt_seq, uint32_t pkt_bytes,
int process, uint16_t trim_start,
38 printf(
" fs_seq=%u fs_avail=%u pkt_seq=%u pkt_bytes=%u\n", fs_seq, fs_avail,
41 fs.rx_next_seq = fs_seq;
42 fs.rx_avail = fs_avail;
44 ret = tcp_valid_rxseq(&fs, pkt_seq, pkt_bytes, &ts, &te);
47 fprintf(stderr,
" pkt unexpectedly rejected\n");
51 }
else if (!process) {
52 fprintf(stderr,
" pkt unexpectedly accepted\n");
56 if (trim_start != ts || trim_end != te) {
57 fprintf(stderr,
" trims don't match: got (ts=%u te=%u) expect " 58 "(ts=%u te=%u)\n", ts, te, trim_start, trim_end);
65 static int test_tcp_valid_rxseq(
void)
69 printf(
"testing tcp_valid_rxseq\n");
72 if (test_tcp_valid_rxseq_single(2048, 8192, 2048, 1400, 1, 0, 0) != 0)
75 if (test_tcp_valid_rxseq_single(2048, 8192, 2000, 1400, 1, 48, 0) != 0)
78 if (test_tcp_valid_rxseq_single(2048, 1000, 2000, 1400, 1, 48, 352) != 0)
81 if (test_tcp_valid_rxseq_single(2048, 8192, 2049, 1400, 0, 0, 0) != 0)
84 if (test_tcp_valid_rxseq_single(2048, 8192, 16384, 1400, 0, 0, 0) != 0)
88 if (test_tcp_valid_rxseq_single(4294965248, 8192, 4294965248, 1400, 1, 0, 0) != 0)
91 if (test_tcp_valid_rxseq_single(4294965248, 8192, 4294965200, 1400, 1, 48, 0) != 0)
94 if (test_tcp_valid_rxseq_single(4294965248, 8192, 4294965249, 1400, 0, 0, 0) != 0)
97 if (test_tcp_valid_rxseq_single(4294965248, 8192, 0, 1400, 0, 0, 0) != 0)
100 if (test_tcp_valid_rxseq_single(4294965248, 8192, 6144, 1400, 0, 0, 0) != 0)
104 if (test_tcp_valid_rxseq_single(4294966784, 8192, 4294966784, 1400, 1, 0, 0) != 0)
107 if (test_tcp_valid_rxseq_single(4294966784, 8192, 4294966700, 1400, 1, 84, 0) != 0)
110 if (test_tcp_valid_rxseq_single(4294966784, 1000, 4294966700, 1400, 1, 84, 316) != 0)
113 if (test_tcp_valid_rxseq_single(4294966784, 8192, 4294966785, 1400, 0, 0, 0) != 0)
119 static int test_tcp_trim_rxbuf_single(uint32_t fs_seq, uint32_t fs_avail,
120 uint32_t pkt_seq, uint32_t pkt_bytes,
int process, uint16_t trim_start,
127 printf(
" fs_seq=%u fs_avail=%u pkt_seq=%u pkt_bytes=%u\n", fs_seq, fs_avail,
130 fs.rx_next_seq = fs_seq;
131 fs.rx_avail = fs_avail;
133 ret = tcp_trim_rxbuf(&fs, pkt_seq, pkt_bytes, &ts, &te);
136 fprintf(stderr,
" pkt unexpectedly rejected\n");
140 }
else if (!process) {
141 fprintf(stderr,
" pkt unexpectedly accepted\n");
145 if (trim_start != ts || trim_end != te) {
146 fprintf(stderr,
" trims don't match: got (ts=%u te=%u) expect " 147 "(ts=%u te=%u)\n", ts, te, trim_start, trim_end);
154 static int test_tcp_trim_rxbuf(
void)
158 printf(
"testing tcp_trim_rxbuf\n");
161 if (test_tcp_trim_rxbuf_single(2048, 8192, 2048, 1400, 1, 0, 0) != 0)
164 if (test_tcp_trim_rxbuf_single(2048, 8192, 2000, 1400, 1, 48, 0) != 0)
167 if (test_tcp_trim_rxbuf_single(2048, 1000, 2000, 1400, 1, 48, 352) != 0)
170 if (test_tcp_trim_rxbuf_single(2048, 8192, 2049, 1400, 1, 0, 0) != 0)
173 if (test_tcp_trim_rxbuf_single(2048, 8192, 16384, 1400, 0, 0, 0) != 0)
177 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 4294965248, 1400, 1, 0, 0) != 0)
180 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 4294965200, 1400, 1, 48, 0) != 0)
183 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 4294965249, 1400, 1, 0, 0) != 0)
186 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 0, 1400, 1, 0, 0) != 0)
189 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 6144, 1400, 1, 0, 1400) != 0)
192 if (test_tcp_trim_rxbuf_single(4294965248, 8192, 6145, 1400, 0, 0, 0) != 0)
196 if (test_tcp_trim_rxbuf_single(4294966784, 8192, 4294966784, 1400, 1, 0, 0) != 0)
199 if (test_tcp_trim_rxbuf_single(4294966784, 8192, 4294966700, 1400, 1, 84, 0) != 0)
202 if (test_tcp_trim_rxbuf_single(4294966784, 1000, 4294966700, 1400, 1, 84, 316) != 0)
205 if (test_tcp_trim_rxbuf_single(4294966784, 8192, 4294966785, 1400, 1, 0, 0) != 0)
212 int main(
int argc,
char *argv[])
216 if (test_tcp_valid_rxseq() != 0)
219 if (test_tcp_trim_rxbuf() != 0)