#include <TCPConnection.h>
Inheritance diagram for TCPStateVariables:
TCPStateVariables is effectively a "struct" -- it only contains public data members. (Only declared as a class so that we can use cPolymorphic as base class and make it possible to inspect it in Tkenv.)
TCPStateVariables only contains variables needed to implement the "base" (RFC 793) TCP. More advanced TCP variants are encapsulated into TCPAlgorithm subclasses which can have their own state blocks, subclassed from TCPStateVariables. See TCPAlgorithm::createStateVariables().
Public Member Functions | |
TCPStateVariables () | |
virtual std::string | info () const |
virtual std::string | detailedInfo () const |
Public Attributes | |
bool | active |
bool | fork |
uint | snd_mss |
uint32 | snd_una |
uint32 | snd_nxt |
uint32 | snd_max |
uint | snd_wnd |
uint32 | snd_up |
uint32 | snd_wl1 |
uint32 | snd_wl2 |
uint32 | iss |
uint32 | rcv_nxt |
uint32 | rcv_wnd |
uint32 | rcv_up |
uint32 | irs |
short | dupacks |
int | syn_rexmit_count |
simtime_t | syn_rexmit_timeout |
bool | fin_ack_rcvd |
bool | send_fin |
uint32 | snd_fin_seq |
bool | fin_rcvd |
uint32 | rcv_fin_seq |
|
00032 { 00033 // set everything to 0 -- real init values will be set manually 00034 active = false; 00035 fork = false; 00036 snd_mss = -1; // will be set from configureStateVariables() 00037 snd_una = 0; 00038 snd_nxt = 0; 00039 snd_max = 0; 00040 snd_wnd = 0; 00041 snd_up = 0; 00042 snd_wl1 = 0; 00043 snd_wl2 = 0; 00044 iss = 0; 00045 rcv_nxt = 0; 00046 rcv_wnd = -1; // will be set from configureStateVariables() 00047 rcv_up = 0; 00048 irs = 0; 00049 00050 dupacks = 0; 00051 00052 syn_rexmit_count = 0; 00053 syn_rexmit_timeout = 0; 00054 00055 fin_ack_rcvd = false; 00056 send_fin = false; 00057 snd_fin_seq = 0; 00058 fin_rcvd = false; 00059 rcv_fin_seq = 0; 00060 00061 }
|
|
Reimplemented in TCPBaseAlgStateVariables, and TCPTahoeRenoFamilyStateVariables. 00076 { 00077 std::stringstream out; 00078 out << "active = " << active << "\n"; 00079 out << "snd_mss = " << snd_mss << "\n"; 00080 out << "snd_una = " << snd_una << "\n"; 00081 out << "snd_nxt = " << snd_nxt << "\n"; 00082 out << "snd_max = " << snd_max << "\n"; 00083 out << "snd_wnd = " << snd_wnd << "\n"; 00084 out << "snd_up = " << snd_up << "\n"; 00085 out << "snd_wl1 = " << snd_wl1 << "\n"; 00086 out << "snd_wl2 = " << snd_wl2 << "\n"; 00087 out << "iss = " << iss << "\n"; 00088 out << "rcv_nxt = " << rcv_nxt << "\n"; 00089 out << "rcv_wnd = " << rcv_wnd << "\n"; 00090 out << "rcv_up = " << rcv_up << "\n"; 00091 out << "irs = " << irs << "\n"; 00092 out << "fin_ack_rcvd = " << fin_ack_rcvd << "\n"; 00093 return out.str(); 00094 }
|
|
Reimplemented in TCPBaseAlgStateVariables, and TCPTahoeRenoFamilyStateVariables. 00064 { 00065 std::stringstream out; 00066 out << "snd_una=" << snd_una; 00067 out << " snd_nxt=" << snd_nxt; 00068 out << " snd_max=" << snd_max; 00069 out << " snd_wnd=" << snd_wnd; 00070 out << " rcv_nxt=" << rcv_nxt; 00071 out << " rcv_wnd=" << rcv_wnd; 00072 return out.str(); 00073 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|