View | Details | Raw Unified | Return to bug 1522
Collapse All | Expand All

(-)a/CHANGES.html (+10 lines)
 Lines 73-78    Link Here 
73
      examples/ipv6/fragmentation-ipv6-two-MTU.cc for an example.</li>
73
      examples/ipv6/fragmentation-ipv6-two-MTU.cc for an example.</li>
74
  <li>Radvd application have a new Helper. See the updated 
74
  <li>Radvd application have a new Helper. See the updated 
75
      examples/ipv6/radvd.cc for an example.</li>
75
      examples/ipv6/radvd.cc for an example.</li>
76
  <li>InternetStackHelper have two new functions:<tt>SetIpv4ArpJitter (bool enable)</tt>
77
      and <tt>SetIpv6NsRsJitter (bool enable)</tt> to enable/disable
78
      the random jitter on IPv4's ARP and IPv6's NS/RS.</li>
76
</ul>
79
</ul>
77
80
78
<h2>Changes to existing API:</h2>
81
<h2>Changes to existing API:</h2>
 Lines 131-136    Link Here 
131
  cmd.PrintHelp (std::cerr);
134
  cmd.PrintHelp (std::cerr);
132
</pre>
135
</pre>
133
   </li>
136
   </li>
137
   <li>IPv4's ARP and IPv6's NS/RS are now issued with a random delay.
138
       The delay is, by default, between 0 and 10ms.
139
       This behaviour can be modify by using ArpL3Protocol's 
140
       <tt>RequestJitter</tt> and Icmpv6L4Protocol's <tt>SolicitationJitter</tt>
141
       attributes or by using the new InternetStackHelper functions.
142
       </li>
143
   
134
</ul>
144
</ul>
135
145
136
<hr>
146
<hr>
(-)a/RELEASE_NOTES (+3 lines)
 Lines 50-57    Link Here 
50
Bugs fixed
50
Bugs fixed
51
----------
51
----------
52
- Bug  760 - IP address removal can be painful
52
- Bug  760 - IP address removal can be painful
53
- Bug 1190 - Suppress hello if bcast was sent within the last hello interval
53
- Bug 1296 - Enhancement in Ipv[4,6]RoutingHelper
54
- Bug 1296 - Enhancement in Ipv[4,6]RoutingHelper
54
- Bug 1390 - ICMPv6 Redirect are handled correctly only for /64 networks
55
- Bug 1390 - ICMPv6 Redirect are handled correctly only for /64 networks
56
- Bug 1522 - Hidden node scenario leads to ARP failure
55
- Bug 1643 - NdiscCache creation and existence checks
57
- Bug 1643 - NdiscCache creation and existence checks
56
- Bug 1646 - ICMPv6 Redirect are sent from global address instead of link-local
58
- Bug 1646 - ICMPv6 Redirect are sent from global address instead of link-local
57
- Bug 1662 - m_type not set for Ipv6OptionRouterAlertHeader
59
- Bug 1662 - m_type not set for Ipv6OptionRouterAlertHeader
 Lines 79-84    Link Here 
79
- Bug 1738 - strict aliasing compiler bug
81
- Bug 1738 - strict aliasing compiler bug
80
- Bug 1742 - IPv6 HbH and Dst Extension Header size is not correctly calculated
82
- Bug 1742 - IPv6 HbH and Dst Extension Header size is not correctly calculated
81
- Bug 1752 - RadvdInterface m_defaultLifeTime is set to milliseconds instead of seconds
83
- Bug 1752 - RadvdInterface m_defaultLifeTime is set to milliseconds instead of seconds
84
- Bug 1753 - Halting Issue with DistributedSimulatorImpl
82
- Bug 1754 - Missing GIL lock in generated callback destructor
85
- Bug 1754 - Missing GIL lock in generated callback destructor
83
86
84
Known issues
87
Known issues
(-)a/src/internet/helper/internet-stack-helper.cc (-1 / +28 lines)
 Lines 234-240    Link Here 
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
}
 Lines 269-274    Link Here 
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 &
 Lines 292-297    Link Here 
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
 Lines 320-325    Link Here 
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
{
 Lines 417-422    Link Here 
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);
 Lines 435-440    Link Here 
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);
(-)a/src/internet/helper/internet-stack-helper.h (-1 / +23 lines)
 Lines 178-184    Link Here 
178
   */
178
   */
179
  void SetIpv6StackInstall (bool enable);
179
  void SetIpv6StackInstall (bool enable);
180
180
181
 /**
181
  /**
182
   * \brief Enable/disable IPv4 ARP Jitter.
183
   * \param enable enable state
184
   */
185
  void SetIpv4ArpJitter (bool enable);
186
187
  /**
188
   * \brief Enable/disable IPv6 NS and RS Jitter.
189
   * \param enable enable state
190
   */
191
  void SetIpv6NsRsJitter (bool enable);
192
193
  /**
182
  * Assign a fixed random variable stream number to the random variables
194
  * Assign a fixed random variable stream number to the random variables
183
  * used by this model.  Return the number of streams (possibly zero) that
195
  * used by this model.  Return the number of streams (possibly zero) that
184
  * have been assigned.  The Install() method should have previously been
196
  * have been assigned.  The Install() method should have previously been
 Lines 303-308    Link Here 
303
   * \brief IPv6 install state (enabled/disabled) ?
315
   * \brief IPv6 install state (enabled/disabled) ?
304
   */
316
   */
305
  bool m_ipv6Enabled;
317
  bool m_ipv6Enabled;
318
319
  /**
320
   * \brief IPv4 ARP Jitter state (enabled/disabled) ?
321
   */
322
  bool m_ipv4ArpJitterEnabled;
323
324
  /**
325
   * \brief IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ?
326
   */
327
  bool m_ipv6NsRsEnabled;
306
};
328
};
307
329
308
} // namespace ns3
330
} // namespace ns3

Return to bug 1522