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::SmartFlooding Class Reference

Smart flooding forwarding strategy. More...

#include <smart-flooding.h>

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

Classes

class  PerOutFaceLimits
 Strategy implementing per-out-face limits on top of SmartFlooding strategy. More...
 

Public Member Functions

 SmartFlooding ()
 Default constructor.
 
virtual bool DoPropagateInterest (Ptr< Face > inFace, Ptr< const Interest > interest, Ptr< pit::Entry > pitEntry)
 Virtual method to perform Interest propagation according to the forwarding strategy logic. More...
 
- Public Member Functions inherited from ns3::ndn::fw::Nacks
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 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 std::string GetLogName ()
 Helper function to retrieve logging name for the forwarding strategy.
 
- Static Public Member Functions inherited from ns3::ndn::fw::GreenYellowRed
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::ndn::fw::Nacks
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.
 

Static Protected Attributes

static LogComponent g_log = LogComponent (SmartFlooding::GetLogName ().c_str ())
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ndn::fw::GreenYellowRed
virtual void WillSatisfyPendingInterest (Ptr< Face > inFace, Ptr< pit::Entry > pitEntry)
 Even fired just before Interest will be satisfied. More...
 
virtual void WillEraseTimedOutPendingInterest (Ptr< pit::Entry > pitEntry)
 Event fired just before PIT entry is removed by timeout. More...
 
virtual void DidReceiveValidNack (Ptr< Face > incomingFace, uint32_t nackCode, Ptr< const Interest > nack, Ptr< pit::Entry > pitEntry)
 
- Protected Member Functions inherited from ns3::ndn::fw::Nacks
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)
 
- 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 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 void NotifyNewAggregate ()
 Even when object is aggregated to another Object.
 
virtual void DoDispose ()
 Do cleanup.
 
- Protected Attributes inherited from ns3::ndn::fw::Nacks
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

Smart flooding forwarding strategy.

Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.

TraceSources defined in parent class ns3::ndn::fw::Nacks

  • 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 35 of file smart-flooding.h.

Member Function Documentation

bool ns3::ndn::fw::SmartFlooding::DoPropagateInterest ( Ptr< Face inFace,
Ptr< const Interest interest,
Ptr< pit::Entry pitEntry 
)
virtual

Virtual method to perform Interest propagation according to the forwarding strategy logic.

In most cases, this is the call that needs to be implemented/re-implemented in order to perform forwarding of Interests according to the desired logic.

There is also PropagateInterest method (generally, do not require to be overriden) which performs general tasks (adding face to the list of incoming face, updating PIT entry lifetime, calling DoPropagateInterest, as well as perform retransmissions (enabled by default).

Parameters
inFaceincoming face
interestInterest packet
pitEntryreference to PIT entry (reference to corresponding FIB entry inside)
Returns
true if interest was successfully propagated, false if all options have failed
See also
PropagateInterest

Reimplemented from ns3::ndn::fw::GreenYellowRed.

Definition at line 68 of file smart-flooding.cc.

References ns3::ndn::fw::GreenYellowRed::DoPropagateInterest(), ns3::ndn::fib::FaceMetric::GetFace(), ns3::ndn::fib::FaceMetric::GetStatus(), and ns3::ndn::ForwardingStrategy::TrySendOutInterest().


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