A record that holds information about an NdiscCache entry. More...
#include <ndisc-cache.h>
Public Member Functions | |
| Entry (NdiscCache *nd) | |
| Constructor. More... | |
| void | AddWaitingPacket (Ptr< Packet > p) |
| Add a packet (or replace old value) in the queue. More... | |
| void | ClearWaitingPacket () |
| Clear the waiting packet list. | |
| void | FunctionDelayTimeout () |
| Function called when delay timer timeout. | |
| void | FunctionProbeTimeout () |
| Function called when probe timer timeout. | |
| void | FunctionReachableTimeout () |
| Function called when reachable timer timeout. | |
| void | 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. | |
| Time | GetLastReachabilityConfirmation () const |
| Get the time of last reachability confirmation. More... | |
| Address | GetMacAddress () const |
| Get the MAC address of this entry. More... | |
| uint8_t | GetNSRetransmit () const |
| Get the number of NS retransmit. More... | |
| void | IncNSRetransmit () |
| Increment NS retransmit. | |
| bool | IsDelay () const |
| Is the entry DELAY. More... | |
| bool | IsIncomplete () const |
| Is the entry INCOMPLETE. 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. | |
| void | MarkIncomplete (Ptr< Packet > p) |
| Changes the state to this entry to INCOMPLETE. More... | |
| void | MarkProbe () |
| Changes the state to this entry to PROBE. | |
| std::list< Ptr< Packet > > | MarkReachable (Address mac) |
| Changes the state to this entry to REACHABLE. More... | |
| void | MarkReachable () |
| Changes the state to this entry to REACHABLE. | |
| std::list< Ptr< Packet > > | MarkStale (Address mac) |
| Changes the state to this entry to STALE. More... | |
| void | MarkStale () |
| Changes the state to this entry to STALE. | |
| void | ResetNSRetransmit () |
| Reset NS retransmit (=0). | |
| 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. | |
| void | StartProbeTimer () |
| Start probe timer. | |
| void | StartReachableTimer () |
| Start the reachable timer. | |
| void | StartRetransmitTimer () |
| Start retransmit timer. | |
| void | StopDelayTimer () |
| Stop delay timer. | |
| void | StopProbeTimer () |
| Stop probe timer. | |
| void | StopReachableTimer () |
| Stop the reachable timer. | |
| void | StopRetransmitTimer () |
| Stop retransmit timer. | |
| void | UpdateLastReachabilityconfirmation () |
| Update the time of last reachability confirmation. | |
Private Types | |
| enum | NdiscCacheEntryState_e { INCOMPLETE, REACHABLE, STALE, DELAY, PROBE } |
| The Entry state enumeration. More... | |
Private Attributes | |
| Timer | m_delayTimer |
| Delay timer (used for NUD when in DELAY state). | |
| Ipv6Address | m_ipv6Address |
| The IPv6 address. | |
| Time | m_lastReachabilityConfirmation |
| Last time we see a reachability confirmation. | |
| Address | m_macAddress |
| The MAC address. | |
| NdiscCache * | m_ndCache |
| the NdiscCache associated. | |
| uint8_t | m_nsRetransmit |
| Number of NS retransmission. | |
| Timer | m_probeTimer |
| Probe timer (used for NUD in PROBE state). | |
| Timer | m_reachableTimer |
| Reachable timer (used for NUD in REACHABLE state). | |
| Timer | m_retransTimer |
| Retransmission timer (used for NUD in INCOMPLETE state). | |
| bool | m_router |
| Type of node (router or host). | |
| NdiscCacheEntryState_e | m_state |
| The state of the entry. | |
| std::list< Ptr< Packet > > | m_waiting |
| The list of packet waiting. | |
A record that holds information about an NdiscCache entry.
Definition at line 131 of file ndisc-cache.h.
|
private |
The Entry state enumeration.
Definition at line 349 of file ndisc-cache.h.
| ns3::NdiscCache::Entry::Entry | ( | NdiscCache * | nd | ) |
Constructor.
| nd | The NdiscCache this entry belongs to. |
Definition at line 152 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Add a packet (or replace old value) in the queue.
| p | packet to add |
Definition at line 178 of file ndisc-cache.cc.
References ns3::NdiscCache::m_ndCache, and NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| Time ns3::NdiscCache::Entry::GetLastReachabilityConfirmation | ( | ) | const |
Get the time of last reachability confirmation.
Definition at line 356 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 508 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), ns3::Icmpv6L4Protocol::HandleRS(), and ns3::Icmpv6L4Protocol::Lookup().
| uint8_t ns3::NdiscCache::Entry::GetNSRetransmit | ( | ) | const |
Get the number of NS retransmit.
Definition at line 338 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| bool ns3::NdiscCache::Entry::IsDelay | ( | ) | const |
Is the entry DELAY.
Definition at line 490 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
| bool ns3::NdiscCache::Entry::IsIncomplete | ( | ) | const |
Is the entry INCOMPLETE.
Definition at line 496 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
| bool ns3::NdiscCache::Entry::IsProbe | ( | ) | const |
Is the entry PROBE.
Definition at line 502 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 484 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 172 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
| bool ns3::NdiscCache::Entry::IsStale | ( | ) | const |
Is the entry STALE.
Definition at line 478 of file ndisc-cache.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
Changes the state to this entry to INCOMPLETE.
| p | packet that wait to be sent |
Definition at line 427 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::Lookup().
Changes the state to this entry to REACHABLE.
| mac | MAC address |
Definition at line 438 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA().
Changes the state to this entry to STALE.
| mac | L2 address |
Definition at line 464 of file ndisc-cache.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::Icmpv6L4Protocol::HandleNA(), ns3::Icmpv6L4Protocol::HandleNS(), and ns3::Icmpv6L4Protocol::HandleRS().
| void ns3::NdiscCache::Entry::SetIpv6Address | ( | Ipv6Address | ipv6Address | ) |
Set the IPv6 address.
| ipv6Address | IPv6 address |
Definition at line 332 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 514 of file ndisc-cache.cc.
References 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 166 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().