|
234 |
: m_routing (0), |
234 |
: m_routing (0), |
235 |
m_routingv6 (0), |
235 |
m_routingv6 (0), |
236 |
m_ipv4Enabled (true), |
236 |
m_ipv4Enabled (true), |
237 |
m_ipv6Enabled (true) |
237 |
m_ipv6Enabled (true), |
|
|
238 |
m_ipv4ArpJitterEnabled (true), |
239 |
m_ipv6NsRsEnabled (true) |
240 |
|
238 |
{ |
241 |
{ |
239 |
Initialize (); |
242 |
Initialize (); |
240 |
} |
243 |
} |
|
269 |
m_ipv4Enabled = o.m_ipv4Enabled; |
272 |
m_ipv4Enabled = o.m_ipv4Enabled; |
270 |
m_ipv6Enabled = o.m_ipv6Enabled; |
273 |
m_ipv6Enabled = o.m_ipv6Enabled; |
271 |
m_tcpFactory = o.m_tcpFactory; |
274 |
m_tcpFactory = o.m_tcpFactory; |
|
|
275 |
m_ipv4ArpJitterEnabled = o.m_ipv4ArpJitterEnabled; |
276 |
m_ipv6NsRsEnabled = o.m_ipv6NsRsEnabled; |
272 |
} |
277 |
} |
273 |
|
278 |
|
274 |
InternetStackHelper & |
279 |
InternetStackHelper & |
|
292 |
m_routingv6 = 0; |
297 |
m_routingv6 = 0; |
293 |
m_ipv4Enabled = true; |
298 |
m_ipv4Enabled = true; |
294 |
m_ipv6Enabled = true; |
299 |
m_ipv6Enabled = true; |
|
|
300 |
m_ipv4ArpJitterEnabled = true; |
301 |
m_ipv6NsRsEnabled = true; |
295 |
Initialize (); |
302 |
Initialize (); |
296 |
} |
303 |
} |
297 |
|
304 |
|
|
320 |
m_ipv6Enabled = enable; |
327 |
m_ipv6Enabled = enable; |
321 |
} |
328 |
} |
322 |
|
329 |
|
|
|
330 |
void InternetStackHelper::SetIpv4ArpJitter (bool enable) |
331 |
{ |
332 |
m_ipv4ArpJitterEnabled = enable; |
333 |
} |
334 |
|
335 |
void InternetStackHelper::SetIpv6NsRsJitter (bool enable) |
336 |
{ |
337 |
m_ipv6NsRsEnabled = enable; |
338 |
} |
339 |
|
323 |
int64_t |
340 |
int64_t |
324 |
InternetStackHelper::AssignStreams (NodeContainer c, int64_t stream) |
341 |
InternetStackHelper::AssignStreams (NodeContainer c, int64_t stream) |
325 |
{ |
342 |
{ |
|
417 |
CreateAndAggregateObjectFromTypeId (node, "ns3::ArpL3Protocol"); |
434 |
CreateAndAggregateObjectFromTypeId (node, "ns3::ArpL3Protocol"); |
418 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv4L3Protocol"); |
435 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv4L3Protocol"); |
419 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv4L4Protocol"); |
436 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv4L4Protocol"); |
|
|
437 |
if (m_ipv4ArpJitterEnabled == false) |
438 |
{ |
439 |
Ptr<ArpL3Protocol> arp = node->GetObject<ArpL3Protocol> (); |
440 |
arp->SetAttribute ("RequestJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]")); |
441 |
} |
420 |
// Set routing |
442 |
// Set routing |
421 |
Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> (); |
443 |
Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> (); |
422 |
Ptr<Ipv4RoutingProtocol> ipv4Routing = m_routing->Create (node); |
444 |
Ptr<Ipv4RoutingProtocol> ipv4Routing = m_routing->Create (node); |
|
435 |
|
457 |
|
436 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv6L3Protocol"); |
458 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv6L3Protocol"); |
437 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv6L4Protocol"); |
459 |
CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv6L4Protocol"); |
|
|
460 |
if (m_ipv6NsRsEnabled == false) |
461 |
{ |
462 |
Ptr<Icmpv6L4Protocol> icmpv6l4 = node->GetObject<Icmpv6L4Protocol> (); |
463 |
icmpv6l4->SetAttribute ("SolicitationJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]")); |
464 |
} |
438 |
// Set routing |
465 |
// Set routing |
439 |
Ptr<Ipv6> ipv6 = node->GetObject<Ipv6> (); |
466 |
Ptr<Ipv6> ipv6 = node->GetObject<Ipv6> (); |
440 |
Ptr<Ipv6RoutingProtocol> ipv6Routing = m_routingv6->Create (node); |
467 |
Ptr<Ipv6RoutingProtocol> ipv6Routing = m_routingv6->Create (node); |