NS-3 based Named Data Networking (NDN) simulator
ndnSIM: NDN, CCN, CCNx, content centric networks
API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
ns3::ndn::fw::Nacks Class Reference

Implementation of experimental NACK messages (enables with EnableNACKs option) More...

#include <nacks.h>

Inheritance diagram for ns3::ndn::fw::Nacks:
Collaboration diagram for ns3::ndn::fw::Nacks:

Public Member Functions

virtual void OnInterest (Ptr< Face > face, Ptr< Interest > interest)
 Actual processing of incoming Ndn interests. More...
 
- Public Member Functions inherited from ns3::ndn::ForwardingStrategy
 ForwardingStrategy ()
 Default constructor.
 
virtual void OnData (Ptr< Face > face, Ptr< Data > data)
 Actual processing of incoming Ndn content objects. More...
 
virtual void WillEraseTimedOutPendingInterest (Ptr< pit::Entry > pitEntry)
 Event fired just before PIT entry is removed by timeout. More...
 
virtual void AddFace (Ptr< Face > face)
 Event fired every time face is added to NDN stack. More...
 
virtual void RemoveFace (Ptr< Face > face)
 Event fired every time face is removed from NDN stack. More...
 
virtual void DidAddFibEntry (Ptr< fib::Entry > fibEntry)
 Event fired every time a FIB entry is added to FIB. More...
 
virtual void WillRemoveFibEntry (Ptr< fib::Entry > fibEntry)
 Fired just before FIB entry will be removed from FIB. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 
- Static Public Member Functions inherited from ns3::ndn::ForwardingStrategy
static TypeId GetTypeId ()
 
static std::string GetLogName ()
 Helper function to retrieve logging name for the forwarding strategy.
 

Protected Member Functions

virtual void DidReceiveDuplicateInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 An event that is fired every time a duplicated Interest is received. More...
 
virtual void DidExhaustForwardingOptions (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 An even that is fired when Interest cannot be forwarded. More...
 
virtual void OnNack (Ptr< Face > inFace, Ptr< Interest > nack)
 
virtual void DidReceiveValidNack (Ptr< Face > inFace, uint32_t nackCode, Ptr< const Interest > nack, Ptr< pit::Entry > pitEntry)
 
- Protected Member Functions inherited from ns3::ndn::ForwardingStrategy
virtual void DidCreatePitEntry (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 An event that is fired every time a new PIT entry is created. More...
 
virtual void FailedToCreatePitEntry (Ptr< Face > inFace, Ptr< const Interest > interest)
 An event that is fired every time a new PIT entry cannot be created (e.g., PIT container imposes a limit) More...
 
virtual void DidSuppressSimilarInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 An event that is fired every time when a similar Interest is received and suppressed (collapsed) More...
 
virtual void DidForwardSimilarInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 An event that is fired every time when a similar Interest is received and further forwarded (not suppressed/collapsed) More...
 
virtual bool DetectRetransmittedInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Method that implements logic to distinguish between new and retransmitted interest. More...
 
virtual void WillSatisfyPendingInterest (Ptr< Face > inFace, Ptr< pit::Entry > pitEntry)
 Even fired just before Interest will be satisfied. More...
 
virtual void SatisfyPendingInterest (Ptr< Face > inFace, Ptr< const Data > data, Ptr< pit::Entry > pitEntry)
 Actual procedure to satisfy Interest. More...
 
virtual void DidSendOutData (Ptr< Face > inFace, Ptr< Face > outFace, Ptr< const Data > data, Ptr< pit::Entry > pitEntry)
 Event which is fired just after data was send out on the face. More...
 
virtual void DidReceiveSolicitedData (Ptr< Face > inFace, Ptr< const Data > data, bool didCreateCacheEntry)
 Event which is fired every time a requested (solicited) DATA packet (there is an active PIT entry) is received. More...
 
virtual void DidReceiveUnsolicitedData (Ptr< Face > inFace, Ptr< const Data > data, bool didCreateCacheEntry)
 Event which is fired every time an unsolicited DATA packet (no active PIT entry) is received. More...
 
virtual bool ShouldSuppressIncomingInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Method implementing logic to suppress (collapse) similar Interests. More...
 
virtual bool CanSendOutInterest (Ptr< Face > inFace, Ptr< Face > outFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Method to check whether Interest can be send out on the particular face or not. More...
 
virtual bool TrySendOutInterest (Ptr< Face > inFace, Ptr< Face > outFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Method implementing actual interest forwarding, taking into account CanSendOutInterest decision. More...
 
virtual void DidSendOutInterest (Ptr< Face > inFace, Ptr< Face > outFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Event fired just after forwarding the Interest. More...
 
virtual void PropagateInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Wrapper method, which performs general tasks and calls DoPropagateInterest method. More...
 
virtual bool DoPropagateInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)=0
 Virtual method to perform Interest propagation according to the forwarding strategy logic. More...
 
virtual void NotifyNewAggregate ()
 Even when object is aggregated to another Object.
 
virtual void DoDispose ()
 Do cleanup.
 

Protected Attributes

bool m_nacksEnabled
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_outNacks
 trace of outgoing NACKs
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_inNacks
 trace of incoming NACKs
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_dropNacks
 trace of dropped NACKs
 
- Protected Attributes inherited from ns3::ndn::ForwardingStrategy
Ptr< Pitm_pit
 Reference to PIT to which this forwarding strategy is associated.
 
Ptr< Fibm_fib
 FIB.
 
Ptr< ContentStorem_contentStore
 Content store (for caching purposes only)
 
bool m_cacheUnsolicitedDataFromApps
 
bool m_cacheUnsolicitedData
 
bool m_detectRetransmissions
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_outInterests
 Transmitted interests trace.
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_inInterests
 trace of incoming Interests
 
TracedCallback< Ptr< const
Interest >, Ptr< const Face > > 
m_dropInterests
 trace of dropped Interests
 
TracedCallback< Ptr< const
Data >, bool, Ptr< const Face > > 
m_outData
 trace of outgoing Data
 
TracedCallback< Ptr< const
Data >, Ptr< const Face > > 
m_inData
 trace of incoming Data
 
TracedCallback< Ptr< const
Data >, Ptr< const Face > > 
m_dropData
 trace of dropped Data
 
TracedCallback< Ptr< const
pit::Entry > > 
m_satisfiedInterests
 
TracedCallback< Ptr< const
pit::Entry > > 
m_timedOutInterests
 

Detailed Description

Implementation of experimental NACK messages (enables with EnableNACKs option)

Doxygen introspection did not find any typical Config paths.

Attributes

  • EnableNACKs: Enabling support of NACKs
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read

Attributes defined in parent class ns3::ndn::ForwardingStrategy

  • CacheUnsolicitedDataFromApps: Cache unsolicited data that has been pushed from applications
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read
  • CacheUnsolicitedData: Cache overheard data that have not been requested
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: construct write read
  • DetectRetransmissions: If non-duplicate interest is received on the same face more than once, it is considered a retransmission
    • Set with class: BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: construct write read

TraceSources

  • OutNacks: OutNacks
  • InNacks: InNacks
  • DropNacks: DropNacks

TraceSources defined in parent class ns3::ndn::ForwardingStrategy

  • OutInterests: OutInterests
  • InInterests: InInterests
  • DropInterests: DropInterests
  • OutData: OutData
  • InData: InData
  • DropData: DropData
  • SatisfiedInterests: SatisfiedInterests
  • TimedOutInterests: TimedOutInterests

Definition at line 33 of file nacks.h.

Member Function Documentation

void ns3::ndn::fw::Nacks::DidExhaustForwardingOptions ( Ptr< Face inFace,
Ptr< const Interest interest,
Ptr< pit::Entry pitEntry 
)
protectedvirtual

An even that is fired when Interest cannot be forwarded.

Note that the event will not fire if retransmission detection is enabled (by default) and retransmitted Interest cannot by forwarded. For more details, refer to the implementation.

Parameters
inFaceincoming face
interestInterest header
pitEntryan existing PIT entry, corresponding to the duplicated Interest
See also
DetectRetransmittedInterest

Reimplemented from ns3::ndn::ForwardingStrategy.

Definition at line 123 of file nacks.cc.

References ns3::ndn::ForwardingStrategy::DidExhaustForwardingOptions(), ns3::ndn::pit::IncomingFace::m_face, and m_outNacks.

void ns3::ndn::fw::Nacks::DidReceiveDuplicateInterest ( Ptr< Face inFace,
Ptr< const Interest interest,
Ptr< pit::Entry pitEntry 
)
protectedvirtual

An event that is fired every time a duplicated Interest is received.

This even is the last action that is performed before the Interest processing is halted

Parameters
inFaceincoming face
interestInterest packet
pitEntryan existing PIT entry, corresponding to the duplicated Interest
See also
DidReceiveDuplicateInterest, DidSuppressSimilarInterest, DidForwardSimilarInterest, ShouldSuppressIncomingInterest

Reimplemented from ns3::ndn::ForwardingStrategy.

Definition at line 105 of file nacks.cc.

References ns3::ndn::ForwardingStrategy::DidReceiveDuplicateInterest(), and m_outNacks.

void ns3::ndn::fw::Nacks::OnInterest ( Ptr< Face face,
Ptr< Interest interest 
)
virtual

Actual processing of incoming Ndn interests.

Note, interests do not have payload

Processing Interest packets

Parameters
faceincoming face
interestInterest packet

Reimplemented from ns3::ndn::ForwardingStrategy.

Definition at line 77 of file nacks.cc.

References ns3::ndn::ForwardingStrategy::OnInterest().


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