18 #include "../suricata-common.h"
19 #include "../stream-tcp-private.h"
20 #include "../stream-tcp.h"
21 #include "../stream-tcp-reassemble.h"
22 #include "../stream-tcp-inline.h"
23 #include "../stream-tcp-list.h"
24 #include "../stream-tcp-util.h"
25 #include "../util-streaming-buffer.h"
26 #include "../util-print.h"
27 #include "../util-unittest.h"
28 #include "../util-unittest-helper.h"
30 #define SET_ISN(stream, setseq) \
31 (stream)->isn = (setseq); \
32 (stream)->base_seq = (setseq) + 1
41 static int StreamTcpTest01(
void)
45 memset(&tcph, 0,
sizeof(
TCPHdr));
50 memset(&f, 0,
sizeof(
Flow));
54 TcpSession *ssn = StreamTcpNewSession(NULL, &stt, p, 0);
74 static int StreamTcpTest02(
void)
84 memset(&pq, 0,
sizeof(pq));
85 memset(&f, 0,
sizeof(
Flow));
88 memset(&tcph, 0,
sizeof(
TCPHdr));
159 static int StreamTcpTest03(
void)
168 memset(&pq, 0,
sizeof(pq));
169 memset(&f, 0,
sizeof(
Flow));
172 memset(&tcph, 0,
sizeof(
TCPHdr));
178 tcph.
th_win = htons(5480);
233 static int StreamTcpTest04(
void)
242 memset(&pq, 0,
sizeof(pq));
243 memset(&f, 0,
sizeof(
Flow));
246 memset(&tcph, 0,
sizeof(
TCPHdr));
252 tcph.
th_win = htons(5480);
300 static int StreamTcpTest05(
void)
311 memset(&f, 0,
sizeof(
Flow));
314 memset(&tcph, 0,
sizeof(
TCPHdr));
320 tcph.
th_win = htons(5480);
398 static int StreamTcpTest06(
void)
409 memset(&f, 0,
sizeof(
Flow));
413 memset(&tcph, 0,
sizeof(
TCPHdr));
425 printf(
"StreamTcpPacket failed: ");
430 printf(
"we have a ssn while we shouldn't: ");
437 printf(
"StreamTcpPacket failed (2): ");
442 printf(
"we have a ssn while we shouldn't (2): ");
459 static int StreamTcpTest07(
void)
467 uint8_t payload[1] = { 0x42 };
471 memset(&f, 0,
sizeof(
Flow));
474 memset(&tcph, 0,
sizeof(
TCPHdr));
482 tcph.
th_win = htons(5480);
520 static int StreamTcpTest08(
void)
528 uint8_t payload[1] = { 0x42 };
532 memset(&f, 0,
sizeof(
Flow));
535 memset(&tcph, 0,
sizeof(
TCPHdr));
543 tcph.
th_win = htons(5480);
582 static int StreamTcpTest09(
void)
590 uint8_t payload[1] = { 0x42 };
594 memset(&f, 0,
sizeof(
Flow));
597 memset(&tcph, 0,
sizeof(
TCPHdr));
605 tcph.
th_win = htons(5480);
638 FAIL_IF(TCPSEG_RB_NEXT(seg) != NULL);
652 static int StreamTcpTest10(
void)
663 memset(&f, 0,
sizeof(
Flow));
666 memset(&tcph, 0,
sizeof(
TCPHdr));
673 tcph.
th_win = htons(5480);
731 static int StreamTcpTest11(
void)
742 memset(&f, 0,
sizeof(
Flow));
745 memset(&tcph, 0,
sizeof(
TCPHdr));
752 tcph.
th_win = htons(5480);
810 static int StreamTcpTest12(
void)
821 memset(&f, 0,
sizeof(
Flow));
824 memset(&tcph, 0,
sizeof(
TCPHdr));
830 tcph.
th_win = htons(5480);
870 printf(
"failed in setting asynchronous session\n");
875 printf(
"failed in setting state\n");
881 printf(
"failed in seq %" PRIu32
" match\n",
904 static int StreamTcpTest13(
void)
915 memset(&f, 0,
sizeof(
Flow));
918 memset(&tcph, 0,
sizeof(
TCPHdr));
924 tcph.
th_win = htons(5480);
964 printf(
"failed in setting asynchronous session\n");
969 printf(
"failed in setting state\n");
987 printf(
"failed in seq %" PRIu32
" match\n",
1003 static const char *dummy_conf_string =
"%YAML 1.1\n"
1006 "default-log-dir: /var/log/eidps\n"
1010 " default-log-level: debug\n"
1012 " default-format: \"<%t> - <%l>\"\n"
1014 " default-startup-message: Your IDS has started.\n"
1016 " default-output-filter:\n"
1020 " windows: 192.168.0.1\n"
1022 " linux: 192.168.0.2\n"
1025 static const char *dummy_conf_string1 =
"%YAML 1.1\n"
1028 "default-log-dir: /var/log/eidps\n"
1032 " default-log-level: debug\n"
1034 " default-format: \"<%t> - <%l>\"\n"
1036 " default-startup-message: Your IDS has started.\n"
1038 " default-output-filter:\n"
1042 " windows: 192.168.0.0/24,"
1045 " linux: 192.168.1.0/24,"
1056 static const char *StreamTcpParseOSPolicy(
char *conf_var_name)
1059 char conf_var_type_name[15] =
"host-os-policy";
1060 char *conf_var_full_name = NULL;
1061 const char *conf_var_value = NULL;
1063 if (conf_var_name == NULL)
1067 conf_var_full_name = (
char *)
SCMalloc(strlen(conf_var_type_name) + strlen(conf_var_name) + 2);
1068 if (conf_var_full_name == NULL)
1071 if (snprintf(conf_var_full_name, strlen(conf_var_type_name) + strlen(conf_var_name) + 2,
1072 "%s.%s", conf_var_type_name, conf_var_name) < 0) {
1073 SCLogError(
"Error in making the conf full name");
1077 if (
ConfGet(conf_var_full_name, &conf_var_value) != 1) {
1078 SCLogError(
"Error in getting conf value for conf name %s", conf_var_full_name);
1082 SCLogDebug(
"Value obtained from the yaml conf file, for the var "
1084 conf_var_name, conf_var_value);
1087 if (conf_var_full_name != NULL)
1088 SCFree(conf_var_full_name);
1098 static int StreamTcpTest14(
void)
1107 struct in_addr addr;
1109 char os_policy_name[10] =
"windows";
1110 const char *ip_addr;
1114 memset(&f, 0,
sizeof(
Flow));
1117 memset(&tcph, 0,
sizeof(
TCPHdr));
1118 memset(&addr, 0,
sizeof(addr));
1119 memset(&ipv4h, 0,
sizeof(ipv4h));
1132 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1134 strlcpy(os_policy_name,
"linux\0",
sizeof(os_policy_name));
1135 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1137 addr.s_addr = inet_addr(
"192.168.0.1");
1138 tcph.
th_win = htons(5480);
1190 addr.s_addr = inet_addr(
"192.168.0.2");
1225 printf(
"failed in next_seq match client.next_seq %" PRIu32
""
1226 " server.next_seq %" PRIu32
"\n",
1234 printf(
"failed in setting up OS policy, client.os_policy: %" PRIu8
""
1235 " should be %" PRIu8
" and server.os_policy: %" PRIu8
""
1236 " should be %" PRIu8
"\n",
1260 static int StreamTcp4WHSTest01(
void)
1271 memset(&f, 0,
sizeof(
Flow));
1274 memset(&tcph, 0,
sizeof(
TCPHdr));
1280 tcph.
th_win = htons(5480);
1298 printf(
"STREAMTCP_FLAG_4WHS flag not set: ");
1319 printf(
"state is not ESTABLISHED: ");
1340 static int StreamTcp4WHSTest02(
void)
1351 memset(&f, 0,
sizeof(
Flow));
1354 memset(&tcph, 0,
sizeof(
TCPHdr));
1360 tcph.
th_win = htons(5480);
1378 printf(
"STREAMTCP_FLAG_4WHS flag not set: ");
1388 printf(
"SYN/ACK pkt not rejected but it should have: ");
1409 static int StreamTcp4WHSTest03(
void)
1420 memset(&f, 0,
sizeof(
Flow));
1423 memset(&tcph, 0,
sizeof(
TCPHdr));
1429 tcph.
th_win = htons(5480);
1447 printf(
"STREAMTCP_FLAG_4WHS flag not set: ");
1468 printf(
"state is not ESTABLISHED: ");
1488 static int StreamTcpTest15(
void)
1497 struct in_addr addr;
1499 char os_policy_name[10] =
"windows";
1500 const char *ip_addr;
1504 memset(&f, 0,
sizeof(
Flow));
1507 memset(&tcph, 0,
sizeof(
TCPHdr));
1508 memset(&addr, 0,
sizeof(addr));
1509 memset(&ipv4h, 0,
sizeof(ipv4h));
1522 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1524 strlcpy(os_policy_name,
"linux\0",
sizeof(os_policy_name));
1525 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1527 addr.s_addr = inet_addr(
"192.168.0.20");
1528 tcph.
th_win = htons(5480);
1580 addr.s_addr = inet_addr(
"192.168.1.20");
1615 printf(
"failed in next_seq match client.next_seq %" PRIu32
""
1616 " server.next_seq %" PRIu32
"\n",
1624 printf(
"failed in setting up OS policy, client.os_policy: %" PRIu8
""
1625 " should be %" PRIu8
" and server.os_policy: %" PRIu8
""
1626 " should be %" PRIu8
"\n",
1650 static int StreamTcpTest16(
void)
1659 struct in_addr addr;
1661 char os_policy_name[10] =
"windows";
1662 const char *ip_addr;
1666 memset(&f, 0,
sizeof(
Flow));
1669 memset(&tcph, 0,
sizeof(
TCPHdr));
1670 memset(&addr, 0,
sizeof(addr));
1671 memset(&ipv4h, 0,
sizeof(ipv4h));
1684 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1686 strlcpy(os_policy_name,
"linux\0",
sizeof(os_policy_name));
1687 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1689 addr.s_addr = inet_addr(
"192.168.0.1");
1690 tcph.
th_win = htons(5480);
1742 addr.s_addr = inet_addr(
"192.168.1.1");
1777 printf(
"failed in next_seq match client.next_seq %" PRIu32
""
1778 " server.next_seq %" PRIu32
"\n",
1786 printf(
"failed in setting up OS policy, client.os_policy: %" PRIu8
""
1787 " should be %" PRIu8
" and server.os_policy: %" PRIu8
""
1788 " should be %" PRIu8
"\n",
1813 static int StreamTcpTest17(
void)
1822 struct in_addr addr;
1824 char os_policy_name[10] =
"windows";
1825 const char *ip_addr;
1829 memset(&f, 0,
sizeof(
Flow));
1832 memset(&tcph, 0,
sizeof(
TCPHdr));
1833 memset(&addr, 0,
sizeof(addr));
1834 memset(&ipv4h, 0,
sizeof(ipv4h));
1847 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1849 strlcpy(os_policy_name,
"linux\0",
sizeof(os_policy_name));
1850 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
1852 addr.s_addr = inet_addr(
"192.168.0.1");
1853 tcph.
th_win = htons(5480);
1905 addr.s_addr = inet_addr(
"10.1.1.1");
1940 printf(
"failed in next_seq match client.next_seq %" PRIu32
""
1941 " server.next_seq %" PRIu32
"\n",
1949 printf(
"failed in setting up OS policy, client.os_policy: %" PRIu8
""
1950 " should be %" PRIu8
" and server.os_policy: %" PRIu8
""
1951 " should be %" PRIu8
"\n",
1970 static int StreamTcpTest18(
void)
1973 struct in_addr addr;
1974 char os_policy_name[10] =
"windows";
1975 const char *ip_addr;
1982 memset(&addr, 0,
sizeof(addr));
1983 memset(&stream, 0,
sizeof(stream));
1984 memset(&ipv4h, 0,
sizeof(ipv4h));
1995 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
2000 addr.s_addr = inet_addr(
"192.168.1.1");
2017 static int StreamTcpTest19(
void)
2020 struct in_addr addr;
2021 char os_policy_name[10] =
"windows";
2022 const char *ip_addr;
2029 memset(&addr, 0,
sizeof(addr));
2030 memset(&stream, 0,
sizeof(stream));
2031 memset(&ipv4h, 0,
sizeof(ipv4h));
2042 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
2047 addr.s_addr = inet_addr(
"192.168.0.30");
2052 printf(
"expected os_policy: %" PRIu8
" but received %" PRIu8
": ",
2067 static int StreamTcpTest20(
void)
2070 struct in_addr addr;
2071 char os_policy_name[10] =
"linux";
2072 const char *ip_addr;
2079 memset(&addr, 0,
sizeof(addr));
2080 memset(&stream, 0,
sizeof(stream));
2081 memset(&ipv4h, 0,
sizeof(ipv4h));
2092 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
2097 addr.s_addr = inet_addr(
"192.168.0.1");
2102 printf(
"expected os_policy: %" PRIu8
" but received %" PRIu8
"\n", (uint8_t)
OS_POLICY_LINUX,
2117 static int StreamTcpTest21(
void)
2120 struct in_addr addr;
2121 char os_policy_name[10] =
"linux";
2122 const char *ip_addr;
2129 memset(&addr, 0,
sizeof(addr));
2130 memset(&stream, 0,
sizeof(stream));
2131 memset(&ipv4h, 0,
sizeof(ipv4h));
2142 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
2147 addr.s_addr = inet_addr(
"192.168.1.30");
2152 printf(
"expected os_policy: %" PRIu8
" but received %" PRIu8
"\n", (uint8_t)
OS_POLICY_LINUX,
2167 static int StreamTcpTest22(
void)
2170 struct in_addr addr;
2171 char os_policy_name[10] =
"windows";
2172 const char *ip_addr;
2179 memset(&addr, 0,
sizeof(addr));
2180 memset(&stream, 0,
sizeof(stream));
2181 memset(&ipv4h, 0,
sizeof(ipv4h));
2192 ip_addr = StreamTcpParseOSPolicy(os_policy_name);
2197 addr.s_addr = inet_addr(
"123.231.2.1");
2202 printf(
"expected os_policy: %" PRIu8
" but received %" PRIu8
"\n",
2217 static int StreamTcpTest23(
void)
2223 uint8_t packet[1460] =
"";
2229 memset(&f, 0,
sizeof(
Flow));
2230 memset(&tcph, 0,
sizeof(
TCPHdr));
2240 p->
proto = IPPROTO_TCP;
2249 tcph.
th_seq = htonl(3184324453UL);
2250 tcph.
th_ack = htonl(3373419609UL);
2255 tcph.
th_seq = htonl(3184324455UL);
2256 tcph.
th_ack = htonl(3373419621UL);
2261 tcph.
th_seq = htonl(3184324453UL);
2262 tcph.
th_ack = htonl(3373419621UL);
2280 static int StreamTcpTest24(
void)
2288 uint8_t packet[1460] =
"";
2295 memset(&f, 0,
sizeof(
Flow));
2296 memset(&tcph, 0,
sizeof(
TCPHdr));
2302 p->
proto = IPPROTO_TCP;
2312 tcph.
th_seq = htonl(3184324455UL);
2313 tcph.
th_ack = htonl(3373419621UL);
2318 tcph.
th_seq = htonl(3184324459UL);
2319 tcph.
th_ack = htonl(3373419633UL);
2324 tcph.
th_seq = htonl(3184324459UL);
2325 tcph.
th_ack = htonl(3373419657UL);
2347 static int StreamTcpTest25(
void)
2360 memset(&f, 0,
sizeof(
Flow));
2363 memset(&tcph, 0,
sizeof(
TCPHdr));
2367 tcph.
th_win = htons(5480);
2438 static int StreamTcpTest26(
void)
2451 memset(&f, 0,
sizeof(
Flow));
2454 memset(&tcph, 0,
sizeof(
TCPHdr));
2458 tcph.
th_win = htons(5480);
2530 static int StreamTcpTest27(
void)
2543 memset(&f, 0,
sizeof(
Flow));
2546 memset(&tcph, 0,
sizeof(
TCPHdr));
2550 tcph.
th_win = htons(5480);
2618 static int StreamTcpTest28(
void)
2646 static int StreamTcpTest37(
void)
2659 memset(&f, 0,
sizeof(
Flow));
2662 memset(&tcph, 0,
sizeof(
TCPHdr));
2667 tcph.
th_win = htons(5480);
2675 printf(
"failed in processing packet\n");
2684 printf(
"failed in processing packet\n");
2694 printf(
"failed in processing packet\n");
2699 printf(
"the TCP state should be TCP_ESTABLISHED\n");
2709 printf(
"failed in processing packet\n");
2714 printf(
"the TCP state should be TCP_CLOSE_WAIT\n");
2728 printf(
"failed in processing packet\n");
2739 printf(
"failed in processing packet\n");
2763 static int StreamTcpTest38(
void)
2769 uint8_t payload[128];
2773 memset(&f, 0,
sizeof(
Flow));
2776 memset(&tcph, 0,
sizeof(
TCPHdr));
2784 tcph.
th_win = htons(5480);
2791 printf(
"failed in processing packet in StreamTcpPacket\n");
2800 printf(
"failed in processing packet in StreamTcpPacket\n");
2810 printf(
"failed in processing packet in StreamTcpPacket\n");
2814 tcph.
th_ack = htonl(29847);
2824 printf(
"failed in processing packet in StreamTcpPacket\n");
2831 printf(
"the server.last_ack should be 1, but it is %" PRIu32
"\n",
2846 printf(
"failed in processing packet in StreamTcpPacket\n");
2851 printf(
"the server.next_seq should be 128, but it is %" PRIu32
"\n",
2856 tcph.
th_ack = htonl(256);
2866 printf(
"failed in processing packet in StreamTcpPacket\n");
2873 printf(
"the server.last_ack should be 1, but it is %" PRIu32
"\n",
2878 tcph.
th_ack = htonl(128);
2888 printf(
"failed in processing packet in StreamTcpPacket\n");
2895 printf(
"the server.last_ack should be 256, but it is %" PRIu32
"\n",
2917 static int StreamTcpTest39(
void)
2926 memset(&f, 0,
sizeof(
Flow));
2929 memset(&tcph, 0,
sizeof(
TCPHdr));
2937 tcph.
th_win = htons(5480);
2946 printf(
"failed in processing packet in StreamTcpPacket\n");
2955 printf(
"failed in processing packet in StreamTcpPacket\n");
2965 printf(
"failed in processing packet in StreamTcpPacket\n");
2979 printf(
"failed in processing packet in StreamTcpPacket\n");
2984 printf(
"the server.next_seq should be 4, but it is %" PRIu32
"\n",
2999 printf(
"failed in processing packet in StreamTcpPacket\n");
3006 printf(
"the server.last_ack should be 4, but it is %" PRIu32
"\n",
3021 printf(
"failed in processing packet in StreamTcpPacket\n");
3028 printf(
"the server.next_seq should be 7, but it is %" PRIu32
"\n",
3044 static int StreamTcpTest42(
void)
3057 memset(&f, 0,
sizeof(
Flow));
3060 memset(&tcph, 0,
sizeof(
TCPHdr));
3066 tcph.
th_win = htons(5480);
3071 tcph.
th_seq = htonl(100);
3078 tcph.
th_seq = htonl(500);
3079 tcph.
th_ack = htonl(101);
3087 tcph.
th_seq = htonl(1000);
3088 tcph.
th_ack = htonl(101);
3096 tcph.
th_ack = htonl(501);
3097 tcph.
th_seq = htonl(101);
3107 printf(
"state not TCP_ESTABLISHED: ");
3131 static int StreamTcpTest43(
void)
3144 memset(&f, 0,
sizeof(
Flow));
3147 memset(&tcph, 0,
sizeof(
TCPHdr));
3153 tcph.
th_win = htons(5480);
3158 tcph.
th_seq = htonl(100);
3165 tcph.
th_seq = htonl(500);
3166 tcph.
th_ack = htonl(101);
3174 tcph.
th_seq = htonl(1000);
3175 tcph.
th_ack = htonl(101);
3183 tcph.
th_ack = htonl(1001);
3184 tcph.
th_seq = htonl(101);
3194 printf(
"state not TCP_ESTABLISHED: ");
3218 static int StreamTcpTest44(
void)
3231 memset(&f, 0,
sizeof(
Flow));
3234 memset(&tcph, 0,
sizeof(
TCPHdr));
3240 tcph.
th_win = htons(5480);
3245 tcph.
th_seq = htonl(100);
3252 tcph.
th_seq = htonl(500);
3253 tcph.
th_ack = htonl(101);
3261 tcph.
th_seq = htonl(1000);
3262 tcph.
th_ack = htonl(101);
3270 tcph.
th_ack = htonl(3001);
3271 tcph.
th_seq = htonl(101);
3301 static int StreamTcpTest45(
void)
3314 memset(&f, 0,
sizeof(
Flow));
3317 memset(&tcph, 0,
sizeof(
TCPHdr));
3324 tcph.
th_win = htons(5480);
3329 tcph.
th_seq = htonl(100);
3336 tcph.
th_seq = htonl(500);
3337 tcph.
th_ack = htonl(101);
3345 tcph.
th_seq = htonl(1000);
3346 tcph.
th_ack = htonl(101);
3354 tcph.
th_seq = htonl(2000);
3355 tcph.
th_ack = htonl(101);
3363 tcph.
th_seq = htonl(3000);
3364 tcph.
th_ack = htonl(101);
3372 tcph.
th_ack = htonl(1001);
3373 tcph.
th_seq = htonl(101);
3383 printf(
"state not TCP_ESTABLISHED: ");
3407 UtRegisterTest(
"StreamTcpTest01 -- TCP session allocation", StreamTcpTest01);
3408 UtRegisterTest(
"StreamTcpTest02 -- TCP session deallocation", StreamTcpTest02);
3409 UtRegisterTest(
"StreamTcpTest03 -- SYN missed MidStream session", StreamTcpTest03);
3410 UtRegisterTest(
"StreamTcpTest04 -- SYN/ACK missed MidStream session", StreamTcpTest04);
3411 UtRegisterTest(
"StreamTcpTest05 -- 3WHS missed MidStream session", StreamTcpTest05);
3412 UtRegisterTest(
"StreamTcpTest06 -- FIN, RST message MidStream session", StreamTcpTest06);
3413 UtRegisterTest(
"StreamTcpTest07 -- PAWS invalid timestamp", StreamTcpTest07);
3414 UtRegisterTest(
"StreamTcpTest08 -- PAWS valid timestamp", StreamTcpTest08);
3415 UtRegisterTest(
"StreamTcpTest09 -- No Client Reassembly", StreamTcpTest09);
3416 UtRegisterTest(
"StreamTcpTest10 -- No missed packet Async stream", StreamTcpTest10);
3417 UtRegisterTest(
"StreamTcpTest11 -- SYN missed Async stream", StreamTcpTest11);
3418 UtRegisterTest(
"StreamTcpTest12 -- SYN/ACK missed Async stream", StreamTcpTest12);
3419 UtRegisterTest(
"StreamTcpTest13 -- opposite stream packets for Async "
3425 UtRegisterTest(
"StreamTcpTest14 -- setup OS policy", StreamTcpTest14);
3426 UtRegisterTest(
"StreamTcpTest15 -- setup OS policy", StreamTcpTest15);
3427 UtRegisterTest(
"StreamTcpTest16 -- setup OS policy", StreamTcpTest16);
3428 UtRegisterTest(
"StreamTcpTest17 -- setup OS policy", StreamTcpTest17);
3429 UtRegisterTest(
"StreamTcpTest18 -- setup OS policy", StreamTcpTest18);
3430 UtRegisterTest(
"StreamTcpTest19 -- setup OS policy", StreamTcpTest19);
3431 UtRegisterTest(
"StreamTcpTest20 -- setup OS policy", StreamTcpTest20);
3432 UtRegisterTest(
"StreamTcpTest21 -- setup OS policy", StreamTcpTest21);
3433 UtRegisterTest(
"StreamTcpTest22 -- setup OS policy", StreamTcpTest22);
3434 UtRegisterTest(
"StreamTcpTest23 -- stream memory leaks", StreamTcpTest23);
3435 UtRegisterTest(
"StreamTcpTest24 -- stream memory leaks", StreamTcpTest24);
3436 UtRegisterTest(
"StreamTcpTest25 -- test ecn/cwr sessions", StreamTcpTest25);
3437 UtRegisterTest(
"StreamTcpTest26 -- test ecn/cwr sessions", StreamTcpTest26);
3438 UtRegisterTest(
"StreamTcpTest27 -- test ecn/cwr sessions", StreamTcpTest27);
3439 UtRegisterTest(
"StreamTcpTest28 -- Memcap Test", StreamTcpTest28);
3444 UtRegisterTest(
"StreamTcpTest29 -- Badchecksum Reset Test", StreamTcpTest29, 1);
3445 UtRegisterTest(
"StreamTcpTest30 -- Badchecksum Overlap Test", StreamTcpTest30, 1);
3446 UtRegisterTest(
"StreamTcpTest31 -- MultipleSyns Test", StreamTcpTest31, 1);
3447 UtRegisterTest(
"StreamTcpTest32 -- Bogus CWR Test", StreamTcpTest32, 1);
3448 UtRegisterTest(
"StreamTcpTest33 -- RST-SYN Again Test", StreamTcpTest33, 1);
3449 UtRegisterTest(
"StreamTcpTest34 -- SYN-PUSH Test", StreamTcpTest34, 1);
3450 UtRegisterTest(
"StreamTcpTest35 -- SYN-URG Test", StreamTcpTest35, 1);
3451 UtRegisterTest(
"StreamTcpTest36 -- PUSH-URG Test", StreamTcpTest36, 1);
3453 UtRegisterTest(
"StreamTcpTest37 -- Out of order FIN Test", StreamTcpTest37);
3455 UtRegisterTest(
"StreamTcpTest38 -- validate ACK", StreamTcpTest38);
3456 UtRegisterTest(
"StreamTcpTest39 -- update next_seq", StreamTcpTest39);
3458 UtRegisterTest(
"StreamTcpTest42 -- SYN/ACK queue", StreamTcpTest42);
3459 UtRegisterTest(
"StreamTcpTest43 -- SYN/ACK queue", StreamTcpTest43);
3460 UtRegisterTest(
"StreamTcpTest44 -- SYN/ACK queue", StreamTcpTest44);
3461 UtRegisterTest(
"StreamTcpTest45 -- SYN/ACK queue", StreamTcpTest45);