Update internet-stack-helper API for jitter and CHANGES.html

This commit is contained in:
John Abraham
2013-08-15 21:00:57 -07:00
parent 31aac3aea7
commit 9b60ad3617
3 changed files with 15 additions and 12 deletions

View File

@@ -71,11 +71,11 @@ us a note on ns-developers mailing list.</p>
IPv6 to make an Autoconfigured address.</li>
<li>IPv6 can now detect and use Path-MTU. See
examples/ipv6/fragmentation-ipv6-two-MTU.cc for an example.</li>
<li>Radvd application have a new Helper. See the updated
<li>Radvd application has a new Helper. See the updated
examples/ipv6/radvd.cc for an example.</li>
<li>InternetStackHelper have two new functions:<tt>SetIpv4ArpJitter (bool enable)</tt>
<li>InternetStackHelper has two new functions:<tt>SetIpv4ArpJitter (bool enable)</tt>
and <tt>SetIpv6NsRsJitter (bool enable)</tt> to enable/disable
the random jitter on IPv4's ARP and IPv6's NS/RS.</li>
the random jitter on the tranmission of IPv4 ARP Request and IPv6 NS/RS. </li>
</ul>
<h2>Changes to existing API:</h2>
@@ -134,9 +134,10 @@ or
cmd.PrintHelp (std::cerr);
</pre>
</li>
<li>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
<li>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
<tt>RequestJitter</tt> and Icmpv6L4Protocol's <tt>SolicitationJitter</tt>
attributes or by using the new InternetStackHelper functions.
</li>

View File

@@ -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> node) const
if (m_ipv4ArpJitterEnabled == false)
{
Ptr<ArpL3Protocol> arp = node->GetObject<ArpL3Protocol> ();
NS_ASSERT (arp);
arp->SetAttribute ("RequestJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]"));
}
// Set routing
@@ -457,9 +458,10 @@ InternetStackHelper::Install (Ptr<Node> node) const
CreateAndAggregateObjectFromTypeId (node, "ns3::Ipv6L3Protocol");
CreateAndAggregateObjectFromTypeId (node, "ns3::Icmpv6L4Protocol");
if (m_ipv6NsRsEnabled == false)
if (m_ipv6NsRsJitterEnabled == false)
{
Ptr<Icmpv6L4Protocol> icmpv6l4 = node->GetObject<Icmpv6L4Protocol> ();
NS_ASSERT (icmpv6l4);
icmpv6l4->SetAttribute ("SolicitationJitter", StringValue ("ns3::ConstantRandomVariable[Constant=0.0]"));
}
// Set routing

View File

@@ -324,7 +324,7 @@ private:
/**
* \brief IPv6 IPv6 NS and RS Jitter state (enabled/disabled) ?
*/
bool m_ipv6NsRsEnabled;
bool m_ipv6NsRsJitterEnabled;
};
} // namespace ns3