From 9b60ad3617bf16b85343680f9e07cda3b26458e4 Mon Sep 17 00:00:00 2001 From: John Abraham Date: Thu, 15 Aug 2013 21:00:57 -0700 Subject: [PATCH] Update internet-stack-helper API for jitter and CHANGES.html --- CHANGES.html | 13 +++++++------ src/internet/helper/internet-stack-helper.cc | 12 +++++++----- src/internet/helper/internet-stack-helper.h | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CHANGES.html b/CHANGES.html index 9e1b9b21f..2d7a0cfcb 100644 --- a/CHANGES.html +++ b/CHANGES.html @@ -71,11 +71,11 @@ us a note on ns-developers mailing list.

IPv6 to make an Autoconfigured address.
  • IPv6 can now detect and use Path-MTU. See examples/ipv6/fragmentation-ipv6-two-MTU.cc for an example.
  • -
  • Radvd application have a new Helper. See the updated +
  • Radvd application has a new Helper. See the updated examples/ipv6/radvd.cc for an example.
  • -
  • InternetStackHelper have two new functions:SetIpv4ArpJitter (bool enable) +
  • InternetStackHelper has two new functions:SetIpv4ArpJitter (bool enable) and SetIpv6NsRsJitter (bool enable) to enable/disable - the random jitter on IPv4's ARP and IPv6's NS/RS.
  • + the random jitter on the tranmission of IPv4 ARP Request and IPv6 NS/RS.

    Changes to existing API:

    @@ -134,9 +134,10 @@ or cmd.PrintHelp (std::cerr); -
  • IPv4's ARP and IPv6's NS/RS are now issued with a random delay. - The delay is, by default, between 0 and 10ms. - This behaviour can be modify by using ArpL3Protocol's +
  • IPv4's ARP Request and IPv6's NS/RS are now transmitted with a random delay. + The delay is, by default, a uniform random variable in time between 0 and 10ms. + This is aimed at preventing reception errors due to collisions during wifi broadcasts. + This behaviour can be modified by using ArpL3Protocol's RequestJitter and Icmpv6L4Protocol's SolicitationJitter attributes or by using the new InternetStackHelper functions.
  • diff --git a/src/internet/helper/internet-stack-helper.cc b/src/internet/helper/internet-stack-helper.cc index 1b4fc1e75..a16259f6b 100644 --- a/src/internet/helper/internet-stack-helper.cc +++ b/src/internet/helper/internet-stack-helper.cc @@ -236,7 +236,7 @@ InternetStackHelper::InternetStackHelper () m_ipv4Enabled (true), m_ipv6Enabled (true), m_ipv4ArpJitterEnabled (true), - m_ipv6NsRsEnabled (true) + m_ipv6NsRsJitterEnabled (true) { Initialize (); @@ -273,7 +273,7 @@ InternetStackHelper::InternetStackHelper (const InternetStackHelper &o) m_ipv6Enabled = o.m_ipv6Enabled; m_tcpFactory = o.m_tcpFactory; m_ipv4ArpJitterEnabled = o.m_ipv4ArpJitterEnabled; - m_ipv6NsRsEnabled = o.m_ipv6NsRsEnabled; + m_ipv6NsRsJitterEnabled = o.m_ipv6NsRsJitterEnabled; } InternetStackHelper & @@ -298,7 +298,7 @@ InternetStackHelper::Reset (void) m_ipv4Enabled = true; m_ipv6Enabled = true; m_ipv4ArpJitterEnabled = true; - m_ipv6NsRsEnabled = true; + m_ipv6NsRsJitterEnabled = true; Initialize (); } @@ -334,7 +334,7 @@ void InternetStackHelper::SetIpv4ArpJitter (bool enable) void InternetStackHelper::SetIpv6NsRsJitter (bool enable) { - m_ipv6NsRsEnabled = enable; + m_ipv6NsRsJitterEnabled = enable; } int64_t @@ -437,6 +437,7 @@ InternetStackHelper::Install (Ptr node) const if (m_ipv4ArpJitterEnabled == false) { Ptr arp = node->GetObject (); + NS_ASSERT (arp); arp->SetAttribute ("RequestJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]")); } // Set routing @@ -457,9 +458,10 @@ InternetStackHelper::Install (Ptr node) const CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv6L3Protocol"); CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv6L4Protocol"); - if (m_ipv6NsRsEnabled == false) + if (m_ipv6NsRsJitterEnabled == false) { Ptr icmpv6l4 = node->GetObject (); + NS_ASSERT (icmpv6l4); icmpv6l4->SetAttribute ("SolicitationJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]")); } // Set routing diff --git a/src/internet/helper/internet-stack-helper.h b/src/internet/helper/internet-stack-helper.h index 687f4551f..f4d16b06f 100644 --- a/src/internet/helper/internet-stack-helper.h +++ b/src/internet/helper/internet-stack-helper.h @@ -324,7 +324,7 @@ private: /** * \brief IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ? */ - bool m_ipv6NsRsEnabled; + bool m_ipv6NsRsJitterEnabled; }; } // namespace ns3