View | Details | Raw Unified | Return to bug 129
Collapse All | Expand All

(-)a/src/internet-node/tcp-header.cc (-1 / +1 lines)
 Lines 44-50   TcpHeader::TcpHeader () Link Here 
44
    m_ackNumber (0),
44
    m_ackNumber (0),
45
    m_length (5),
45
    m_length (5),
46
    m_flags (0),
46
    m_flags (0),
47
    m_windowSize (Tcp::defaultAdvWin.GetValue ()),
47
    m_windowSize (0),
48
    m_checksum (0),
48
    m_checksum (0),
49
    m_urgentPointer (0)
49
    m_urgentPointer (0)
50
{
50
{
(-)a/src/internet-node/tcp-socket.cc (-8 / +19 lines)
 Lines 24-29    Link Here 
24
#include "ns3/log.h"
24
#include "ns3/log.h"
25
#include "ns3/ipv4.h"
25
#include "ns3/ipv4.h"
26
#include "tcp-socket.h"
26
#include "tcp-socket.h"
27
#include "tcp-impl.h"
27
#include "tcp-l4-protocol.h"
28
#include "tcp-l4-protocol.h"
28
#include "ipv4-end-point.h"
29
#include "ipv4-end-point.h"
29
#include "ipv4-l4-demux.h"
30
#include "ipv4-l4-demux.h"
 Lines 62-80   TcpSocket::TcpSocket (Ptr<Node> node, Pt Link Here 
62
    m_lastRxAck (0),
63
    m_lastRxAck (0),
63
    m_nextRxSequence (0),
64
    m_nextRxSequence (0),
64
    m_pendingData (0),
65
    m_pendingData (0),
65
    m_segmentSize (Tcp::defaultSegSize.GetValue()),
66
    m_segmentSize (0),
66
    m_rxWindowSize (Tcp::defaultAdvWin.GetValue()),
67
    m_rxWindowSize (0),
67
    m_advertisedWindowSize (Tcp::defaultAdvWin.GetValue()),
68
    m_advertisedWindowSize (0),
68
    m_cWnd (Tcp::defaultInitialCWnd.GetValue() * m_segmentSize),
69
    m_cWnd (0),
69
    m_ssThresh (Tcp::defaultSSThresh.GetValue()),
70
    m_ssThresh (0),
70
    m_initialCWnd (Tcp::defaultInitialCWnd.GetValue()),
71
    m_initialCWnd (0),
71
    m_rtt (RttEstimator::CreateDefault()),
72
    m_rtt (RttEstimator::CreateDefault()),
72
    m_lastMeasuredRtt (Seconds(0.0)),
73
    m_lastMeasuredRtt (Seconds(0.0)),
73
    m_cnTimeout (Seconds (Tcp::defaultConnTimeout.GetValue ())),
74
    m_cnTimeout (Seconds (0.0)),
74
    m_cnCount (Tcp::defaultConnCount.GetValue ())
75
    m_cnCount (0)
75
{
76
{
76
  NS_LOG_FUNCTION;
77
  NS_LOG_FUNCTION;
77
  NS_LOG_PARAMS (this<<node<<tcp);
78
  NS_LOG_PARAMS (this<<node<<tcp);
79
  // Set default values from Tcp socket factory
80
  Ptr<TcpImpl> tcpimpl = node->GetObject<TcpImpl> ();
81
  m_segmentSize = tcpimpl->GetDefaultSegSize ();
82
  m_rxWindowSize = tcpimpl->GetDefaultAdvWin ();
83
  m_advertisedWindowSize = tcpimpl->GetDefaultAdvWin ();
84
  m_cWnd = tcpimpl->GetDefaultInitialCWnd () * m_segmentSize;
85
  m_ssThresh = tcpimpl->GetDefaultSSThresh ();
86
  m_initialCWnd = tcpimpl->GetDefaultInitialCWnd ();
87
  m_cnTimeout = Seconds (tcpimpl->GetDefaultConnTimeout ());
88
  m_cnCount = tcpimpl->GetDefaultConnCount ();
78
}
89
}
79
90
80
TcpSocket::~TcpSocket ()
91
TcpSocket::~TcpSocket ()
(-)a/src/node/tcp.cc (-8 / +99 lines)
 Lines 21-62    Link Here 
21
21
22
namespace ns3 {
22
namespace ns3 {
23
23
24
NumericDefaultValue<uint32_t>       Tcp::defaultSegSize
24
static NumericDefaultValue<uint32_t>       g_defaultSegSize
25
("TcpDefaultSegmentSize",
25
("TcpDefaultSegmentSize",
26
"Default TCP maximum segment size in bytes (may be adjusted based on MTU discovery)",
26
"Default TCP maximum segment size in bytes (may be adjusted based on MTU discovery)",
27
536);
27
536);
28
28
29
NumericDefaultValue<uint32_t>       Tcp::defaultAdvWin
29
static NumericDefaultValue<uint32_t>       g_defaultAdvWin
30
("TcpDefaultAdvertisedWindowSize",
30
("TcpDefaultAdvertisedWindowSize",
31
"Default TCP advertised window size (bytes)",
31
"Default TCP advertised window size (bytes)",
32
0xffff);
32
0xffff);
33
33
34
NumericDefaultValue<uint32_t>       Tcp::defaultSSThresh
34
static NumericDefaultValue<uint32_t>       g_defaultSSThresh
35
("TcpDefaultSlowStartThreshold",
35
("TcpDefaultSlowStartThreshold",
36
"Default TCP slow start threshold (bytes)",
36
"Default TCP slow start threshold (bytes)",
37
0xffff);
37
0xffff);
38
38
39
NumericDefaultValue<uint32_t>       Tcp::defaultTxBuffer
39
static NumericDefaultValue<uint32_t>       g_defaultTxBuffer
40
("TcpDefaultTxBufferSize",
40
("TcpDefaultTxBufferSize",
41
"Default TCP maximum transmit buffer size (bytes)",
41
"Default TCP maximum transmit buffer size (bytes)",
42
0xffffffffl);
42
0xffffffffl);
43
43
44
NumericDefaultValue<uint32_t>       Tcp::defaultRxBuffer
44
static NumericDefaultValue<uint32_t>       g_defaultRxBuffer
45
("TcpDefaultRxBufferSize",
45
("TcpDefaultRxBufferSize",
46
"Default TCP maximum receive buffer size (bytes)",
46
"Default TCP maximum receive buffer size (bytes)",
47
0xffffffffl);
47
0xffffffffl);
48
48
49
NumericDefaultValue<uint32_t>       Tcp::defaultInitialCWnd
49
static NumericDefaultValue<uint32_t>       g_defaultInitialCWnd
50
("TcpDefaultInitialCongestionWindowSize",
50
("TcpDefaultInitialCongestionWindowSize",
51
"Default TCP initial congestion window size (segments)",
51
"Default TCP initial congestion window size (segments)",
52
1);
52
1);
53
53
54
NumericDefaultValue<uint32_t>       Tcp::defaultConnTimeout
54
static NumericDefaultValue<uint32_t>       g_defaultConnTimeout
55
("TcpDefaultConnTimeout",
55
("TcpDefaultConnTimeout",
56
"Default TCP retransmission timeout when opening connection (seconds)",
56
"Default TCP retransmission timeout when opening connection (seconds)",
57
6);
57
6);
58
58
59
NumericDefaultValue<uint32_t>       Tcp::defaultConnCount
59
static NumericDefaultValue<uint32_t>       g_defaultConnCount
60
("TcpDefaultConnCount",
60
("TcpDefaultConnCount",
61
"Default number of connection attempts (SYN retransmissions) before returning failure",
61
"Default number of connection attempts (SYN retransmissions) before returning failure",
62
3);
62
3);
 Lines 71-75   Tcp::GetTypeId (void) Link Here 
71
  return tid;
71
  return tid;
72
}
72
}
73
73
74
Tcp::Tcp (void) : 
75
  m_defaultSegSize (g_defaultSegSize.GetValue ()),
76
  m_defaultAdvWin (g_defaultAdvWin.GetValue ()),
77
  m_defaultSSThresh (g_defaultSSThresh.GetValue ()),
78
  m_defaultTxBuffer (g_defaultTxBuffer.GetValue ()), 
79
  m_defaultRxBuffer (g_defaultRxBuffer.GetValue()), 
80
  m_defaultInitialCWnd (g_defaultInitialCWnd.GetValue()),
81
  m_defaultConnTimeout (g_defaultConnTimeout.GetValue()),  
82
  m_defaultConnCount (g_defaultConnCount.GetValue())  
83
{}
84
    
85
void 
86
Tcp::SetDefaultSegSize (uint32_t segSize)
87
{
88
  m_defaultSegSize = segSize;
89
}
90
uint32_t 
91
Tcp::GetDefaultSegSize (void)
92
{
93
  return m_defaultSegSize;
94
}
95
void 
96
Tcp::SetDefaultAdvWin (uint32_t advWin)
97
{
98
  m_defaultAdvWin = advWin;
99
}
100
uint32_t 
101
Tcp::GetDefaultAdvWin (void)
102
{
103
  return m_defaultAdvWin;
104
}
105
void 
106
Tcp::SetDefaultSSThresh (uint32_t ssThresh)
107
{
108
  m_defaultSSThresh = ssThresh;
109
}
110
uint32_t 
111
Tcp::GetDefaultSSThresh (void)
112
{
113
  return m_defaultSSThresh;
114
}
115
void 
116
Tcp::SetDefaultTxBuffer (uint32_t txBuffer)
117
{
118
  m_defaultTxBuffer = txBuffer;
119
}
120
uint32_t 
121
Tcp::GetDefaultTxBuffer (void)
122
{
123
  return m_defaultTxBuffer;
124
}
125
void 
126
Tcp::SetDefaultRxBuffer (uint32_t rxBuffer)
127
{
128
  m_defaultRxBuffer = rxBuffer;
129
}
130
uint32_t 
131
Tcp::GetDefaultRxBuffer (void)
132
{
133
  return m_defaultRxBuffer;
134
}
135
void 
136
Tcp::SetDefaultInitialCWnd (uint32_t initialCWnd)
137
{
138
  m_defaultInitialCWnd = initialCWnd;
139
}
140
uint32_t 
141
Tcp::GetDefaultInitialCWnd (void)
142
{
143
  return m_defaultInitialCWnd;
144
}
145
void 
146
Tcp::SetDefaultConnTimeout (uint32_t connTimeout)
147
{
148
  m_defaultConnTimeout = connTimeout;
149
}
150
uint32_t 
151
Tcp::GetDefaultConnTimeout (void)
152
{
153
  return m_defaultConnTimeout;
154
}
155
void 
156
Tcp::SetDefaultConnCount (uint32_t connCount)
157
{
158
  m_defaultConnCount = connCount;
159
}
160
uint32_t 
161
Tcp::GetDefaultConnCount (void)
162
{
163
  return m_defaultConnCount;
164
}
74
165
75
} // namespace ns3
166
} // namespace ns3
(-)a/src/node/tcp.h (-8 / +29 lines)
 Lines 46-62   public: Link Here 
46
public:
46
public:
47
  static TypeId GetTypeId (void);
47
  static TypeId GetTypeId (void);
48
48
49
  Tcp (void);
50
49
  virtual Ptr<Socket> CreateSocket (void) = 0;
51
  virtual Ptr<Socket> CreateSocket (void) = 0;
50
52
51
public:
53
public:
52
  static NumericDefaultValue<uint32_t>       defaultSegSize;  
54
  // Default values for TCP sockets
53
  static NumericDefaultValue<uint32_t>       defaultAdvWin;   
55
  void SetDefaultSegSize (uint32_t segSize);
54
  static NumericDefaultValue<uint32_t>       defaultSSThresh; 
56
  uint32_t GetDefaultSegSize (void);
55
  static NumericDefaultValue<uint32_t>       defaultTxBuffer; 
57
  void SetDefaultAdvWin (uint32_t advWin);
56
  static NumericDefaultValue<uint32_t>       defaultRxBuffer; 
58
  uint32_t GetDefaultAdvWin (void);
57
  static NumericDefaultValue<uint32_t>       defaultInitialCWnd; 
59
  void SetDefaultSSThresh (uint32_t ssThresh);
58
  static NumericDefaultValue<uint32_t>       defaultConnTimeout;  
60
  uint32_t GetDefaultSSThresh (void);
59
  static NumericDefaultValue<uint32_t>       defaultConnCount;  
61
  void SetDefaultTxBuffer (uint32_t txBuffer);
62
  uint32_t GetDefaultTxBuffer (void);
63
  void SetDefaultRxBuffer (uint32_t rxBuffer);
64
  uint32_t GetDefaultRxBuffer (void);
65
  void SetDefaultInitialCWnd (uint32_t initialCWnd);
66
  uint32_t GetDefaultInitialCWnd (void);
67
  void SetDefaultConnTimeout (uint32_t connTimeout);
68
  uint32_t GetDefaultConnTimeout (void);
69
  void SetDefaultConnCount (uint32_t connCount);
70
  uint32_t GetDefaultConnCount (void);
71
72
private:
73
  uint32_t m_defaultSegSize;
74
  uint32_t m_defaultAdvWin;   
75
  uint32_t m_defaultSSThresh; 
76
  uint32_t m_defaultTxBuffer; 
77
  uint32_t m_defaultRxBuffer; 
78
  uint32_t m_defaultInitialCWnd; 
79
  uint32_t m_defaultConnTimeout;  
80
  uint32_t m_defaultConnCount;  
60
81
61
};
82
};
62
83
(-)a/examples/tcp-large-transfer-errors.cc (+3 lines)
 Lines 142-147   int main (int argc, char *argv[]) Link Here 
142
  // Bind()s at run-time, via command-line arguments
142
  // Bind()s at run-time, via command-line arguments
143
  CommandLine::Parse (argc, argv);
143
  CommandLine::Parse (argc, argv);
144
144
145
  // Force deterministic loss pattern on this example script
146
  RandomVariable::UseGlobalSeed(1,2,3,4,5,6);
147
145
  // Here, we will explicitly create three nodes.  In more sophisticated
148
  // Here, we will explicitly create three nodes.  In more sophisticated
146
  // topologies, we could configure a node factory.
149
  // topologies, we could configure a node factory.
147
  Ptr<Node> n0 = Create<InternetNode> ();
150
  Ptr<Node> n0 = Create<InternetNode> ();
(-)a/src/internet-node/tcp-socket.cc (+1 lines)
 Lines 745-750   bool TcpSocket::SendPendingData (bool wi Link Here 
745
      header.SetAckNumber (m_nextRxSequence);
745
      header.SetAckNumber (m_nextRxSequence);
746
      header.SetSourcePort (m_endPoint->GetLocalPort());
746
      header.SetSourcePort (m_endPoint->GetLocalPort());
747
      header.SetDestinationPort (m_defaultPort);
747
      header.SetDestinationPort (m_defaultPort);
748
      header.SetWindowSize (m_advertisedWindowSize);
748
      if (m_shutdownSend)
749
      if (m_shutdownSend)
749
        {
750
        {
750
          m_errno = ERROR_SHUTDOWN;
751
          m_errno = ERROR_SHUTDOWN;

Return to bug 129