Implementation network-layer of NDN stack. More...
#include <ndn-l3-protocol.hpp>
Classes | |
class | Impl |
Public Types | |
typedef std::function< std::unique_ptr< nfd::cs::Policy >)> | PolicyCreationCallback |
typedef void(* | InterestTraceCallback) (const Interest &, const Face &) |
typedef void(* | DataTraceCallback) (const Data &, const Face &) |
typedef void(* | SatisfiedInterestsCallback) (const nfd::pit::Entry &pitEntry, const Face &inFace, const Data &data) |
typedef void(* | TimedOutInterestsCallback) (const nfd::pit::Entry &pitEntry) |
Public Member Functions | |
L3Protocol () | |
Default constructor. More... | |
virtual | ~L3Protocol () |
shared_ptr< nfd::Forwarder > | getForwarder () |
Get smart pointer to nfd::Forwarder installed on the node. More... | |
shared_ptr< nfd::FibManager > | getFibManager () |
Get smart pointer to nfd::FibManager, used by node's NFD. More... | |
shared_ptr< nfd::StrategyChoiceManager > | getStrategyChoiceManager () |
Get smart pointer to nfd::StrategyChoiceManager, used by node's NFD. More... | |
nfd::FaceId | addFace (shared_ptr< Face > face) |
Add face to NDN stack. More... | |
shared_ptr< Face > | getFaceById (nfd::FaceId face) const |
Get face by face ID. More... | |
shared_ptr< Face > | getFaceByNetDevice (Ptr< NetDevice > netDevice) const |
Remove face from ndn stack (remove callbacks) More... | |
nfd::ConfigSection & | getConfig () |
Get NFD config (boost::property_tree) More... | |
void | injectInterest (const Interest &interest) |
Inject interest through internal Face. More... | |
void | setCsReplacementPolicy (const PolicyCreationCallback &policy) |
Set the replacement policy of NFD's CS. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Interface ID. More... | |
static Ptr< L3Protocol > | getL3Protocol (Ptr< Object > node) |
Static Public Attributes | |
static const uint16_t | ETHERNET_FRAME_TYPE = 0x7777 |
Ethernet Frame Type of Ndn. More... | |
static const uint16_t | IP_STACK_PORT = 9695 |
TCP/UDP port for NDN stack. More... | |
Protected Member Functions | |
virtual void | DoDispose (void) |
Do cleanup. More... | |
virtual void | NotifyNewAggregate () |
This function will notify other components connected to the node that a new stack member is now connected This will be used to notify Layer 3 protocol of layer 4 protocol stack to connect them together. More... | |
Implementation network-layer of NDN stack.
This class defines the API to manipulate the following aspects of the NDN stack implementation:
Each Face-derived object has conceptually a single NDN interface associated with it.
In addition, this class defines NDN packet coding constants
Definition at line 77 of file ndn-l3-protocol.hpp.
typedef std::function<std::unique_ptr<nfd::cs::Policy>)> ns3::ndn::L3Protocol::PolicyCreationCallback |
Definition at line 159 of file ndn-l3-protocol.hpp.
typedef void(* ns3::ndn::L3Protocol::InterestTraceCallback) (const Interest &, const Face &) |
Definition at line 172 of file ndn-l3-protocol.hpp.
typedef void(* ns3::ndn::L3Protocol::DataTraceCallback) (const Data &, const Face &) |
Definition at line 173 of file ndn-l3-protocol.hpp.
typedef void(* ns3::ndn::L3Protocol::SatisfiedInterestsCallback) (const nfd::pit::Entry &pitEntry, const Face &inFace, const Data &data) |
Definition at line 175 of file ndn-l3-protocol.hpp.
typedef void(* ns3::ndn::L3Protocol::TimedOutInterestsCallback) (const nfd::pit::Entry &pitEntry) |
Definition at line 176 of file ndn-l3-protocol.hpp.
ns3::ndn::L3Protocol::L3Protocol | ( | ) |
Default constructor.
Creates an empty stack without forwarding strategy set
Definition at line 193 of file ndn-l3-protocol.cpp.
|
virtual |
Definition at line 199 of file ndn-l3-protocol.cpp.
References nfd::FaceTable::addReserved(), nfd::face::FACEID_CONTENT_STORE, nfd::face::FACEID_NULL, getConfig(), and nfd::face::makeNullFace().
|
static |
shared_ptr< nfd::Forwarder > ns3::ndn::L3Protocol::getForwarder | ( | ) |
Get smart pointer to nfd::Forwarder installed on the node.
Definition at line 360 of file ndn-l3-protocol.cpp.
Referenced by ns3::ndn::FibHelper::AddRoute(), ns3::ndn::GlobalRoutingHelper::CalculateAllPossibleRoutes(), ns3::ndn::GlobalRoutingHelper::CalculateRoutes(), and ns3::ndn::FibHelper::RemoveRoute().
shared_ptr< nfd::FibManager > ns3::ndn::L3Protocol::getFibManager | ( | ) |
Get smart pointer to nfd::FibManager, used by node's NFD.
Definition at line 366 of file ndn-l3-protocol.cpp.
shared_ptr< nfd::StrategyChoiceManager > ns3::ndn::L3Protocol::getStrategyChoiceManager | ( | ) |
Get smart pointer to nfd::StrategyChoiceManager, used by node's NFD.
Definition at line 372 of file ndn-l3-protocol.cpp.
nfd::FaceId ns3::ndn::L3Protocol::addFace | ( | shared_ptr< Face > | face | ) |
Add face to NDN stack.
face | smart pointer to Face-derived object (AppFace, NetDeviceFace) |
Definition at line 422 of file ndn-l3-protocol.cpp.
References ndn::tlv::Data, and ndn::tlv::Interest.
shared_ptr< Face > ns3::ndn::L3Protocol::getFaceById | ( | nfd::FaceId | face | ) | const |
Get face by face ID.
face | The face ID number |
Definition at line 479 of file ndn-l3-protocol.cpp.
shared_ptr< Face > ns3::ndn::L3Protocol::getFaceByNetDevice | ( | Ptr< NetDevice > | netDevice | ) | const |
Remove face from ndn stack (remove callbacks)
Get face for NetDevice
Definition at line 485 of file ndn-l3-protocol.cpp.
nfd::ConfigSection & ns3::ndn::L3Protocol::getConfig | ( | ) |
Get NFD config (boost::property_tree)
Definition at line 378 of file ndn-l3-protocol.cpp.
Referenced by ns3::ndn::StackHelper::Install(), setCsReplacementPolicy(), and ~L3Protocol().
void ns3::ndn::L3Protocol::injectInterest | ( | const Interest & | interest | ) |
Inject interest through internal Face.
Definition at line 245 of file ndn-l3-protocol.cpp.
void ns3::ndn::L3Protocol::setCsReplacementPolicy | ( | const PolicyCreationCallback & | policy | ) |
Set the replacement policy of NFD's CS.
Definition at line 251 of file ndn-l3-protocol.cpp.
References Dispatcher, nfd::TablesConfigSection::ensureConfigured(), nfd::face::FACEID_INTERNAL_FACE, nfd::FaceManager, nfd::FibManager, getConfig(), ns3::ndn::StackHelper::getKeyChain(), nfd::face::makeInternalFace(), ns3::ndn::Name, nfd::ConfigFile::parse(), nfd::TablesConfigSection::setConfigFile(), and nfd::StrategyChoiceManager.
|
static |
Definition at line 499 of file ndn-l3-protocol.cpp.
|
protectedvirtual |
Do cleanup.
Definition at line 407 of file ndn-l3-protocol.cpp.
References nfd::scheduler::getGlobalScheduler().
|
protectedvirtual |
This function will notify other components connected to the node that a new stack member is now connected This will be used to notify Layer 3 protocol of layer 4 protocol stack to connect them together.
Definition at line 388 of file ndn-l3-protocol.cpp.
|
static |
Ethernet Frame Type of Ndn.
Definition at line 87 of file ndn-l3-protocol.hpp.
Referenced by ns3::ndn::NetDeviceTransport::NetDeviceTransport(), and ns3::ndn::NetDeviceTransport::~NetDeviceTransport().
|
static |
TCP/UDP port for NDN stack.
Definition at line 88 of file ndn-l3-protocol.hpp.