Classes | |
class | Channel |
represent a channel that communicates on a local endpoint More... | |
class | DatagramTransport |
Implements Transport for datagram-based protocols. More... | |
class | EthernetChannel |
Class implementing Ethernet-based channel to create faces. More... | |
class | EthernetFactory |
protocol factory for Ethernet More... | |
class | EthernetTransport |
Base class for Ethernet-based Transports. More... | |
class | Face |
generalization of a network interface More... | |
class | FaceCounters |
gives access to counters provided by Face More... | |
class | FaceLogHelper |
for internal use by FaceLogging macros More... | |
class | FaceParams |
Parameters used to set Transport properties or LinkService options on a newly created face. More... | |
class | FaceSystem |
entry point of the face system More... | |
class | GenericLinkService |
GenericLinkService is a LinkService that implements the NDNLPv2 protocol. More... | |
class | GenericLinkServiceCounters |
counters provided by GenericLinkService More... | |
class | InternalClientTransport |
implements a client-side transport that can be paired with another More... | |
class | InternalForwarderTransport |
implements a forwarder-side transport that can be paired with another More... | |
class | InternalTransportBase |
abstracts a transport that can be paired with another More... | |
class | LinkService |
the upper part of a Face More... | |
class | LinkServiceCounters |
counters provided by LinkService More... | |
class | LpFragmenter |
fragments network-layer packets into NDNLPv2 link-layer packets More... | |
class | LpReassembler |
reassembles fragmented network-layer packets More... | |
class | LpReliability |
provides for reliable sending and receiving of link-layer packets More... | |
struct | Multicast |
class | MulticastEthernetTransport |
A multicast Transport that uses raw Ethernet II frames. More... | |
class | MulticastUdpTransport |
A Transport that communicates on a UDP multicast group. More... | |
class | PcapHelper |
Helper class for dealing with libpcap handles. More... | |
class | ProtocolFactory |
Provides support for an underlying protocol. More... | |
struct | ProtocolFactoryCtorParams |
Parameters to ProtocolFactory constructor. More... | |
class | StreamTransport |
Implements Transport for stream-based protocols. More... | |
class | TcpChannel |
Class implementing TCP-based channel to create faces. More... | |
class | TcpFactory |
protocol factory for TCP over IPv4 and IPv6 More... | |
class | TcpTransport |
A Transport that communicates on a connected TCP socket. More... | |
class | Transport |
the lower part of a Face More... | |
class | TransportCounters |
counters provided by Transport More... | |
class | UdpChannel |
Class implementing UDP-based channel to create faces. More... | |
class | UdpFactory |
protocol factory for UDP over IPv4 and IPv6 More... | |
struct | Unicast |
class | UnicastEthernetTransport |
A unicast Transport that uses raw Ethernet II frames. More... | |
class | UnicastUdpTransport |
A Transport that communicates on a unicast UDP socket. More... | |
class | UnixStreamChannel |
Class implementing a local channel to create faces. More... | |
class | UnixStreamFactory |
protocol factory for stream-oriented Unix sockets More... | |
class | UnixStreamTransport |
A Transport that communicates on a stream-oriented Unix domain socket. More... | |
class | WebSocketChannel |
Class implementing WebSocket-based channel to create faces. More... | |
class | WebSocketFactory |
protocol factory for WebSocket More... | |
class | WebSocketTransport |
A Transport that communicates on a WebSocket connection. More... | |
class | WebSocketTransportCounters |
counters provided by WebSocketTransport More... | |
Typedefs | |
using | FaceCreatedCallback = std::function< void(const shared_ptr< Face > &face)> |
Prototype for the callback that is invoked when a face is created (in response to an incoming connection or after a connection is established) More... | |
using | FaceCreationFailedCallback = std::function< void(uint32_t status, const std::string &reason)> |
Prototype for the callback that is invoked when a face fails to be created. More... | |
typedef uint64_t | FaceId |
identifies a face More... | |
typedef TransportState | FaceState |
indicates the state of a face More... | |
using | DetermineFaceScopeFromAddress = std::function< ndn::nfd::FaceScope(const boost::asio::ip::address &local, const boost::asio::ip::address &remote)> |
Enumerations | |
enum | TransportState { TransportState::NONE, TransportState::UP, TransportState::DOWN, TransportState::CLOSING, TransportState::FAILED, TransportState::CLOSED } |
indicates the state of a transport More... | |
Functions | |
std::ostream & | operator<< (std::ostream &os, const Face &face) |
void | connectFaceClosedSignal (Face &face, const std::function< void()> &f) |
invokes a callback when the face is closed More... | |
NFD_REGISTER_PROTOCOL_FACTORY (EthernetFactory) | |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< Face > &flh) |
std::tuple< shared_ptr< Face >, shared_ptr< ndn::Face > > | makeInternalFace (ndn::KeyChain &clientKeyChain) |
make a pair of forwarder-side face and client-side face that are connected with each other More... | |
static void | asyncReceive (InternalTransportBase *recipient, const Block &packet) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LinkService > &flh) |
template<typename T > | |
std::enable_if< std::is_base_of< LinkService, T >::value &&!std::is_same< LinkService, T >::value, std::ostream & >::type | operator<< (std::ostream &os, const FaceLogHelper< T > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LpFragmenter > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LpReassembler > &flh) |
static void | bindToDevice (int fd, const std::string &ifname) |
shared_ptr< Face > | makeNullFace (const FaceUri &uri) |
ssize_t | getTxQueueLength (int fd) |
obtain send queue length from a specified system socket More... | |
NFD_REGISTER_PROTOCOL_FACTORY (TcpFactory) | |
std::ostream & | operator<< (std::ostream &os, TransportState state) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< Transport > &flh) |
template<typename T > | |
std::enable_if< std::is_base_of< Transport, T >::value &&!std::is_same< Transport, T >::value, std::ostream & >::type | operator<< (std::ostream &os, const FaceLogHelper< T > &flh) |
NFD_REGISTER_PROTOCOL_FACTORY (UdpFactory) | |
static optional< ip::address > | pickAddress (const net::NetworkInterface &netif, net::AddressFamily af) |
NFD_REGISTER_PROTOCOL_FACTORY (UnixStreamFactory) | |
NFD_REGISTER_PROTOCOL_FACTORY (WebSocketFactory) | |
static bool | isLoopback (const boost::asio::ip::address &addr) |
Variables | |
EthernetChannel | |
EthernetFactory | |
EthernetTransport | |
FaceSystem | |
const FaceId | INVALID_FACEID = 0 |
indicates an invalid FaceId More... | |
const FaceId | FACEID_INTERNAL_FACE = 1 |
identifies the InternalFace used in management More... | |
const FaceId | FACEID_CONTENT_STORE = 254 |
identifies a packet comes from the ContentStore More... | |
const FaceId | FACEID_NULL = 255 |
identifies the NullFace that drops every packet More... | |
const FaceId | FACEID_RESERVED_MAX = 255 |
upper bound of reserved FaceIds More... | |
GenericLinkService | |
constexpr uint32_t | DEFAULT_CONGESTION_THRESHOLD_DIVISOR = 2 |
InternalForwarderTransport | |
InternalClientTransport | |
LinkService | |
LpFragmenter | |
static const size_t | MAX_SINGLE_FRAG_OVERHEAD |
maximum overhead on a single fragment, not counting other NDNLPv2 headers More... | |
static const size_t | MAX_FRAG_OVERHEAD |
maximum overhead of adding fragmentation to payload, not counting other NDNLPv2 headers More... | |
LpReassembler | |
MulticastEthernetTransport | |
DatagramTransport | |
Multicast | |
MulticastUdpTransport | |
TcpChannel | |
TcpFactory | |
StreamTransport | |
TcpTransport | |
Transport | |
const ssize_t | MTU_UNLIMITED = -1 |
indicates the transport has no limit on payload size More... | |
const ssize_t | MTU_INVALID = -2 |
(for internal use) indicates MTU field is unset More... | |
const ssize_t | QUEUE_UNSUPPORTED = -1 |
indicates that the transport does not support reading the queue capacity/length More... | |
const ssize_t | QUEUE_ERROR = -2 |
indicates that the transport was unable to retrieve the queue capacity/length More... | |
UdpChannel | |
UdpFactory | |
UnicastEthernetTransport | |
UnicastUdpTransport | |
UnixStreamChannel | |
UnixStreamFactory | |
UnixStreamTransport | |
WebSocketChannel | |
WebSocketFactory | |
WebSocketTransport | |
using nfd::face::FaceCreatedCallback = typedef std::function<void(const shared_ptr<Face>& face)> |
Prototype for the callback that is invoked when a face is created (in response to an incoming connection or after a connection is established)
Definition at line 40 of file channel.hpp.
using nfd::face::FaceCreationFailedCallback = typedef std::function<void(uint32_t status, const std::string& reason)> |
Prototype for the callback that is invoked when a face fails to be created.
Definition at line 44 of file channel.hpp.
typedef uint64_t nfd::face::FaceId |
typedef TransportState nfd::face::FaceState |
using nfd::face::DetermineFaceScopeFromAddress = typedef std::function<ndn::nfd::FaceScope(const boost::asio::ip::address& local, const boost::asio::ip::address& remote)> |
Definition at line 41 of file tcp-channel.hpp.
|
strong |
indicates the state of a transport
Definition at line 42 of file transport.hpp.
|
inline |
Definition at line 89 of file ndn-common.hpp.
void nfd::face::connectFaceClosedSignal | ( | Face & | face, |
const std::function< void()> & | f | ||
) |
invokes a callback when the face is closed
face | the face |
f | the callback to be invoked when the face enters CLOSED state |
This function connects a callback to the afterStateChange signal on the face
, and invokes f
when the state becomes CLOSED.
Definition at line 40 of file channel.cpp.
References CLOSED.
Referenced by nfd::face::EthernetFactory::createMulticastFace(), and nfd::face::UdpFactory::createMulticastFace().
nfd::face::NFD_REGISTER_PROTOCOL_FACTORY | ( | EthernetFactory | ) |
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< Face > & | flh | ||
) |
std::tuple< shared_ptr< Face >, shared_ptr< ndn::Face > > nfd::face::makeInternalFace | ( | ndn::KeyChain & | clientKeyChain | ) |
make a pair of forwarder-side face and client-side face that are connected with each other
Network-layer packets sent by one face will be received by the other face after io.poll().
clientKeyChain | A KeyChain used by client-side face to sign prefix registration commands. |
Definition at line 35 of file internal-face.cpp.
References nfd::face::GenericLinkService::Options::allowLocalFields.
|
static |
Definition at line 77 of file internal-transport.cpp.
References nfd::getGlobalIoService(), nfd::detail::SimulatorIo::post(), and nfd::face::InternalTransportBase::receiveFromLink().
Referenced by nfd::face::InternalClientTransport::connectToForwarder().
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LinkService > & | flh | ||
) |
Definition at line 131 of file link-service.cpp.
std::enable_if<std::is_base_of<LinkService, T>::value && !std::is_same<LinkService, T>::value, std::ostream&>::type nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< T > & | flh | ||
) |
Definition at line 260 of file link-service.hpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LpFragmenter > & | flh | ||
) |
Definition at line 150 of file lp-fragmenter.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LpReassembler > & | flh | ||
) |
Definition at line 164 of file lp-reassembler.cpp.
|
static |
Definition at line 114 of file multicast-udp-transport.cpp.
References nfd::PrivilegeHelper::runElevated().
Referenced by nfd::face::MulticastUdpTransport::openRxSocket().
Definition at line 37 of file null-face.cpp.
References ndn::nfd::FACE_SCOPE_LOCAL.
Referenced by nfd::Nfd::initialize().
ssize_t nfd::face::getTxQueueLength | ( | int | fd | ) |
obtain send queue length from a specified system socket
fd | file descriptor of the socket |
QUEUE_UNSUPPORTED | this operation is unsupported on the current platform |
QUEUE_ERROR | there was an error retrieving the send queue length |
On Linux, ioctl() is used to obtain the value of SIOCOUTQ from the socket. On macOS, getsockopt() is used to obtain the value of SO_NWRITE from the socket.
Definition at line 40 of file socket-utils.cpp.
References QUEUE_ERROR, and QUEUE_UNSUPPORTED.
Referenced by nfd::face::StreamTransport< boost::asio::local::stream_protocol >::getSendQueueLength(), nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast >::getSendQueueLength(), and nfd::face::MulticastUdpTransport::getSendQueueLength().
nfd::face::NFD_REGISTER_PROTOCOL_FACTORY | ( | TcpFactory | ) |
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
TransportState | state | ||
) |
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< Transport > & | flh | ||
) |
Definition at line 221 of file transport.cpp.
References nfd::face::Transport::getFace(), nfd::face::Transport::getLocalUri(), nfd::face::Transport::getRemoteUri(), and INVALID_FACEID.
std::enable_if<std::is_base_of<Transport, T>::value && !std::is_same<Transport, T>::value, std::ostream&>::type nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< T > & | flh | ||
) |
Definition at line 507 of file transport.hpp.
nfd::face::NFD_REGISTER_PROTOCOL_FACTORY | ( | UdpFactory | ) |
|
static |
Definition at line 367 of file udp-factory.cpp.
References ndn::net::NetworkInterface::getNetworkAddresses(), and ndn::nullopt.
nfd::face::NFD_REGISTER_PROTOCOL_FACTORY | ( | UnixStreamFactory | ) |
nfd::face::NFD_REGISTER_PROTOCOL_FACTORY | ( | WebSocketFactory | ) |
|
static |
Definition at line 34 of file websocket-transport.cpp.
Referenced by nfd::face::WebSocketTransport::WebSocketTransport().
Definition at line 38 of file ethernet-channel.cpp.
Definition at line 36 of file ethernet-factory.cpp.
Definition at line 38 of file ethernet-transport.cpp.
Definition at line 34 of file face-system.cpp.
const FaceId nfd::face::INVALID_FACEID = 0 |
indicates an invalid FaceId
Definition at line 42 of file face.hpp.
Referenced by nfd::FaceTable::add(), nfd::FaceTable::addReserved(), operator<<(), ns3::ndn::L3RateTracer::Print(), ns3::ndn::L3RateTracer::SatisfiedInterests(), and ns3::ndn::L3RateTracer::TimedOutInterests().
const FaceId nfd::face::FACEID_INTERNAL_FACE = 1 |
const FaceId nfd::face::FACEID_CONTENT_STORE = 254 |
identifies a packet comes from the ContentStore
Definition at line 46 of file face.hpp.
Referenced by nfd::Forwarder::Forwarder(), and nfd::Nfd::initialize().
const FaceId nfd::face::FACEID_NULL = 255 |
identifies the NullFace that drops every packet
Definition at line 48 of file face.hpp.
Referenced by nfd::Nfd::initialize().
const FaceId nfd::face::FACEID_RESERVED_MAX = 255 |
upper bound of reserved FaceIds
Definition at line 50 of file face.hpp.
Referenced by nfd::FaceTable::add(), and nfd::FaceTable::addReserved().
Definition at line 35 of file generic-link-service.cpp.
constexpr uint32_t nfd::face::DEFAULT_CONGESTION_THRESHOLD_DIVISOR = 2 |
Definition at line 37 of file generic-link-service.cpp.
Definition at line 32 of file internal-transport.cpp.
Definition at line 74 of file internal-transport.cpp.
Definition at line 32 of file link-service.cpp.
Definition at line 33 of file lp-fragmenter.cpp.
|
static |
maximum overhead on a single fragment, not counting other NDNLPv2 headers
Definition at line 44 of file lp-fragmenter.cpp.
Referenced by nfd::face::LpFragmenter::fragmentPacket().
|
static |
maximum overhead of adding fragmentation to payload, not counting other NDNLPv2 headers
Definition at line 52 of file lp-fragmenter.cpp.
Referenced by nfd::face::LpFragmenter::fragmentPacket().
Definition at line 33 of file lp-reassembler.cpp.
Definition at line 49 of file multicast-ethernet-transport.cpp.
Definition at line 43 of file multicast-udp-transport.cpp.
Definition at line 43 of file multicast-udp-transport.cpp.
Definition at line 43 of file multicast-udp-transport.cpp.
Definition at line 34 of file tcp-channel.cpp.
Definition at line 35 of file tcp-factory.cpp.
Definition at line 36 of file tcp-transport.cpp.
Definition at line 36 of file tcp-transport.cpp.
Definition at line 32 of file transport.cpp.
const ssize_t nfd::face::MTU_UNLIMITED = -1 |
indicates the transport has no limit on payload size
Definition at line 96 of file transport.hpp.
Referenced by nfd::face::InternalForwarderTransport::InternalForwarderTransport(), nfd::face::LpReliability::piggyback(), nfd::face::Transport::receive(), nfd::face::Transport::send(), nfd::face::Transport::setMtu(), nfd::face::TcpTransport::TcpTransport(), nfd::face::UnixStreamTransport::UnixStreamTransport(), and nfd::face::WebSocketTransport::WebSocketTransport().
const ssize_t nfd::face::MTU_INVALID = -2 |
(for internal use) indicates MTU field is unset
Definition at line 100 of file transport.hpp.
const ssize_t nfd::face::QUEUE_UNSUPPORTED = -1 |
indicates that the transport does not support reading the queue capacity/length
Definition at line 104 of file transport.hpp.
Referenced by ns3::ndn::NetDeviceTransport::getSendQueueLength(), nfd::face::Transport::getSendQueueLength(), and getTxQueueLength().
const ssize_t nfd::face::QUEUE_ERROR = -2 |
indicates that the transport was unable to retrieve the queue capacity/length
Definition at line 108 of file transport.hpp.
Referenced by nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast >::DatagramTransport(), nfd::face::StreamTransport< boost::asio::local::stream_protocol >::getSendQueueLength(), nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast >::getSendQueueLength(), nfd::face::MulticastUdpTransport::getSendQueueLength(), getTxQueueLength(), and nfd::face::MulticastUdpTransport::MulticastUdpTransport().
Definition at line 34 of file udp-channel.cpp.
Definition at line 41 of file udp-factory.cpp.
Definition at line 33 of file unicast-ethernet-transport.cpp.
Definition at line 39 of file unicast-udp-transport.cpp.
Definition at line 37 of file unix-stream-channel.cpp.
Definition at line 33 of file unix-stream-factory.cpp.
Definition at line 31 of file unix-stream-transport.cpp.
Definition at line 34 of file websocket-channel.cpp.
Definition at line 33 of file websocket-factory.cpp.
Definition at line 31 of file websocket-transport.cpp.