A record that holds information about a NdiscCache entry. More...
#include "ndisc-cache.h"
| 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.
| 
 | private | 
The Entry state enumeration.
Definition at line 354 of file ndisc-cache.h.
| ns3::NdiscCache::Entry::Entry | ( | NdiscCache * | nd | ) | 
Constructor.
| nd | The NdiscCache this entry belongs to. | 
Definition at line 227 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 250 of file ndisc-cache.cc.
References ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| void ns3::NdiscCache::Entry::ClearWaitingPacket | ( | ) | 
Clear the waiting packet list.
Definition at line 263 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::NdiscCache::Remove().
| void ns3::NdiscCache::Entry::FunctionDelayTimeout | ( | ) | 
Function called when delay timer timeout.
Definition at line 325 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().
| void ns3::NdiscCache::Entry::FunctionProbeTimeout | ( | ) | 
Function called when probe timer timeout.
Definition at line 360 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().
| void ns3::NdiscCache::Entry::FunctionReachableTimeout | ( | ) | 
Function called when reachable timer timeout.
Definition at line 270 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by StartReachableTimer().
| 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 276 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().
| Time ns3::NdiscCache::Entry::GetLastReachabilityConfirmation | ( | ) | const | 
Get the time of last reachability confirmation.
Definition at line 411 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 586 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Icmpv6L4Protocol::HandleRS(), ns3::NdiscCache::Lookup(), ns3::Icmpv6L4Protocol::Lookup(), and ns3::NdiscCache::LookupInverse().
| bool ns3::NdiscCache::Entry::IsDelay | ( | ) | const | 
Is the entry DELAY.
Definition at line 562 of file ndisc-cache.cc.
References DELAY, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| bool ns3::NdiscCache::Entry::IsIncomplete | ( | ) | const | 
Is the entry INCOMPLETE.
Definition at line 568 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| bool ns3::NdiscCache::Entry::IsPermanent | ( | void | ) | const | 
Is the entry PERMANENT.
Definition at line 580 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::Icmpv6L4Protocol::Lookup().
| bool ns3::NdiscCache::Entry::IsProbe | ( | ) | const | 
Is the entry PROBE.
Definition at line 574 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| bool ns3::NdiscCache::Entry::IsReachable | ( | ) | const | 
Is the entry REACHABLE.
Definition at line 556 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), and ns3::Icmpv6L4Protocol::Lookup().
| bool ns3::NdiscCache::Entry::IsRouter | ( | ) | const | 
If the entry is a host or a router.
Definition at line 244 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| bool ns3::NdiscCache::Entry::IsStale | ( | ) | const | 
Is the entry STALE.
Definition at line 550 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| void ns3::NdiscCache::Entry::MarkDelay | ( | ) | 
Change the state to this entry to DELAY.
Definition at line 537 of file ndisc-cache.cc.
References DELAY, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| 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 492 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| void ns3::NdiscCache::Entry::MarkPermanent | ( | void | ) | 
Change the state to this entry to PERMANENT.
Definition at line 543 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 511 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 503 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| void ns3::NdiscCache::Entry::MarkReachable | ( | ) | 
Changes the state to this entry to REACHABLE.
Definition at line 523 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 529 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), and ns3::Icmpv6L4Protocol::HandleRS().
| void ns3::NdiscCache::Entry::MarkStale | ( | ) | 
Changes the state to this entry to STALE.
Definition at line 517 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 405 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 592 of file ndisc-cache.cc.
References third::mac, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| void ns3::NdiscCache::Entry::SetRouter | ( | bool | router | ) | 
Set the node type.
| router | true is a router, false means a host | 
Definition at line 238 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().
| void ns3::NdiscCache::Entry::StartDelayTimer | ( | ) | 
Start delay timer.
Definition at line 459 of file ndisc-cache.cc.
References FunctionDelayTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| void ns3::NdiscCache::Entry::StartProbeTimer | ( | ) | 
Start probe timer.
Definition at line 446 of file ndisc-cache.cc.
References FunctionProbeTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
| void ns3::NdiscCache::Entry::StartReachableTimer | ( | ) | 
Start the reachable timer.
Definition at line 417 of file ndisc-cache.cc.
References FunctionReachableTimeout(), ns3::NdiscCache::m_ndCache, ns3::Simulator::Now(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| void ns3::NdiscCache::Entry::StartRetransmitTimer | ( | ) | 
Start retransmit timer.
Definition at line 472 of file ndisc-cache.cc.
References FunctionRetransmitTimeout(), ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| void ns3::NdiscCache::Entry::StopNudTimer | ( | ) | 
Stop NUD timer and reset the NUD retransmission counter.
Definition at line 485 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| void ns3::NdiscCache::Entry::UpdateReachableTimer | ( | ) | 
Update the reachable timer.
Definition at line 431 of file ndisc-cache.cc.
References ns3::Simulator::Now(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv6L3Protocol::Receive().
| 
 | 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.
 1.8.14
 1.8.14