NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
nfd::face::Face Class Referencefinal

generalization of a network interface More...

#include <face.hpp>

Inheritance diagram for nfd::face::Face:
Collaboration diagram for nfd::face::Face:

Public Member Functions

 Face (unique_ptr< LinkService > service, unique_ptr< Transport > transport)
 
LinkServicegetLinkService () const
 
TransportgetTransport () const
 
void sendInterest (const Interest &interest, const EndpointId &endpointId)
 send Interest to endpointId More...
 
void sendData (const Data &data, const EndpointId &endpointId)
 send Data to endpointId More...
 
void sendNack (const lp::Nack &nack, const EndpointId &endpointId)
 send Nack to endpointId More...
 
FaceId getId () const
 
void setId (FaceId id)
 sets face ID More...
 
void setMetric (uint64_t metric)
 
uint64_t getMetric () const
 
FaceUri getLocalUri () const
 
FaceUri getRemoteUri () const
 
ndn::nfd::FaceScope getScope () const
 
ndn::nfd::FacePersistency getPersistency () const
 
void setPersistency (ndn::nfd::FacePersistency persistency)
 changes face persistency setting More...
 
ndn::nfd::LinkType getLinkType () const
 
FaceState getState () const
 
time::steady_clock::TimePoint getExpirationTime () const
 
void close ()
 request the face to be closed More...
 
const FaceCountersgetCounters () const
 

Public Attributes

signal::Signal< LinkService, Interest, EndpointId > & afterReceiveInterest
 signals on Interest received More...
 
signal::Signal< LinkService, Data, EndpointId > & afterReceiveData
 signals on Data received More...
 
signal::Signal< LinkService, lp::Nack, EndpointId > & afterReceiveNack
 signals on Nack received More...
 
signal::Signal< LinkService, Interest > & onDroppedInterest
 signals on Interest dropped by reliability system for exceeding allowed number of retx More...
 
signal::Signal< Transport, FaceState, FaceState > & afterStateChange
 signals after face state changed More...
 

Detailed Description

generalization of a network interface

A face generalizes a network interface. It provides best-effort network-layer packet delivery services on a physical interface, an overlay tunnel, or a link to a local application.

A face combines two parts: LinkService and Transport. Transport is the lower part, which provides best-effort TLV block deliveries. LinkService is the upper part, which translates between network-layer packets and TLV blocks, and may provide additional services such as fragmentation and reassembly.

Definition at line 52 of file face.hpp.

Constructor & Destructor Documentation

◆ Face()

nfd::face::Face::Face ( unique_ptr< LinkService service,
unique_ptr< Transport transport 
)

Definition at line 31 of file face.cpp.

Member Function Documentation

◆ getLinkService()

LinkService * nfd::face::Face::getLinkService ( ) const
inline

◆ getTransport()

Transport * nfd::face::Face::getTransport ( ) const
inline

Definition at line 190 of file face.hpp.

Referenced by nfd::copyMtu().

◆ sendInterest()

void nfd::face::Face::sendInterest ( const Interest interest,
const EndpointId endpointId 
)
inline

send Interest to endpointId

Definition at line 196 of file face.hpp.

◆ sendData()

void nfd::face::Face::sendData ( const Data data,
const EndpointId endpointId 
)
inline

send Data to endpointId

Definition at line 202 of file face.hpp.

◆ sendNack()

void nfd::face::Face::sendNack ( const lp::Nack nack,
const EndpointId endpointId 
)
inline

send Nack to endpointId

Definition at line 208 of file face.hpp.

◆ getId()

◆ setId()

void nfd::face::Face::setId ( FaceId  id)
inline

sets face ID

Note
Normally, this should only be invoked by FaceTable.

Definition at line 220 of file face.hpp.

◆ setMetric()

void nfd::face::Face::setMetric ( uint64_t  metric)
inline

Definition at line 226 of file face.hpp.

◆ getMetric()

uint64_t nfd::face::Face::getMetric ( ) const
inline

Definition at line 232 of file face.hpp.

◆ getLocalUri()

FaceUri nfd::face::Face::getLocalUri ( ) const
inline
Returns
a FaceUri representing local endpoint

Definition at line 238 of file face.hpp.

Referenced by nfd::copyFaceProperties(), nfd::makeCreateFaceResponse(), nfd::matchFilter(), and nfd::face::operator<<().

◆ getRemoteUri()

FaceUri nfd::face::Face::getRemoteUri ( ) const
inline
Returns
a FaceUri representing remote endpoint

Definition at line 244 of file face.hpp.

Referenced by nfd::copyFaceProperties(), nfd::makeCreateFaceResponse(), nfd::matchFilter(), and nfd::face::operator<<().

◆ getScope()

ndn::nfd::FaceScope nfd::face::Face::getScope ( ) const
inline

◆ getPersistency()

ndn::nfd::FacePersistency nfd::face::Face::getPersistency ( ) const
inline
Returns
face persistency setting

Definition at line 256 of file face.hpp.

Referenced by nfd::copyFaceProperties(), nfd::makeUpdateFaceResponse(), and nfd::matchFilter().

◆ setPersistency()

void nfd::face::Face::setPersistency ( ndn::nfd::FacePersistency  persistency)
inline

changes face persistency setting

Definition at line 262 of file face.hpp.

◆ getLinkType()

ndn::nfd::LinkType nfd::face::Face::getLinkType ( ) const
inline
Returns
whether face is point-to-point or multi-access

Definition at line 268 of file face.hpp.

Referenced by nfd::fw::MulticastStrategy::afterReceiveInterest(), nfd::copyFaceProperties(), nfd::fw::isNextHopEligible(), and nfd::matchFilter().

◆ getState()

FaceState nfd::face::Face::getState ( ) const
inline
Returns
face state

Definition at line 274 of file face.hpp.

◆ getExpirationTime()

time::steady_clock::TimePoint nfd::face::Face::getExpirationTime ( ) const
inline
Returns
expiration time of the face
Return values
time::steady_clock::TimePoint::max()the face has an indefinite lifetime

Definition at line 280 of file face.hpp.

Referenced by nfd::makeFaceStatus().

◆ close()

void nfd::face::Face::close ( )
inline

request the face to be closed

This operation is effective only if face is in UP or DOWN state, otherwise it has no effect. The face changes state to CLOSING, and performs cleanup procedure. The state will be changed to CLOSED when cleanup is complete, which may happen synchronously or asynchronously.

Warning
the face must not be deallocated until its state changes to CLOSED

Definition at line 286 of file face.hpp.

◆ getCounters()

const FaceCounters & nfd::face::Face::getCounters ( ) const
inline

Definition at line 292 of file face.hpp.

Referenced by nfd::makeFaceStatus().

Member Data Documentation

◆ afterReceiveInterest

signal::Signal<LinkService, Interest, EndpointId>& nfd::face::Face::afterReceiveInterest

signals on Interest received

Definition at line 81 of file face.hpp.

Referenced by nfd::Forwarder::Forwarder().

◆ afterReceiveData

signal::Signal<LinkService, Data, EndpointId>& nfd::face::Face::afterReceiveData

signals on Data received

Definition at line 85 of file face.hpp.

Referenced by nfd::Forwarder::Forwarder().

◆ afterReceiveNack

signal::Signal<LinkService, lp::Nack, EndpointId>& nfd::face::Face::afterReceiveNack

signals on Nack received

Definition at line 89 of file face.hpp.

Referenced by nfd::Forwarder::Forwarder().

◆ onDroppedInterest

signal::Signal<LinkService, Interest>& nfd::face::Face::onDroppedInterest

signals on Interest dropped by reliability system for exceeding allowed number of retx

Definition at line 93 of file face.hpp.

Referenced by nfd::Forwarder::Forwarder().

◆ afterStateChange

signal::Signal<Transport, FaceState, FaceState>& nfd::face::Face::afterStateChange

signals after face state changed

Definition at line 151 of file face.hpp.

Referenced by nfd::face::connectFaceClosedSignal().


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