A record that holds information about a NdiscCache entry. More...
#include "ndisc-cache.h"
 Collaboration diagram for ns3::NdiscCache::Entry:
 Collaboration diagram for ns3::NdiscCache::Entry:| Public Member Functions | |
| Entry (NdiscCache *nd) | |
| Constructor.  More... | |
| void | AddWaitingPacket (Ipv6PayloadHeaderPair p) | 
| Add a packet (or replace old value) in the queue.  More... | |
| void | ClearWaitingPacket () | 
| Clear the waiting packet list.  More... | |
| void | FunctionDelayTimeout () | 
| Function called when delay timer timeout.  More... | |
| void | FunctionProbeTimeout () | 
| Function called when probe timer timeout.  More... | |
| void | FunctionReachableTimeout () | 
| Function called when reachable timer timeout.  More... | |
| void | FunctionRetransmitTimeout () | 
| Function called when retransmit timer timeout.  More... | |
| Time | GetLastReachabilityConfirmation () const | 
| Get the time of last reachability confirmation.  More... | |
| Address | GetMacAddress () const | 
| Get the MAC address of this entry.  More... | |
| bool | IsDelay () const | 
| Is the entry DELAY.  More... | |
| bool | IsIncomplete () const | 
| Is the entry INCOMPLETE.  More... | |
| bool | IsPermanent () const | 
| Is the entry PERMANENT.  More... | |
| bool | IsProbe () const | 
| Is the entry PROBE.  More... | |
| bool | IsReachable () const | 
| Is the entry REACHABLE.  More... | |
| bool | IsRouter () const | 
| If the entry is a host or a router.  More... | |
| bool | IsStale () const | 
| Is the entry STALE.  More... | |
| void | MarkDelay () | 
| Change the state to this entry to DELAY.  More... | |
| void | MarkIncomplete (Ipv6PayloadHeaderPair p) | 
| Changes the state to this entry to INCOMPLETE.  More... | |
| void | MarkPermanent () | 
| Change the state to this entry to PERMANENT.  More... | |
| void | MarkProbe () | 
| Changes the state to this entry to PROBE.  More... | |
| std::list< Ipv6PayloadHeaderPair > | MarkReachable (Address mac) | 
| Changes the state to this entry to REACHABLE.  More... | |
| void | MarkReachable () | 
| Changes the state to this entry to REACHABLE.  More... | |
| std::list< Ipv6PayloadHeaderPair > | MarkStale (Address mac) | 
| Changes the state to this entry to STALE.  More... | |
| void | MarkStale () | 
| Changes the state to this entry to STALE.  More... | |
| void | SetIpv6Address (Ipv6Address ipv6Address) | 
| Set the IPv6 address.  More... | |
| void | SetMacAddress (Address mac) | 
| Set the MAC address of this entry.  More... | |
| void | SetRouter (bool router) | 
| Set the node type.  More... | |
| void | StartDelayTimer () | 
| Start delay timer.  More... | |
| void | StartProbeTimer () | 
| Start probe timer.  More... | |
| void | StartReachableTimer () | 
| Start the reachable timer.  More... | |
| void | StartRetransmitTimer () | 
| Start retransmit timer.  More... | |
| void | StopNudTimer () | 
| Stop NUD timer and reset the NUD retransmission counter.  More... | |
| void | UpdateReachableTimer () | 
| Update the reachable timer.  More... | |
| Private Types | |
| enum | NdiscCacheEntryState_e { INCOMPLETE, REACHABLE, STALE, DELAY, PROBE, PERMANENT } | 
| The Entry state enumeration.  More... | |
| Private Attributes | |
| Ipv6Address | m_ipv6Address | 
| The IPv6 address.  More... | |
| Time | m_lastReachabilityConfirmation | 
| Last time we see a reachability confirmation.  More... | |
| Address | m_macAddress | 
| The MAC address.  More... | |
| NdiscCache * | m_ndCache | 
| the NdiscCache associated.  More... | |
| uint8_t | m_nsRetransmit | 
| Number of NS retransmission.  More... | |
| Timer | m_nudTimer | 
| Timer (used for NUD).  More... | |
| bool | m_router | 
| Type of node (router or host).  More... | |
| NdiscCacheEntryState_e | m_state | 
| The state of the entry.  More... | |
| std::list< Ipv6PayloadHeaderPair > | m_waiting | 
| The list of packet waiting.  More... | |
A record that holds information about a NdiscCache entry.
Definition at line 156 of file ndisc-cache.h.
| ns3::NdiscCache::Entry::Entry | ( | NdiscCache * | nd | ) | 
Constructor.
| nd | The NdiscCache this entry belongs to. | 
Definition at line 224 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| void ns3::NdiscCache::Entry::AddWaitingPacket | ( | Ipv6PayloadHeaderPair | p | ) | 
Add a packet (or replace old value) in the queue.
| p | packet to add | 
Definition at line 247 of file ndisc-cache.cc.
References ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::ClearWaitingPacket | ( | ) | 
Clear the waiting packet list.
Definition at line 260 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::NdiscCache::Remove().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::FunctionDelayTimeout | ( | ) | 
Function called when delay timer timeout.
Definition at line 322 of file ndisc-cache.cc.
References ns3::Ipv6Address::IsAny(), ns3::NdiscCache::m_ndCache, NS_LOG_FUNCTION_NOARGS, and ns3::Ipv6L3Protocol::PROT_NUMBER.
Referenced by StartDelayTimer().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::FunctionProbeTimeout | ( | ) | 
Function called when probe timer timeout.
Definition at line 357 of file ndisc-cache.cc.
References ns3::Ipv6Address::IsAny(), ns3::NdiscCache::m_icmpv6, ns3::NdiscCache::m_ndCache, NS_LOG_FUNCTION_NOARGS, and ns3::Ipv6L3Protocol::PROT_NUMBER.
Referenced by StartProbeTimer().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::FunctionReachableTimeout | ( | ) | 
Function called when reachable timer timeout.
Definition at line 267 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by StartReachableTimer().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::FunctionRetransmitTimeout | ( | ) | 
Function called when retransmit timer timeout.
It verify that the NS retransmit has reached the max so discard the entry otherwise it retransmit a NS.
Definition at line 273 of file ndisc-cache.cc.
References ns3::Icmpv6Header::ICMPV6_ADDR_UNREACHABLE, ns3::Ipv6Address::IsAny(), ns3::NdiscCache::m_icmpv6, ns3::NdiscCache::m_ndCache, ns3::Ipv6Address::MakeSolicitedAddress(), and NS_LOG_FUNCTION_NOARGS.
Referenced by StartRetransmitTimer().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| Time ns3::NdiscCache::Entry::GetLastReachabilityConfirmation | ( | ) | const | 
Get the time of last reachability confirmation.
Definition at line 408 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| Address ns3::NdiscCache::Entry::GetMacAddress | ( | void | ) | const | 
Get the MAC address of this entry.
Definition at line 583 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Icmpv6L4Protocol::HandleRS(), ns3::Icmpv6L4Protocol::Lookup(), and ns3::NdiscCache::LookupInverse().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsDelay | ( | ) | const | 
Is the entry DELAY.
Definition at line 559 of file ndisc-cache.cc.
References DELAY, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsIncomplete | ( | ) | const | 
Is the entry INCOMPLETE.
Definition at line 565 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsPermanent | ( | void | ) | const | 
Is the entry PERMANENT.
Definition at line 577 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsProbe | ( | ) | const | 
Is the entry PROBE.
Definition at line 571 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsReachable | ( | ) | const | 
Is the entry REACHABLE.
Definition at line 553 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool ns3::NdiscCache::Entry::IsRouter | ( | ) | const | 
If the entry is a host or a router.
Definition at line 241 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| bool ns3::NdiscCache::Entry::IsStale | ( | ) | const | 
Is the entry STALE.
Definition at line 547 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::MarkDelay | ( | ) | 
Change the state to this entry to DELAY.
Definition at line 534 of file ndisc-cache.cc.
References DELAY, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::MarkIncomplete | ( | Ipv6PayloadHeaderPair | p | ) | 
Changes the state to this entry to INCOMPLETE.
| p | packet that wait to be sent | 
Definition at line 489 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::MarkPermanent | ( | void | ) | 
Change the state to this entry to PERMANENT.
Definition at line 540 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| void ns3::NdiscCache::Entry::MarkProbe | ( | ) | 
Changes the state to this entry to PROBE.
Definition at line 508 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| std::list< NdiscCache::Ipv6PayloadHeaderPair > ns3::NdiscCache::Entry::MarkReachable | ( | Address | mac | ) | 
Changes the state to this entry to REACHABLE.
| mac | MAC address | 
Definition at line 500 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::MarkReachable | ( | ) | 
Changes the state to this entry to REACHABLE.
Definition at line 520 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| std::list< NdiscCache::Ipv6PayloadHeaderPair > ns3::NdiscCache::Entry::MarkStale | ( | Address | mac | ) | 
Changes the state to this entry to STALE.
| mac | L2 address | 
Definition at line 526 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), and ns3::Icmpv6L4Protocol::HandleRS().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::MarkStale | ( | ) | 
Changes the state to this entry to STALE.
Definition at line 514 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| void ns3::NdiscCache::Entry::SetIpv6Address | ( | Ipv6Address | ipv6Address | ) | 
Set the IPv6 address.
| ipv6Address | IPv6 address | 
Definition at line 402 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
| void ns3::NdiscCache::Entry::SetMacAddress | ( | Address | mac | ) | 
Set the MAC address of this entry.
| mac | the MAC address to set | 
Definition at line 589 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::SetRouter | ( | bool | router | ) | 
Set the node type.
| router | true is a router, false means a host | 
Definition at line 235 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Icmpv6L4Protocol::HandleRedirection(), ns3::Icmpv6L4Protocol::HandleRS(), ns3::Icmpv6L4Protocol::Lookup(), and ns3::Icmpv6L4Protocol::ReceiveLLA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::StartDelayTimer | ( | ) | 
Start delay timer.
Definition at line 456 of file ndisc-cache.cc.
References FunctionDelayTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::StartProbeTimer | ( | ) | 
Start probe timer.
Definition at line 443 of file ndisc-cache.cc.
References FunctionProbeTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
 Here is the call graph for this function:
 Here is the call graph for this function:| void ns3::NdiscCache::Entry::StartReachableTimer | ( | ) | 
Start the reachable timer.
Definition at line 414 of file ndisc-cache.cc.
References FunctionReachableTimeout(), ns3::NdiscCache::m_ndCache, ns3::Simulator::Now(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::StartRetransmitTimer | ( | ) | 
Start retransmit timer.
Definition at line 469 of file ndisc-cache.cc.
References FunctionRetransmitTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::StopNudTimer | ( | ) | 
Stop NUD timer and reset the NUD retransmission counter.
Definition at line 482 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| void ns3::NdiscCache::Entry::UpdateReachableTimer | ( | ) | 
Update the reachable timer.
Definition at line 428 of file ndisc-cache.cc.
References ns3::Simulator::Now(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv6L3Protocol::Receive().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | private | 
The IPv6 address.
Definition at line 349 of file ndisc-cache.h.
| 
 | private | 
Last time we see a reachability confirmation.
Definition at line 397 of file ndisc-cache.h.
| 
 | private | 
The MAC address.
Definition at line 377 of file ndisc-cache.h.
| 
 | private | 
the NdiscCache associated.
Definition at line 372 of file ndisc-cache.h.
| 
 | private | 
Number of NS retransmission.
Definition at line 402 of file ndisc-cache.h.
| 
 | private | 
Timer (used for NUD).
Definition at line 392 of file ndisc-cache.h.
| 
 | private | 
Type of node (router or host).
Definition at line 387 of file ndisc-cache.h.
| 
 | private | 
The state of the entry.
Definition at line 367 of file ndisc-cache.h.
| 
 | private | 
The list of packet waiting.
Definition at line 382 of file ndisc-cache.h.