LEFT | RIGHT |
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2010 Adrian Sai-wah Tam | 3 * Copyright (c) 2010 Adrian Sai-wah Tam |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 virtual void NewAck (SequenceNumber32 const& seq); // Inc cwnd and call NewAck
() of parent | 62 virtual void NewAck (SequenceNumber32 const& seq); // Inc cwnd and call NewAck
() of parent |
63 virtual void DupAck (const TcpHeader& t, uint32_t count); // Halving cwnd and
reset nextTxSequence | 63 virtual void DupAck (const TcpHeader& t, uint32_t count); // Halving cwnd and
reset nextTxSequence |
64 virtual void Retransmit (void); // Exit fast recovery upon retransmit timeout | 64 virtual void Retransmit (void); // Exit fast recovery upon retransmit timeout |
65 | 65 |
66 // Implementing ns3::TcpSocket -- Attribute get/set | 66 // Implementing ns3::TcpSocket -- Attribute get/set |
67 virtual void SetSegSize (uint32_t size); | 67 virtual void SetSegSize (uint32_t size); |
68 virtual void SetInitialSSThresh (uint32_t threshold); | 68 virtual void SetInitialSSThresh (uint32_t threshold); |
69 virtual uint32_t GetInitialSSThresh (void) const; | 69 virtual uint32_t GetInitialSSThresh (void) const; |
70 virtual void SetInitialCwnd (uint32_t cwnd); | 70 virtual void SetInitialCwnd (uint32_t cwnd); |
71 virtual uint32_t GetInitialCwnd (void) const; | 71 virtual uint32_t GetInitialCwnd (void) const; |
| 72 virtual void ScaleSsThresh (uint8_t scaleFactor); |
72 | 73 |
73 /** | 74 /** |
74 * \brief Set the congestion window when connection starts | 75 * \brief Set the congestion window when connection starts |
75 */ | 76 */ |
76 void InitializeCwnd (void); | 77 void InitializeCwnd (void); |
77 | 78 |
78 protected: | 79 protected: |
79 TracedValue<uint32_t> m_cWnd; //!< Congestion window | 80 TracedValue<uint32_t> m_cWnd; //!< Congestion window |
80 TracedValue<uint32_t> m_ssThresh; //!< Slow Start Threshold | 81 TracedValue<uint32_t> m_ssThresh; //!< Slow Start Threshold |
81 uint32_t m_initialCWnd; //!< Initial cWnd value | 82 uint32_t m_initialCWnd; //!< Initial cWnd value |
82 uint32_t m_initialSsThresh; //!< Initial Slow Start Threshold v
alue | 83 uint32_t m_initialSsThresh; //!< Initial Slow Start Threshold v
alue |
83 SequenceNumber32 m_recover; //!< Previous highest Tx seqnum for fas
t recovery | 84 SequenceNumber32 m_recover; //!< Previous highest Tx seqnum for fas
t recovery |
84 uint32_t m_retxThresh; //!< Fast Retransmit threshold | 85 uint32_t m_retxThresh; //!< Fast Retransmit threshold |
85 bool m_inFastRec; //!< currently in fast recovery | 86 bool m_inFastRec; //!< currently in fast recovery |
86 bool m_limitedTx; //!< perform limited transmit | 87 bool m_limitedTx; //!< perform limited transmit |
87 }; | 88 }; |
88 | 89 |
89 } // namespace ns3 | 90 } // namespace ns3 |
90 | 91 |
91 #endif /* TCP_NEWRENO_H */ | 92 #endif /* TCP_NEWRENO_H */ |
LEFT | RIGHT |