Public Member Functions | Private Types | Private Attributes

ns3::NdiscCache::Entry Class Reference

A record that holds information about an NdiscCache entry. More...

#include <ndisc-cache.h>

Collaboration diagram for ns3::NdiscCache::Entry:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Entry (NdiscCache *nd)
 Constructor.
void MarkIncomplete (Ptr< Packet > p)
 Changes the state to this entry to INCOMPLETE.
std::list< Ptr< Packet > > MarkReachable (Address mac)
 Changes the state to this entry to REACHABLE.
void MarkProbe ()
 Changes the state to this entry to PROBE.
std::list< Ptr< Packet > > MarkStale (Address mac)
 Changes the state to this entry to STALE.
void MarkStale ()
 Changes the state to this entry to STALE.
void MarkReachable ()
 Changes the state to this entry to REACHABLE.
void MarkDelay ()
 Change the state to this entry to DELAY.
void AddWaitingPacket (Ptr< Packet > p)
 Add a packet (or replace old value) in the queue.
void ClearWaitingPacket ()
 Clear the waiting packet list.
bool IsStale () const
 Is the entry STALE.
bool IsReachable () const
 Is the entry REACHABLE.
bool IsDelay () const
 Is the entry DELAY.
bool IsIncomplete () const
 Is the entry INCOMPLETE.
bool IsProbe () const
 Is the entry PROBE.
Address GetMacAddress () const
 Get the MAC address of this entry.
void SetMacAddress (Address mac)
 Set the MAC address of this entry.
bool IsRouter () const
 If the entry is a host or a router.
void SetRouter (bool router)
 Set the node type.
uint8_t GetNSRetransmit () const
 Get the number of NS retransmit.
void IncNSRetransmit ()
 Increment NS retransmit.
void ResetNSRetransmit ()
 Reset NS retransmit (=0).
Time GetLastReachabilityConfirmation () const
 Get the time of last reachability confirmation.
void UpdateLastReachabilityconfirmation ()
 Update the time of last reachability confirmation.
void StartReachableTimer ()
 Start the reachable timer.
void StopReachableTimer ()
 Stop the reachable timer.
void StartRetransmitTimer ()
 Start retransmit timer.
void StopRetransmitTimer ()
 Stop retransmit timer.
void StartProbeTimer ()
 Start probe timer.
void StopProbeTimer ()
 Stop probe timer.
void StartDelayTimer ()
 Start delay timer.
void StopDelayTimer ()
 Stop delay timer.
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.
void FunctionProbeTimeout ()
 Function called when probe timer timeout.
void FunctionDelayTimeout ()
 Function called when delay timer timeout.
void SetIpv6Address (Ipv6Address ipv6Address)
 Set the IPv6 address.

Private Types

enum  NdiscCacheEntryState_e {
  INCOMPLETE, REACHABLE, STALE, DELAY,
  PROBE
}
 

The Entry state enumeration.

More...

Private Attributes

Ipv6Address m_ipv6Address
 The IPv6 address.
NdiscCacheEntryState_e m_state
 The state of the entry.
NdiscCachem_ndCache
 the NdiscCache associated.
Address m_macAddress
 The MAC address.
std::list< Ptr< Packet > > m_waiting
 The list of packet waiting.
bool m_router
 Type of node (router or host).
Timer m_reachableTimer
 Reachable timer (used for NUD in REACHABLE state).
Timer m_retransTimer
 Retransmission timer (used for NUD in INCOMPLETE state).
Timer m_probeTimer
 Probe timer (used for NUD in PROBE state).
Timer m_delayTimer
 Delay timer (used for NUD when in DELAY state).
Time m_lastReachabilityConfirmation
 Last time we see a reachability confirmation.
uint8_t m_nsRetransmit
 Number of NS retransmission.

Detailed Description

A record that holds information about an NdiscCache entry.


Member Enumeration Documentation

The Entry state enumeration.

Enumerator:
INCOMPLETE 

No mapping between IPv6 and L2 addresses

REACHABLE 

Mapping exists between IPv6 and L2 addresses

STALE 

Mapping is stale

DELAY 

Try to wait contact from remote host

PROBE 

Try to contact IPv6 address to know again its L2 address


Constructor & Destructor Documentation

ns3::NdiscCache::Entry::Entry ( NdiscCache nd  ) 

Constructor.

Parameters:
nd The NdiscCache this entry belongs to.

Member Function Documentation

void ns3::NdiscCache::Entry::AddWaitingPacket ( Ptr< Packet p  ) 

Add a packet (or replace old value) in the queue.

Parameters:
p packet to add
Time ns3::NdiscCache::Entry::GetLastReachabilityConfirmation (  )  const

Get the time of last reachability confirmation.

Returns:
time
Address ns3::NdiscCache::Entry::GetMacAddress (  )  const

Get the MAC address of this entry.

Returns:
the L2 address
uint8_t ns3::NdiscCache::Entry::GetNSRetransmit (  )  const

Get the number of NS retransmit.

Returns:
number of NS that have been retransmit
bool ns3::NdiscCache::Entry::IsDelay (  )  const

Is the entry DELAY.

Returns:
true if the entry is in DELAY state, false otherwise
bool ns3::NdiscCache::Entry::IsIncomplete (  )  const

Is the entry INCOMPLETE.

Returns:
true if the entry is in INCOMPLETE state, false otherwise
bool ns3::NdiscCache::Entry::IsProbe (  )  const

Is the entry PROBE.

Returns:
true if the entry is in PROBE state, false otherwise
bool ns3::NdiscCache::Entry::IsReachable (  )  const

Is the entry REACHABLE.

Returns:
true if the entry is in REACHABLE state, false otherwise
bool ns3::NdiscCache::Entry::IsRouter (  )  const

If the entry is a host or a router.

Returns:
true if the node is a router, 0 if it is a host
bool ns3::NdiscCache::Entry::IsStale (  )  const

Is the entry STALE.

Returns:
true if the entry is in STALE state, false otherwise
void ns3::NdiscCache::Entry::MarkIncomplete ( Ptr< Packet p  ) 

Changes the state to this entry to INCOMPLETE.

Parameters:
p packet that wait to be sent
std::list<Ptr<Packet> > ns3::NdiscCache::Entry::MarkReachable ( Address  mac  ) 

Changes the state to this entry to REACHABLE.

Parameters:
mac MAC address
Returns:
the list of packet waiting
std::list<Ptr<Packet> > ns3::NdiscCache::Entry::MarkStale ( Address  mac  ) 

Changes the state to this entry to STALE.

Parameters:
mac L2 address
Returns:
the list of packet waiting
void ns3::NdiscCache::Entry::SetIpv6Address ( Ipv6Address  ipv6Address  ) 

Set the IPv6 address.

Parameters:
ipv6Address IPv6 address
void ns3::NdiscCache::Entry::SetMacAddress ( Address  mac  ) 

Set the MAC address of this entry.

Parameters:
mac the MAC address to set
void ns3::NdiscCache::Entry::SetRouter ( bool  router  ) 

Set the node type.

Parameters:
router true is a router, false means a host

The documentation for this class was generated from the following file: