|
|
| 70 |
.AddTraceSource ("Tx", "A new packet is created and is sent", |
70 |
.AddTraceSource ("Tx", "A new packet is created and is sent", |
| 71 |
MakeTraceSourceAccessor (&UdpEchoClient::m_txTrace), |
71 |
MakeTraceSourceAccessor (&UdpEchoClient::m_txTrace), |
| 72 |
"ns3::Packet::TracedCallback") |
72 |
"ns3::Packet::TracedCallback") |
|
|
73 |
.AddTraceSource ("Rx", "A packet has been received", |
| 74 |
MakeTraceSourceAccessor (&UdpEchoClient::m_rxTrace), |
| 75 |
"ns3::Packet::TracedCallback") |
| 76 |
.AddTraceSource ("TxWithAddresses", "A new packet is created and is sent", |
| 77 |
MakeTraceSourceAccessor (&UdpEchoClient::m_txTraceWithAddresses), |
| 78 |
"ns3::Packet::TwoAddressTracedCallback") |
| 79 |
.AddTraceSource ("RxWithAddresses", "A packet has been received", |
| 80 |
MakeTraceSourceAccessor (&UdpEchoClient::m_rxTraceWithAddresses), |
| 81 |
"ns3::Packet::TwoAddressTracedCallback") |
| 73 |
; |
82 |
; |
| 74 |
return tid; |
83 |
return tid; |
| 75 |
} |
84 |
} |
|
|
| 324 |
// |
333 |
// |
| 325 |
p = Create<Packet> (m_size); |
334 |
p = Create<Packet> (m_size); |
| 326 |
} |
335 |
} |
|
|
336 |
Address localAddress; |
| 337 |
m_socket->GetSockName (localAddress); |
| 327 |
// call to the trace sinks before the packet is actually sent, |
338 |
// call to the trace sinks before the packet is actually sent, |
| 328 |
// so that tags added to the packet can be sent as well |
339 |
// so that tags added to the packet can be sent as well |
| 329 |
m_txTrace (p); |
340 |
m_txTrace (p); |
|
|
341 |
if (Ipv4Address::IsMatchingType (m_peerAddress)) |
| 342 |
{ |
| 343 |
m_txTraceWithAddresses (p, localAddress, InetSocketAddress (Ipv4Address::ConvertFrom (m_peerAddress), m_peerPort)); |
| 344 |
} |
| 345 |
else if (Ipv6Address::IsMatchingType (m_peerAddress)) |
| 346 |
{ |
| 347 |
m_txTraceWithAddresses (p, localAddress, Inet6SocketAddress (Ipv6Address::ConvertFrom (m_peerAddress), m_peerPort)); |
| 348 |
} |
| 330 |
m_socket->Send (p); |
349 |
m_socket->Send (p); |
| 331 |
|
|
|
| 332 |
++m_sent; |
350 |
++m_sent; |
| 333 |
|
351 |
|
| 334 |
if (Ipv4Address::IsMatchingType (m_peerAddress)) |
352 |
if (Ipv4Address::IsMatchingType (m_peerAddress)) |
|
|
| 364 |
NS_LOG_FUNCTION (this << socket); |
382 |
NS_LOG_FUNCTION (this << socket); |
| 365 |
Ptr<Packet> packet; |
383 |
Ptr<Packet> packet; |
| 366 |
Address from; |
384 |
Address from; |
|
|
385 |
Address localAddress; |
| 367 |
while ((packet = socket->RecvFrom (from))) |
386 |
while ((packet = socket->RecvFrom (from))) |
| 368 |
{ |
387 |
{ |
| 369 |
if (InetSocketAddress::IsMatchingType (from)) |
388 |
if (InetSocketAddress::IsMatchingType (from)) |
|
|
| 378 |
Inet6SocketAddress::ConvertFrom (from).GetIpv6 () << " port " << |
397 |
Inet6SocketAddress::ConvertFrom (from).GetIpv6 () << " port " << |
| 379 |
Inet6SocketAddress::ConvertFrom (from).GetPort ()); |
398 |
Inet6SocketAddress::ConvertFrom (from).GetPort ()); |
| 380 |
} |
399 |
} |
|
|
400 |
socket->GetSockName (localAddress); |
| 401 |
m_rxTrace (packet); |
| 402 |
m_rxTraceWithAddresses (packet, from, localAddress); |
| 381 |
} |
403 |
} |
| 382 |
} |
404 |
} |
| 383 |
|
405 |
|