|
|
| 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); |