equal
deleted
inserted
replaced
38 |
38 |
39 using namespace std; |
39 using namespace std; |
40 |
40 |
41 namespace ns3 { |
41 namespace ns3 { |
42 |
42 |
43 TcpSocket::TcpSocket (Ptr<Node> node, Ptr<TcpL4Protocol> tcp, Ptr<RttEstimator> rtt) |
43 TcpSocket::TcpSocket () |
44 : m_skipRetxResched (false), |
44 : m_skipRetxResched (false), |
45 m_dupAckCount (0), |
45 m_dupAckCount (0), |
46 m_endPoint (0), |
46 m_endPoint (0), |
47 m_node (node), |
47 m_node (0), |
48 m_tcp (tcp), |
48 m_tcp (0), |
49 m_errno (ERROR_NOTERROR), |
49 m_errno (ERROR_NOTERROR), |
50 m_shutdownSend (false), |
50 m_shutdownSend (false), |
51 m_shutdownRecv (false), |
51 m_shutdownRecv (false), |
52 m_connected (false), |
52 m_connected (false), |
53 m_state (CLOSED), |
53 m_state (CLOSED), |
59 m_highTxMark (0), |
59 m_highTxMark (0), |
60 m_highestRxAck (0), |
60 m_highestRxAck (0), |
61 m_lastRxAck (0), |
61 m_lastRxAck (0), |
62 m_nextRxSequence (0), |
62 m_nextRxSequence (0), |
63 m_pendingData (0), |
63 m_pendingData (0), |
64 m_rtt (rtt), |
64 m_rtt (0), |
65 m_lastMeasuredRtt (Seconds(0.0)) |
65 m_lastMeasuredRtt (Seconds(0.0)) |
66 { |
66 { |
67 NS_LOG_FUNCTION; |
67 NS_LOG_FUNCTION; |
68 NS_LOG_PARAMS (this<<node<<tcp); |
68 NS_LOG_PARAMS (this); |
69 |
69 |
70 Ptr<Tcp> t = node->GetObject<Tcp> (); |
|
71 m_segmentSize = t->GetDefaultSegSize (); |
|
72 m_rxWindowSize = t->GetDefaultAdvWin (); |
|
73 m_advertisedWindowSize = t->GetDefaultAdvWin (); |
|
74 m_cWnd = t->GetDefaultInitialCwnd () * m_segmentSize; |
|
75 m_ssThresh = t->GetDefaultSsThresh (); |
|
76 m_initialCWnd = t->GetDefaultInitialCwnd (); |
|
77 m_cnTimeout = Seconds (t->GetDefaultConnTimeout ()); |
|
78 m_cnCount = t->GetDefaultConnCount (); |
|
79 |
|
80 } |
70 } |
81 |
71 |
82 TcpSocket::~TcpSocket () |
72 TcpSocket::~TcpSocket () |
83 { |
73 { |
84 NS_LOG_FUNCTION; |
74 NS_LOG_FUNCTION; |
100 } |
90 } |
101 m_tcp = 0; |
91 m_tcp = 0; |
102 delete m_pendingData; //prevents leak |
92 delete m_pendingData; //prevents leak |
103 m_pendingData = 0; |
93 m_pendingData = 0; |
104 } |
94 } |
|
95 |
|
96 void |
|
97 TcpSocket::SetNode (Ptr<Node> node) |
|
98 { |
|
99 m_node = node; |
|
100 Ptr<Tcp> t = node->GetObject<Tcp> (); |
|
101 m_segmentSize = t->GetDefaultSegSize (); |
|
102 m_rxWindowSize = t->GetDefaultAdvWin (); |
|
103 m_advertisedWindowSize = t->GetDefaultAdvWin (); |
|
104 m_cWnd = t->GetDefaultInitialCwnd () * m_segmentSize; |
|
105 m_ssThresh = t->GetDefaultSsThresh (); |
|
106 m_initialCWnd = t->GetDefaultInitialCwnd (); |
|
107 m_cnTimeout = Seconds (t->GetDefaultConnTimeout ()); |
|
108 m_cnCount = t->GetDefaultConnCount (); |
|
109 } |
|
110 |
|
111 void |
|
112 TcpSocket::SetTcp (Ptr<TcpL4Protocol> tcp) |
|
113 { |
|
114 m_tcp = tcp; |
|
115 } |
|
116 void |
|
117 TcpSocket::SetRtt (Ptr<RttEstimator> rtt) |
|
118 { |
|
119 m_rtt = rtt; |
|
120 } |
|
121 |
105 |
122 |
106 enum Socket::SocketErrno |
123 enum Socket::SocketErrno |
107 TcpSocket::GetErrno (void) const |
124 TcpSocket::GetErrno (void) const |
108 { |
125 { |
109 NS_LOG_FUNCTION; |
126 NS_LOG_FUNCTION; |