|
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 |
} |