|
|
| 258 |
Ipv4Address saddr, Ipv4Address daddr, |
258 |
Ipv4Address saddr, Ipv4Address daddr, |
| 259 |
uint16_t sport, uint16_t dport) |
259 |
uint16_t sport, uint16_t dport) |
| 260 |
{ |
260 |
{ |
| 261 |
NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport); |
|
|
| 262 |
|
| 263 |
UdpHeader udpHeader; |
261 |
UdpHeader udpHeader; |
| 264 |
if(Node::ChecksumEnabled ()) |
262 |
|
| 265 |
{ |
|
|
| 266 |
udpHeader.EnableChecksums (); |
| 267 |
udpHeader.InitializeChecksum (saddr, |
| 268 |
daddr, |
| 269 |
PROT_NUMBER); |
| 270 |
} |
| 271 |
udpHeader.SetDestinationPort (dport); |
263 |
udpHeader.SetDestinationPort (dport); |
| 272 |
udpHeader.SetSourcePort (sport); |
264 |
udpHeader.SetSourcePort (sport); |
| 273 |
|
|
|
| 274 |
packet->AddHeader (udpHeader); |
265 |
packet->AddHeader (udpHeader); |
| 275 |
|
266 |
|
| 276 |
m_downTarget (packet, saddr, daddr, PROT_NUMBER, 0); |
267 |
Send (packet, saddr, daddr, sport, dport, 0); |
| 277 |
} |
268 |
} |
| 278 |
|
269 |
|
| 279 |
void |
270 |
void |
|
|
| 283 |
{ |
274 |
{ |
| 284 |
NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport << route); |
275 |
NS_LOG_FUNCTION (this << packet << saddr << daddr << sport << dport << route); |
| 285 |
|
276 |
|
| 286 |
UdpHeader udpHeader; |
|
|
| 287 |
if(Node::ChecksumEnabled ()) |
277 |
if(Node::ChecksumEnabled ()) |
| 288 |
{ |
278 |
{ |
|
|
279 |
UdpHeader udpHeader; |
| 280 |
packet->PeekHeader(udpHeader); |
| 281 |
|
| 289 |
udpHeader.EnableChecksums (); |
282 |
udpHeader.EnableChecksums (); |
| 290 |
udpHeader.InitializeChecksum (saddr, |
283 |
udpHeader.InitializeChecksum (saddr, daddr, PROT_NUMBER); |
| 291 |
daddr, |
|
|
| 292 |
PROT_NUMBER); |
| 293 |
} |
284 |
} |
| 294 |
udpHeader.SetDestinationPort (dport); |
|
|
| 295 |
udpHeader.SetSourcePort (sport); |
| 296 |
|
| 297 |
packet->AddHeader (udpHeader); |
| 298 |
|
285 |
|
| 299 |
m_downTarget (packet, saddr, daddr, PROT_NUMBER, route); |
286 |
m_downTarget (packet, saddr, daddr, PROT_NUMBER, route); |
| 300 |
} |
287 |
} |