123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- %description:
- Test TCPVirtualDataRcvQueue class
- - segments out of order
- - overlapped segments
- - sequence number turn out zero
- %includes:
- #include "TCPQueueTesterFunctions.h"
- %global:
- using namespace ::inet::tcp;
- %activity:
- TCPVirtualDataRcvQueue rcvQueue;
- TCPVirtualDataRcvQueue *q = &rcvQueue;
- q->init(1000);
- EV << q->info() <<"\n";
- insertSegment(q, 1000, 1100);
- insertSegment(q, 1000, 1100);
- insertSegment(q, 1020, 1099);
- insertSegment(q, 1100, 1200);
- insertSegment(q, 1199, 1300);
- insertSegment(q, 900, 1100);
- insertSegment(q, 800, 899);
- insertSegment(q, 899, 900);
- extractBytesUpTo(q, 500);
- extractBytesUpTo(q, 1000);
- extractBytesUpTo(q, 1100);
- extractBytesUpTo(q, 1299);
- extractBytesUpTo(q, 1300);
- insertSegment(q, 1500, 1600);
- insertSegment(q, 1700, 1800);
- insertSegment(q, 1601, 1699);
- insertSegment(q, 1600, 1601);
- insertSegment(q, 1699, 1700);
- insertSegment(q, 1300, 1400);
- insertSegment(q, 1350, 1400);
- insertSegment(q, 1400, 1450);
- insertSegment(q, 1450, 1500);
- insertSegment(q, 2000, 2100);
- insertSegment(q, 2200, 2300);
- insertSegment(q, 1950, 2000);
- insertSegment(q, 1800, 1950);
- insertSegment(q, 2150, 2200);
- insertSegment(q, 2120, 2149);
- insertSegment(q, 2149, 2200);
- insertSegment(q, 2100, 2119);
- insertSegment(q, 2100, 2200);
- extractBytesUpTo(q, 2000);
- extractBytesUpTo(q, 2300);
- ///////////////////////////////////////////////////////////////
- q->init(4294967000);
- EV << q->info() <<"\n";
- insertSegment(q, 4294967000, 4294967100);
- insertSegment(q, 4294967000, 4294967100);
- insertSegment(q, 4294967020, 4294967099);
- insertSegment(q, 4294967100, 4294967200);
- insertSegment(q, 4294967199, 4);
- insertSegment(q, 4294966900, 4294967100);
- extractBytesUpTo(q, 4294966500);
- extractBytesUpTo(q, 4294967000);
- extractBytesUpTo(q, 4294967100);
- extractBytesUpTo(q, 3);
- extractBytesUpTo(q, 4);
- insertSegment(q, 204, 304);
- insertSegment(q, 404, 504);
- insertSegment(q, 305, 403);
- insertSegment(q, 304, 305);
- insertSegment(q, 403, 404);
- insertSegment(q, 4, 104);
- insertSegment(q, 54, 104);
- insertSegment(q, 104, 154);
- insertSegment(q, 154, 204);
- insertSegment(q, 704, 804);
- insertSegment(q, 904, 1004);
- insertSegment(q, 654, 704);
- insertSegment(q, 504, 654);
- insertSegment(q, 854, 904);
- insertSegment(q, 824, 853);
- insertSegment(q, 853, 904);
- insertSegment(q, 804, 823);
- insertSegment(q, 804, 904);
- extractBytesUpTo(q, 704);
- extractBytesUpTo(q, 1004);
- EV << ".\n";
- %contains: stdout
- rcv_nxt=1000
- RQ:insertSeg [1000..1100) --> rcv_nxt=1100 [1000..1100)
- RQ:insertSeg [1000..1100) --> rcv_nxt=1100 [1000..1100)
- RQ:insertSeg [1020..1099) --> rcv_nxt=1100 [1000..1100)
- RQ:insertSeg [1100..1200) --> rcv_nxt=1200 [1000..1200)
- RQ:insertSeg [1199..1300) --> rcv_nxt=1300 [1000..1300)
- RQ:insertSeg [900..1100) --> rcv_nxt=1300 [900..1300)
- RQ:insertSeg [800..899) --> rcv_nxt=899 [800..899) [900..1300)
- RQ:insertSeg [899..900) --> rcv_nxt=1300 [800..1300)
- RQ:extractUpTo(500): --> rcv_nxt=1300 [800..1300)
- RQ:extractUpTo(1000): msglen=200 --> rcv_nxt=1300 [1000..1300)
- RQ:extractUpTo(1100): msglen=100 --> rcv_nxt=1300 [1100..1300)
- RQ:extractUpTo(1299): msglen=199 --> rcv_nxt=1300 [1299..1300)
- RQ:extractUpTo(1300): msglen=1 --> rcv_nxt=1300
- RQ:insertSeg [1500..1600) --> rcv_nxt=1300 [1500..1600)
- RQ:insertSeg [1700..1800) --> rcv_nxt=1300 [1500..1600) [1700..1800)
- RQ:insertSeg [1601..1699) --> rcv_nxt=1300 [1500..1600) [1601..1699) [1700..1800)
- RQ:insertSeg [1600..1601) --> rcv_nxt=1300 [1500..1699) [1700..1800)
- RQ:insertSeg [1699..1700) --> rcv_nxt=1300 [1500..1800)
- RQ:insertSeg [1300..1400) --> rcv_nxt=1400 [1300..1400) [1500..1800)
- RQ:insertSeg [1350..1400) --> rcv_nxt=1400 [1300..1400) [1500..1800)
- RQ:insertSeg [1400..1450) --> rcv_nxt=1450 [1300..1450) [1500..1800)
- RQ:insertSeg [1450..1500) --> rcv_nxt=1800 [1300..1800)
- RQ:insertSeg [2000..2100) --> rcv_nxt=1800 [1300..1800) [2000..2100)
- RQ:insertSeg [2200..2300) --> rcv_nxt=1800 [1300..1800) [2000..2100) [2200..2300)
- RQ:insertSeg [1950..2000) --> rcv_nxt=1800 [1300..1800) [1950..2100) [2200..2300)
- RQ:insertSeg [1800..1950) --> rcv_nxt=2100 [1300..2100) [2200..2300)
- RQ:insertSeg [2150..2200) --> rcv_nxt=2100 [1300..2100) [2150..2300)
- RQ:insertSeg [2120..2149) --> rcv_nxt=2100 [1300..2100) [2120..2149) [2150..2300)
- RQ:insertSeg [2149..2200) --> rcv_nxt=2100 [1300..2100) [2120..2300)
- RQ:insertSeg [2100..2119) --> rcv_nxt=2119 [1300..2119) [2120..2300)
- RQ:insertSeg [2100..2200) --> rcv_nxt=2300 [1300..2300)
- RQ:extractUpTo(2000): msglen=700 --> rcv_nxt=2300 [2000..2300)
- RQ:extractUpTo(2300): msglen=300 --> rcv_nxt=2300
- rcv_nxt=4294967000
- RQ:insertSeg [4294967000..4294967100) --> rcv_nxt=4294967100 [4294967000..4294967100)
- RQ:insertSeg [4294967000..4294967100) --> rcv_nxt=4294967100 [4294967000..4294967100)
- RQ:insertSeg [4294967020..4294967099) --> rcv_nxt=4294967100 [4294967000..4294967100)
- RQ:insertSeg [4294967100..4294967200) --> rcv_nxt=4294967200 [4294967000..4294967200)
- RQ:insertSeg [4294967199..4) --> rcv_nxt=4 [4294967000..4)
- RQ:insertSeg [4294966900..4294967100) --> rcv_nxt=4 [4294966900..4)
- RQ:extractUpTo(4294966500): --> rcv_nxt=4 [4294966900..4)
- RQ:extractUpTo(4294967000): msglen=100 --> rcv_nxt=4 [4294967000..4)
- RQ:extractUpTo(4294967100): msglen=100 --> rcv_nxt=4 [4294967100..4)
- RQ:extractUpTo(3): msglen=199 --> rcv_nxt=4 [3..4)
- RQ:extractUpTo(4): msglen=1 --> rcv_nxt=4
- RQ:insertSeg [204..304) --> rcv_nxt=4 [204..304)
- RQ:insertSeg [404..504) --> rcv_nxt=4 [204..304) [404..504)
- RQ:insertSeg [305..403) --> rcv_nxt=4 [204..304) [305..403) [404..504)
- RQ:insertSeg [304..305) --> rcv_nxt=4 [204..403) [404..504)
- RQ:insertSeg [403..404) --> rcv_nxt=4 [204..504)
- RQ:insertSeg [4..104) --> rcv_nxt=104 [4..104) [204..504)
- RQ:insertSeg [54..104) --> rcv_nxt=104 [4..104) [204..504)
- RQ:insertSeg [104..154) --> rcv_nxt=154 [4..154) [204..504)
- RQ:insertSeg [154..204) --> rcv_nxt=504 [4..504)
- RQ:insertSeg [704..804) --> rcv_nxt=504 [4..504) [704..804)
- RQ:insertSeg [904..1004) --> rcv_nxt=504 [4..504) [704..804) [904..1004)
- RQ:insertSeg [654..704) --> rcv_nxt=504 [4..504) [654..804) [904..1004)
- RQ:insertSeg [504..654) --> rcv_nxt=804 [4..804) [904..1004)
- RQ:insertSeg [854..904) --> rcv_nxt=804 [4..804) [854..1004)
- RQ:insertSeg [824..853) --> rcv_nxt=804 [4..804) [824..853) [854..1004)
- RQ:insertSeg [853..904) --> rcv_nxt=804 [4..804) [824..1004)
- RQ:insertSeg [804..823) --> rcv_nxt=823 [4..823) [824..1004)
- RQ:insertSeg [804..904) --> rcv_nxt=1004 [4..1004)
- RQ:extractUpTo(704): msglen=700 --> rcv_nxt=1004 [704..1004)
- RQ:extractUpTo(1004): msglen=300 --> rcv_nxt=1004
- .
|