ns3::ArpCache Class Reference
[Arp]

An ARP cache. More...

#include <arp-cache.h>

Inheritance diagram for ns3::ArpCache:

Inheritance graph
[legend]
Collaboration diagram for ns3::ArpCache:

Collaboration graph
[legend]

List of all members.

Classes

class  Entry
 A record that that holds information about an ArpCache entry. More...

Public Member Functions

void SetDevice (Ptr< NetDevice > device, Ptr< Ipv4Interface > interface)
Ptr< NetDeviceGetDevice (void) const
Ptr< Ipv4InterfaceGetInterface (void) const
void SetArpRequestCallback (Callback< void, Ptr< const ArpCache >, Ipv4Address > arpRequestCallback)
void StartWaitReplyTimer (void)
ArpCache::EntryLookup (Ipv4Address destination)
 Do lookup in the ARP cache against an IP address.
ArpCache::EntryAdd (Ipv4Address to)
 Add an Ipv4Address to this ARP cache.
void Flush (void)
 Clear the ArpCache of all entries.

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::ArpCache.

Private Member Functions

virtual void DoDispose (void)
void HandleWaitReplyTimeout (void)


Detailed Description

An ARP cache.

A cached lookup table for translating layer 3 addresses to layer 2. This implementation does lookups from IPv4 to a MAC address


Member Function Documentation

virtual void ns3::ArpCache::DoDispose ( void   )  [private, virtual]

This method is called by Object::Dispose or by the object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overriden version of this method and chain up to their parent's implementation once they are done. i.e., for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose method.

Reimplemented from ns3::Object.

Ptr<NetDevice> ns3::ArpCache::GetDevice ( void   )  const

Returns:
The NetDevice that this ARP cache is associated with

Ptr<Ipv4Interface> ns3::ArpCache::GetInterface ( void   )  const

Returns:
the Ipv4Interface that this ARP cache is associated with

static TypeId ns3::ArpCache::GetTypeId ( void   )  [static]

This method returns the TypeId associated to ns3::ArpCache.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/$ns3::ArpL3Protocol/CacheList/[i]
  • /NodeList/[i]/$ns3::Ipv4L3Protocol/InterfaceList/[i]/ArpCache
Attributes defined for this type:
  • AliveTimeout: When this timeout expires, the matching cache entry needs refreshing
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 120000000000ns
    • Flags: construct write read
  • DeadTimeout: When this timeout expires, a new attempt to resolve the matching entry is made
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 100000000000ns
    • Flags: construct write read
  • WaitReplyTimeout: When this timeout expires, the cache entries will be scanned and entries in WaitReply state will resend ArpRequest unless MaxRetries has been exceeded, in which case the entry is marked dead
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: 1000000000ns
    • Flags: construct write read
  • MaxRetries: Number of retransmissions of ArpRequest before marking dead
  • PendingQueueSize: The size of the queue for packets pending an arp reply.
TraceSources defined for this type:

Reimplemented from ns3::Object.

void ns3::ArpCache::HandleWaitReplyTimeout ( void   )  [private]

This function is an event handler for the event that the ArpCache wants to check whether it must retry any Arp requests. If there are no Arp requests pending, this event is not scheduled.

ArpCache::Entry* ns3::ArpCache::Lookup ( Ipv4Address  destination  ) 

Do lookup in the ARP cache against an IP address.

Parameters:
destination The destination IPv4 address to lookup the MAC address of
Returns:
An ArpCache::Entry with info about layer 2

void ns3::ArpCache::SetArpRequestCallback ( Callback< void, Ptr< const ArpCache >, Ipv4Address arpRequestCallback  ) 

This callback is set when the ArpCache is set up and allows the cache to generate an Arp request when the WaitReply time expires and a retransmission must be sent

Parameters:
arpRequestCallback Callback for transmitting an Arp request.

void ns3::ArpCache::SetDevice ( Ptr< NetDevice device,
Ptr< Ipv4Interface interface 
)

Parameters:
device The hardware NetDevice associated with this ARP chache
interface the Ipv4Interface associated with this ARP chache

void ns3::ArpCache::StartWaitReplyTimer ( void   ) 

This method will schedule a timeout at WaitReplyTimeout interval in the future, unless a timer is already running for the cache, in which case this method does nothing.


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

Generated on Fri Apr 9 15:01:10 2010 for NS-3 by  doxygen 1.5.8