1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- %description:
- Test TCPMsgBasedSendQueue, TCPMsgBasedRcvQueue classes
- - sending and receiving 2GB data
- %includes:
- #include "TCPQueueTesterFunctions.h"
- %global:
- using namespace ::inet::tcp;
- %activity:
- TCPMsgBasedSendQueue sendQueue;
- TCPMsgBasedSendQueue *sq = &sendQueue;
- sq->init(0);
- EV << sq->info() <<"\n";
- TCPMsgBasedRcvQueue rcvQueue;
- TCPMsgBasedRcvQueue *rq = &rcvQueue;
- uint32 seq = 0;
- rq->init(seq);
- EV << rq->info() <<"\n";
- enqueue(sq, "msg1", 500000000); // 0.. 500000000
- enqueue(sq, "msg2", 500000000); // 500000000..1000000000
- enqueue(sq, "msg3", 500000000); // 1000000000..1500000000
- enqueue(sq, "msg4", 500000000); // 1500000000..2000000000
- ulong seglen = 250000000;
- seq = sq->getBufferStartSeq();
- while (seqLess(seq, sq->getBufferEndSeq()))
- {
- ulong curlen = seqMin(seq+seglen, sq->getBufferEndSeq()) - seq;
- insertSegment(rq, createSegmentWithBytes(sq, seq, seq+curlen));
- seq += curlen;
- }
- seq = sq->getBufferStartSeq();
- for(;;)
- {
- uint32 eseq = seqMin(seq + seglen, sq->getBufferEndSeq());
- if (seqGE(seq, eseq))
- break;
- extractBytesUpTo(rq, eseq);
- discardUpTo(sq, eseq);
- seq = eseq;
- }
- EV << ".\n";
- %contains: stdout
- [0..0), 0 packets
- rcv_nxt=0 0 msgs
- SQ:enqueue("msg1", 500000000): --> [0..500000000), 1 packets
- SQ:enqueue("msg2", 500000000): --> [0..1000000000), 2 packets
- SQ:enqueue("msg3", 500000000): --> [0..1500000000), 3 packets
- SQ:enqueue("msg4", 500000000): --> [0..2000000000), 4 packets
- SQ:createSegmentWithBytes(0, 250000000):
- RQ:insertSeg [0..250000000) --> rcv_nxt=250000000 [0..250000000) 0 msgs
- SQ:createSegmentWithBytes(250000000, 500000000): msg1[0..500000000)
- RQ:insertSeg [250000000..500000000) --> rcv_nxt=500000000 [0..500000000) 1 msgs
- SQ:createSegmentWithBytes(500000000, 750000000):
- RQ:insertSeg [500000000..750000000) --> rcv_nxt=750000000 [0..750000000) 1 msgs
- SQ:createSegmentWithBytes(750000000, 1000000000): msg2[500000000..1000000000)
- RQ:insertSeg [750000000..1000000000) --> rcv_nxt=1000000000 [0..1000000000) 2 msgs
- SQ:createSegmentWithBytes(1000000000, 1250000000):
- RQ:insertSeg [1000000000..1250000000) --> rcv_nxt=1250000000 [0..1250000000) 2 msgs
- SQ:createSegmentWithBytes(1250000000, 1500000000): msg3[1000000000..1500000000)
- RQ:insertSeg [1250000000..1500000000) --> rcv_nxt=1500000000 [0..1500000000) 3 msgs
- SQ:createSegmentWithBytes(1500000000, 1750000000):
- RQ:insertSeg [1500000000..1750000000) --> rcv_nxt=1750000000 [0..1750000000) 3 msgs
- SQ:createSegmentWithBytes(1750000000, 2000000000): msg4[1500000000..2000000000)
- RQ:insertSeg [1750000000..2000000000) --> rcv_nxt=2000000000 [0..2000000000) 4 msgs
- RQ:extractUpTo(250000000): < > --> rcv_nxt=2000000000 [250000000..2000000000) 4 msgs
- SQ:discardUpTo(250000000): [250000000..2000000000), 4 packets
- RQ:extractUpTo(500000000): < < msg1: 500000000 bytes > > --> rcv_nxt=2000000000 [500000000..2000000000) 3 msgs
- SQ:discardUpTo(500000000): [500000000..2000000000), 3 packets
- RQ:extractUpTo(750000000): < > --> rcv_nxt=2000000000 [750000000..2000000000) 3 msgs
- SQ:discardUpTo(750000000): [750000000..2000000000), 3 packets
- RQ:extractUpTo(1000000000): < < msg2: 500000000 bytes > > --> rcv_nxt=2000000000 [1000000000..2000000000) 2 msgs
- SQ:discardUpTo(1000000000): [1000000000..2000000000), 2 packets
- RQ:extractUpTo(1250000000): < > --> rcv_nxt=2000000000 [1250000000..2000000000) 2 msgs
- SQ:discardUpTo(1250000000): [1250000000..2000000000), 2 packets
- RQ:extractUpTo(1500000000): < < msg3: 500000000 bytes > > --> rcv_nxt=2000000000 [1500000000..2000000000) 1 msgs
- SQ:discardUpTo(1500000000): [1500000000..2000000000), 1 packets
- RQ:extractUpTo(1750000000): < > --> rcv_nxt=2000000000 [1750000000..2000000000) 1 msgs
- SQ:discardUpTo(1750000000): [1750000000..2000000000), 1 packets
- RQ:extractUpTo(2000000000): < < msg4: 500000000 bytes > > --> rcv_nxt=2000000000 0 msgs
- SQ:discardUpTo(2000000000): [2000000000..2000000000), 0 packets
- .
|