22 #include "ns3/tcp-congestion-ops.h"
23 #include "ns3/tcp-socket-base.h"
24 #include "ns3/tcp-bic.h"
51 uint32_t segmentsAcked,
53 const std::string &name);
56 virtual void DoRun (
void);
68 void ExecuteTest (
void);
81 uint32_t segmentsAcked,
83 const std::string &name)
87 m_ssThresh (ssThresh),
88 m_segmentsAcked (segmentsAcked),
89 m_lastMaxCwnd (lastMaxCwnd)
96 m_state = CreateObject<TcpSocketState> ();
104 Simulator::Destroy ();
117 "Bic has not increment cWnd");
124 "Bic has modified cWnd");
137 cong->
GetAttribute (
"BinarySearchCoefficient", bsCoeff);
145 if (segCwnd < lowWindow.
Get ())
153 if (midPt > wMax.
Get ())
156 ackCnt = segCwnd / wMax.
Get ();
160 ackCnt = (segCwnd * smoothPart.
Get ()) / bsCoeff.
Get ();
165 ackCnt = segCwnd / midPt;
173 ackCnt = (segCwnd * smoothPart.
Get ()) / bsCoeff.
Get ();
183 ackCnt = segCwnd / wMax.
Get ();
211 uint32_t lastMaxCwnd,
212 const std::string &name);
215 virtual void DoRun (
void);
232 uint32_t lastMaxCwnd,
233 const std::string &name)
237 m_fastConvergence (fastConvergence),
238 m_lastMaxCwnd (lastMaxCwnd)
245 m_state = CreateObject<TcpSocketState> ();
252 Simulator::Destroy ();
271 uint32_t lastMaxCwnd, ssThresh;
275 lastMaxCwnd = beta.
Get () * segCwnd;
277 "Bic has not updated lastMaxCwnd during fast convergence");
281 lastMaxCwnd = segCwnd;
283 "Bic has not reset lastMaxCwnd to current cwnd (in segments)");
287 if (segCwnd < lowWindow.
Get ())
291 "Bic has not updated ssThresh when cWnd less than lowWindow");
297 "Bic has not updated ssThresh when cWnd greater than lowWindow");
314 "Bic increment test: under lowCwnd & enough ACKs received"),
317 "Bic increment test: under lowCwnd but not enough ACKs received"),
320 "Bic increment test: linear increase when distance exceeds S_max"),
323 "Bic increment test: binary search increase with smooth part"),
326 "Bic increment test: binary search increase"),
329 "Bic increment test: slow start AMD linear increase"),
332 "Bic increment test: slow start but not enough ACKs received"),
335 "Bic increment test: linear incrase but not enough ACKs received"),
339 "Bic decrement test: fast convergence & cwnd less than lowWindow"),
342 "Bic decrement test: not in fast convergence & cwnd less than lowWindow"),
345 "Bic decrement test: not in fast convergence & cwnd greater than lowWindow"),