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

(-)a/RELEASE_NOTES (+1 lines)
 Lines 93-98   Bugs fixed Link Here 
93
- Bug 2454 - DsrRouting::NotifyDataReceipt is also triggered for wifi management packets
93
- Bug 2454 - DsrRouting::NotifyDataReceipt is also triggered for wifi management packets
94
- Bug 2468 - Simulation with A-MPDU enabled hangs when fragmentation threshold is smaller than MSDU size
94
- Bug 2468 - Simulation with A-MPDU enabled hangs when fragmentation threshold is smaller than MSDU size
95
- Bug 2469 - send Block Ack Request upon short/long retry failures
95
- Bug 2469 - send Block Ack Request upon short/long retry failures
96
- Bug 2474 - UdpEchoClient does not call Connect with addresses of type Inet[6]SocketAddress
96
- Bug 2479 - Flow monitor does not a have a "DROP_QUEUE_DISC" drop reason
97
- Bug 2479 - Flow monitor does not a have a "DROP_QUEUE_DISC" drop reason
97
98
98
Known issues
99
Known issues
(-)a/src/applications/helper/udp-client-server-helper.cc (-21 / +4 lines)
 Lines 75-92   UdpClientHelper::UdpClientHelper (Address address, uint16_t port) Link Here 
75
  SetAttribute ("RemotePort", UintegerValue (port));
75
  SetAttribute ("RemotePort", UintegerValue (port));
76
}
76
}
77
77
78
UdpClientHelper::UdpClientHelper (Ipv4Address address, uint16_t port)
78
UdpClientHelper::UdpClientHelper (Address address)
79
{
79
{
80
  m_factory.SetTypeId (UdpClient::GetTypeId ());
80
  m_factory.SetTypeId (UdpClient::GetTypeId ());
81
  SetAttribute ("RemoteAddress", AddressValue (Address(address)));
81
  SetAttribute ("RemoteAddress", AddressValue (address));
82
  SetAttribute ("RemotePort", UintegerValue (port));
83
}
84
85
UdpClientHelper::UdpClientHelper (Ipv6Address address, uint16_t port)
86
{
87
  m_factory.SetTypeId (UdpClient::GetTypeId ());
88
  SetAttribute ("RemoteAddress", AddressValue (Address(address)));
89
  SetAttribute ("RemotePort", UintegerValue (port));
90
}
82
}
91
83
92
void
84
void
 Lines 121-139   UdpTraceClientHelper::UdpTraceClientHelper (Address address, uint16_t port, std: Link Here 
121
  SetAttribute ("TraceFilename", StringValue (filename));
113
  SetAttribute ("TraceFilename", StringValue (filename));
122
}
114
}
123
115
124
UdpTraceClientHelper::UdpTraceClientHelper (Ipv4Address address, uint16_t port, std::string filename)
116
UdpTraceClientHelper::UdpTraceClientHelper (Address address, std::string filename)
125
{
117
{
126
  m_factory.SetTypeId (UdpTraceClient::GetTypeId ());
118
  m_factory.SetTypeId (UdpTraceClient::GetTypeId ());
127
  SetAttribute ("RemoteAddress", AddressValue (Address (address)));
119
  SetAttribute ("RemoteAddress", AddressValue (address));
128
  SetAttribute ("RemotePort", UintegerValue (port));
129
  SetAttribute ("TraceFilename", StringValue (filename));
130
}
131
132
UdpTraceClientHelper::UdpTraceClientHelper (Ipv6Address address, uint16_t port, std::string filename)
133
{
134
  m_factory.SetTypeId (UdpTraceClient::GetTypeId ());
135
  SetAttribute ("RemoteAddress", AddressValue (Address (address)));
136
  SetAttribute ("RemotePort", UintegerValue (port));
137
  SetAttribute ("TraceFilename", StringValue (filename));
120
  SetAttribute ("TraceFilename", StringValue (filename));
138
}
121
}
139
122
(-)a/src/applications/helper/udp-client-server-helper.h (-30 / +18 lines)
 Lines 103-133   public: Link Here 
103
103
104
  /**
104
  /**
105
   *  Create UdpClientHelper which will make life easier for people trying
105
   *  Create UdpClientHelper which will make life easier for people trying
106
   * to set up simulations with udp-client-server.
106
   * to set up simulations with udp-client-server. Use this variant with
107
   *
107
   * addresses that do not include a port value (e.g., Ipv4Address and
108
   * \param ip The IPv4 address of the remote UDP server
108
   * Ipv6Address).
109
   * \param port The port number of the remote UDP server
110
   */
111
112
  UdpClientHelper (Ipv4Address ip, uint16_t port);
113
  /**
114
   *  Create UdpClientHelper which will make life easier for people trying
115
   * to set up simulations with udp-client-server.
116
   *
109
   *
117
   * \param ip The IPv6 address of the remote UDP server
110
   * \param ip The IP address of the remote UDP server
118
   * \param port The port number of the remote UDP server
111
   * \param port The port number of the remote UDP server
119
   */
112
   */
120
113
121
  UdpClientHelper (Ipv6Address ip, uint16_t port);
114
  UdpClientHelper (Address ip, uint16_t port);
122
  /**
115
  /**
123
   *  Create UdpClientHelper which will make life easier for people trying
116
   *  Create UdpClientHelper which will make life easier for people trying
124
   * to set up simulations with udp-client-server.
117
   * to set up simulations with udp-client-server. Use this variant with
118
   * addresses that do include a port value (e.g., InetSocketAddress and
119
   * Inet6SocketAddress).
125
   *
120
   *
126
   * \param ip The IP address of the remote UDP server
121
   * \param addr The address of the remote UDP server
127
   * \param port The port number of the remote UDP server
128
   */
122
   */
129
123
130
  UdpClientHelper (Address ip, uint16_t port);
124
  UdpClientHelper (Address addr);
131
125
132
  /**
126
  /**
133
   * Record an attribute to be set in each Application after it is is created.
127
   * Record an attribute to be set in each Application after it is is created.
 Lines 173-179   public: Link Here 
173
167
174
  /**
168
  /**
175
   * Create UdpTraceClientHelper which will make life easier for people trying
169
   * Create UdpTraceClientHelper which will make life easier for people trying
176
   * to set up simulations with udp-client-server.
170
   * to set up simulations with udp-client-server. Use this variant with
171
   * addresses that do not include a port value (e.g., Ipv4Address and
172
   * Ipv6Address).
177
   *
173
   *
178
   * \param ip The IP address of the remote UDP server
174
   * \param ip The IP address of the remote UDP server
179
   * \param port The port number of the remote UDP server
175
   * \param port The port number of the remote UDP server
 Lines 182-203   public: Link Here 
182
  UdpTraceClientHelper (Address ip, uint16_t port, std::string filename);
178
  UdpTraceClientHelper (Address ip, uint16_t port, std::string filename);
183
  /**
179
  /**
184
   * Create UdpTraceClientHelper which will make life easier for people trying
180
   * Create UdpTraceClientHelper which will make life easier for people trying
185
   * to set up simulations with udp-client-server.
181
   * to set up simulations with udp-client-server. Use this variant with
186
   *
182
   * addresses that do include a port value (e.g., InetSocketAddress and
187
   * \param ip The IPv4 address of the remote UDP server
183
   * Inet6SocketAddress).
188
   * \param port The port number of the remote UDP server
189
   * \param filename the file from which packet traces will be loaded
190
   */
191
  UdpTraceClientHelper (Ipv4Address ip, uint16_t port, std::string filename);
192
  /**
193
   * Create UdpTraceClientHelper which will make life easier for people trying
194
   * to set up simulations with udp-client-server.
195
   *
184
   *
196
   * \param ip The IPv6 address of the remote UDP server
185
   * \param addr The address of the remote UDP server
197
   * \param port The port number of the remote UDP server
198
   * \param filename the file from which packet traces will be loaded
186
   * \param filename the file from which packet traces will be loaded
199
   */
187
   */
200
  UdpTraceClientHelper (Ipv6Address ip, uint16_t port, std::string filename);
188
  UdpTraceClientHelper (Address addr, std::string filename);
201
189
202
  /**
190
  /**
203
    * Record an attribute to be set in each Application after it is is created.
191
    * Record an attribute to be set in each Application after it is is created.
(-)a/src/applications/helper/udp-echo-helper.cc (-10 / +2 lines)
 Lines 80-97   UdpEchoClientHelper::UdpEchoClientHelper (Address address, uint16_t port) Link Here 
80
  SetAttribute ("RemotePort", UintegerValue (port));
80
  SetAttribute ("RemotePort", UintegerValue (port));
81
}
81
}
82
82
83
UdpEchoClientHelper::UdpEchoClientHelper (Ipv4Address address, uint16_t port)
83
UdpEchoClientHelper::UdpEchoClientHelper (Address address)
84
{
84
{
85
  m_factory.SetTypeId (UdpEchoClient::GetTypeId ());
85
  m_factory.SetTypeId (UdpEchoClient::GetTypeId ());
86
  SetAttribute ("RemoteAddress", AddressValue (Address(address)));
86
  SetAttribute ("RemoteAddress", AddressValue (address));
87
  SetAttribute ("RemotePort", UintegerValue (port));
88
}
89
90
UdpEchoClientHelper::UdpEchoClientHelper (Ipv6Address address, uint16_t port)
91
{
92
  m_factory.SetTypeId (UdpEchoClient::GetTypeId ());
93
  SetAttribute ("RemoteAddress", AddressValue (Address(address)));
94
  SetAttribute ("RemotePort", UintegerValue (port));
95
}
87
}
96
88
97
void 
89
void 
(-)a/src/applications/helper/udp-echo-helper.h (-13 / +6 lines)
 Lines 108-114   class UdpEchoClientHelper Link Here 
108
public:
108
public:
109
  /**
109
  /**
110
   * Create UdpEchoClientHelper which will make life easier for people trying
110
   * Create UdpEchoClientHelper which will make life easier for people trying
111
   * to set up simulations with echos.
111
   * to set up simulations with echos. Use this variant with addresses that do
112
   * not include a port value (e.g., Ipv4Address and Ipv6Address).
112
   *
113
   *
113
   * \param ip The IP address of the remote udp echo server
114
   * \param ip The IP address of the remote udp echo server
114
   * \param port The port number of the remote udp echo server
115
   * \param port The port number of the remote udp echo server
 Lines 116-135   public: Link Here 
116
  UdpEchoClientHelper (Address ip, uint16_t port);
117
  UdpEchoClientHelper (Address ip, uint16_t port);
117
  /**
118
  /**
118
   * Create UdpEchoClientHelper which will make life easier for people trying
119
   * Create UdpEchoClientHelper which will make life easier for people trying
119
   * to set up simulations with echos.
120
   * to set up simulations with echos. Use this variant with addresses that do
121
   * include a port value (e.g., InetSocketAddress and Inet6SocketAddress).
120
   *
122
   *
121
   * \param ip The IPv4 address of the remote udp echo server
123
   * \param addr The address of the remote udp echo server
122
   * \param port The port number of the remote udp echo server
123
   */
124
  UdpEchoClientHelper (Ipv4Address ip, uint16_t port);
125
  /**
126
   * Create UdpEchoClientHelper which will make life easier for people trying
127
   * to set up simulations with echos.
128
   *
129
   * \param ip The IPv6 address of the remote udp echo server
130
   * \param port The port number of the remote udp echo server
131
   */
124
   */
132
  UdpEchoClientHelper (Ipv6Address ip, uint16_t port);
125
  UdpEchoClientHelper (Address addr);
133
126
134
  /**
127
  /**
135
   * Record an attribute to be set in each Application after it is is created.
128
   * Record an attribute to be set in each Application after it is is created.
(-)a/src/applications/model/udp-client.cc (-14 / +15 lines)
 Lines 87-113   UdpClient::~UdpClient () Link Here 
87
}
87
}
88
88
89
void
89
void
90
UdpClient::SetRemote (Ipv4Address ip, uint16_t port)
90
UdpClient::SetRemote (Address ip, uint16_t port)
91
{
92
  NS_LOG_FUNCTION (this << ip << port);
93
  m_peerAddress = Address(ip);
94
  m_peerPort = port;
95
}
96
97
void
98
UdpClient::SetRemote (Ipv6Address ip, uint16_t port)
99
{
91
{
100
  NS_LOG_FUNCTION (this << ip << port);
92
  NS_LOG_FUNCTION (this << ip << port);
101
  m_peerAddress = Address(ip);
93
  m_peerAddress = ip;
102
  m_peerPort = port;
94
  m_peerPort = port;
103
}
95
}
104
96
105
void
97
void
106
UdpClient::SetRemote (Address ip, uint16_t port)
98
UdpClient::SetRemote (Address addr)
107
{
99
{
108
  NS_LOG_FUNCTION (this << ip << port);
100
  NS_LOG_FUNCTION (this << addr);
109
  m_peerAddress = ip;
101
  m_peerAddress = addr;
110
  m_peerPort = port;
111
}
102
}
112
103
113
void
104
void
 Lines 136-141   UdpClient::StartApplication (void) Link Here 
136
          m_socket->Bind6 ();
127
          m_socket->Bind6 ();
137
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom(m_peerAddress), m_peerPort));
128
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom(m_peerAddress), m_peerPort));
138
        }
129
        }
130
      else if (InetSocketAddress::IsMatchingType (m_peerAddress) == true)
131
        {
132
          m_socket->Bind ();
133
          m_socket->Connect (m_peerAddress);
134
        }
135
      else if (Inet6SocketAddress::IsMatchingType (m_peerAddress) == true)
136
        {
137
          m_socket->Bind6 ();
138
          m_socket->Connect (m_peerAddress);
139
        }
139
    }
140
    }
140
141
141
  m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket> > ());
142
  m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket> > ());
(-)a/src/applications/model/udp-client.h (-12 / +5 lines)
 Lines 55-76   public: Link Here 
55
55
56
  /**
56
  /**
57
   * \brief set the remote address and port
57
   * \brief set the remote address and port
58
   * \param ip remote IPv4 address
59
   * \param port remote port
60
   */
61
  void SetRemote (Ipv4Address ip, uint16_t port);
62
  /**
63
   * \brief set the remote address and port
64
   * \param ip remote IPv6 address
65
   * \param port remote port
66
   */
67
  void SetRemote (Ipv6Address ip, uint16_t port);
68
  /**
69
   * \brief set the remote address and port
70
   * \param ip remote IP address
58
   * \param ip remote IP address
71
   * \param port remote port
59
   * \param port remote port
72
   */
60
   */
73
  void SetRemote (Address ip, uint16_t port);
61
  void SetRemote (Address ip, uint16_t port);
62
  /**
63
   * \brief set the remote address
64
   * \param addr remote address
65
   */
66
  void SetRemote (Address addr);
74
67
75
protected:
68
protected:
76
  virtual void DoDispose (void);
69
  virtual void DoDispose (void);
(-)a/src/applications/model/udp-echo-client.cc (-12 / +13 lines)
 Lines 103-121   UdpEchoClient::SetRemote (Address ip, uint16_t port) Link Here 
103
}
103
}
104
104
105
void 
105
void 
106
UdpEchoClient::SetRemote (Ipv4Address ip, uint16_t port)
106
UdpEchoClient::SetRemote (Address addr)
107
{
107
{
108
  NS_LOG_FUNCTION (this << ip << port);
108
  NS_LOG_FUNCTION (this << addr);
109
  m_peerAddress = Address (ip);
109
  m_peerAddress = addr;
110
  m_peerPort = port;
111
}
112
113
void 
114
UdpEchoClient::SetRemote (Ipv6Address ip, uint16_t port)
115
{
116
  NS_LOG_FUNCTION (this << ip << port);
117
  m_peerAddress = Address (ip);
118
  m_peerPort = port;
119
}
110
}
120
111
121
void
112
void
 Lines 144-149   UdpEchoClient::StartApplication (void) Link Here 
144
          m_socket->Bind6();
135
          m_socket->Bind6();
145
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom(m_peerAddress), m_peerPort));
136
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom(m_peerAddress), m_peerPort));
146
        }
137
        }
138
      else if (InetSocketAddress::IsMatchingType (m_peerAddress) == true)
139
        {
140
          m_socket->Bind ();
141
          m_socket->Connect (m_peerAddress);
142
        }
143
      else if (Inet6SocketAddress::IsMatchingType (m_peerAddress) == true)
144
        {
145
          m_socket->Bind6 ();
146
          m_socket->Connect (m_peerAddress);
147
        }
147
    }
148
    }
148
149
149
  m_socket->SetRecvCallback (MakeCallback (&UdpEchoClient::HandleRead, this));
150
  m_socket->SetRecvCallback (MakeCallback (&UdpEchoClient::HandleRead, this));
(-)a/src/applications/model/udp-echo-client.h (-12 / +5 lines)
 Lines 51-72   public: Link Here 
51
51
52
  /**
52
  /**
53
   * \brief set the remote address and port
53
   * \brief set the remote address and port
54
   * \param ip remote IPv4 address
55
   * \param port remote port
56
   */
57
  void SetRemote (Ipv4Address ip, uint16_t port);
58
  /**
59
   * \brief set the remote address and port
60
   * \param ip remote IPv6 address
61
   * \param port remote port
62
   */
63
  void SetRemote (Ipv6Address ip, uint16_t port);
64
  /**
65
   * \brief set the remote address and port
66
   * \param ip remote IP address
54
   * \param ip remote IP address
67
   * \param port remote port
55
   * \param port remote port
68
   */
56
   */
69
  void SetRemote (Address ip, uint16_t port);
57
  void SetRemote (Address ip, uint16_t port);
58
  /**
59
   * \brief set the remote address
60
   * \param addr remote address
61
   */
62
  void SetRemote (Address addr);
70
63
71
  /**
64
  /**
72
   * Set the data size of the packet (the number of bytes that are sent as data
65
   * Set the data size of the packet (the number of bytes that are sent as data
(-)a/src/applications/model/udp-trace-client.cc (-13 / +13 lines)
 Lines 131-151   UdpTraceClient::SetRemote (Address ip, uint16_t port) Link Here 
131
}
131
}
132
132
133
void
133
void
134
UdpTraceClient::SetRemote (Ipv4Address ip, uint16_t port)
134
UdpTraceClient::SetRemote (Address addr)
135
{
135
{
136
  NS_LOG_FUNCTION (this << ip << port);
136
  NS_LOG_FUNCTION (this << addr);
137
  m_entries.clear ();
137
  m_entries.clear ();
138
  m_peerAddress = Address (ip);
138
  m_peerAddress = addr;
139
  m_peerPort = port;
140
}
141
142
void
143
UdpTraceClient::SetRemote (Ipv6Address ip, uint16_t port)
144
{
145
  NS_LOG_FUNCTION (this << ip << port);
146
  m_entries.clear ();
147
  m_peerAddress = Address (ip);
148
  m_peerPort = port;
149
}
139
}
150
140
151
void
141
void
 Lines 260-265   UdpTraceClient::StartApplication (void) Link Here 
260
          m_socket->Bind6 ();
250
          m_socket->Bind6 ();
261
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom (m_peerAddress), m_peerPort));
251
          m_socket->Connect (Inet6SocketAddress (Ipv6Address::ConvertFrom (m_peerAddress), m_peerPort));
262
        }
252
        }
253
      else if (InetSocketAddress::IsMatchingType (m_peerAddress) == true)
254
        {
255
          m_socket->Bind ();
256
          m_socket->Connect (m_peerAddress);
257
        }
258
      else if (Inet6SocketAddress::IsMatchingType (m_peerAddress) == true)
259
        {
260
          m_socket->Bind6 ();
261
          m_socket->Connect (m_peerAddress);
262
        }
263
    }
263
    }
264
  m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket> > ());
264
  m_socket->SetRecvCallback (MakeNullCallback<void, Ptr<Socket> > ());
265
  m_socket->SetAllowBroadcast (true);
265
  m_socket->SetAllowBroadcast (true);
(-)a/src/applications/model/udp-trace-client.h (-12 / +5 lines)
 Lines 78-99   public: Link Here 
78
78
79
  /**
79
  /**
80
   * \brief set the remote address and port
80
   * \brief set the remote address and port
81
   * \param ip remote IPv4 address
82
   * \param port remote port
83
   */
84
  void SetRemote (Ipv4Address ip, uint16_t port);
85
  /**
86
   * \brief set the remote address and port
87
   * \param ip remote IPv6 address
88
   * \param port remote port
89
   */
90
  void SetRemote (Ipv6Address ip, uint16_t port);
91
  /**
92
   * \brief set the remote address and port
93
   * \param ip remote IP address
81
   * \param ip remote IP address
94
   * \param port remote port
82
   * \param port remote port
95
   */
83
   */
96
  void SetRemote (Address ip, uint16_t port);
84
  void SetRemote (Address ip, uint16_t port);
85
  /**
86
   * \brief set the remote address
87
   * \param addr remote address
88
   */
89
  void SetRemote (Address addr);
97
90
98
  /**
91
  /**
99
   * \brief Set the trace file to be used by the application
92
   * \brief Set the trace file to be used by the application

Return to bug 2474