Classes | |
class | Channel |
Represents a channel that listens 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... | |
struct | 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 an InternalForwarderTransport. More... | |
class | InternalForwarderTransport |
Implements a forwarder-side transport that can be paired with another transport. More... | |
class | InternalTransportBase |
Abstracts a transport that can be paired with another. More... | |
class | IpAddressPredicate |
Represents a predicate to accept or reject an IP address. 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 | NetdevBound |
manages netdev-bound faces More... | |
class | NetworkInterfacePredicate |
Represents a predicate to accept or reject a ndn::net::NetworkInterface. More... | |
class | NetworkPredicateBase |
class | NullLinkService |
A LinkService that drops every packet. More... | |
class | NullTransport |
A Transport that drops every packet. 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 half of a Face. More... | |
class | TransportCounters |
Counters provided by a 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 | DetermineFaceScopeFromAddress = std::function< ndn::nfd::FaceScope(const boost::asio::ip::address &local, const boost::asio::ip::address &remote)> |
using | EndpointId = uint64_t |
Identifies a remote endpoint on the link. More... | |
using | FaceCreatedCallback = std::function< void(const shared_ptr< 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... | |
using | FaceId = uint64_t |
Identifies a face. More... | |
typedef TransportState | FaceState |
indicates the state of a face More... | |
Enumerations | |
enum | TransportState { TransportState::NONE, TransportState::UP, TransportState::DOWN, TransportState::CLOSING, TransportState::FAILED, TransportState::CLOSED } |
Indicates the state of a transport. More... | |
Functions | |
static void | bindToDevice (int fd, const std::string &ifname) |
void | connectFaceClosedSignal (Face &face, std::function< void()> f) |
Invokes a callback when a face is closed. More... | |
static bool | doesAddressMatchRule (const boost::asio::ip::address &address, const std::string &rule) |
static bool | doesMatchPattern (const std::string &ifname, const std::string &pattern) |
static bool | doesNetifMatchRule (const ndn::net::NetworkInterface &netif, const std::string &rule) |
ssize_t | getTxQueueLength (int fd) |
obtain send queue length from a specified system socket More... | |
static bool | isLoopback (const boost::asio::ip::address &addr) |
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... | |
shared_ptr< Face > | makeNullFace (const FaceUri &uri) |
std::ostream & | operator<< (std::ostream &os, TransportState state) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< Face > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LinkService > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LpFragmenter > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< LpReassembler > &flh) |
std::ostream & | operator<< (std::ostream &os, const FaceLogHelper< Transport > &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< LpReliability > &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) |
static optional< ip::address > | pickAddress (const net::NetworkInterface &netif, net::AddressFamily af) |
Variables | |
const std::string | CFGSEC_FACESYSTEM = "face_system" |
const std::string | CFGSEC_GENERAL = "general" |
const std::string | CFGSEC_GENERAL_FQ = CFGSEC_FACESYSTEM + ".general" |
const std::string | CFGSEC_NETDEVBOUND = "netdev_bound" |
constexpr size_t | CONGESTION_MARK_SIZE |
const FaceId | FACEID_CONTENT_STORE = 254 |
identifies a packet comes from the ContentStore More... | |
const FaceId | FACEID_INTERNAL_FACE = 1 |
identifies the InternalFace used in management 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... | |
static class nfd::face::NfdAutoEthernetFactoryProtocolFactoryRegistrationClass | g_nfdAutoEthernetFactoryProtocolFactoryRegistrationVariable |
static class nfd::face::NfdAutoTcpFactoryProtocolFactoryRegistrationClass | g_nfdAutoTcpFactoryProtocolFactoryRegistrationVariable |
static class nfd::face::NfdAutoUdpFactoryProtocolFactoryRegistrationClass | g_nfdAutoUdpFactoryProtocolFactoryRegistrationVariable |
static class nfd::face::NfdAutoUnixStreamFactoryProtocolFactoryRegistrationClass | g_nfdAutoUnixStreamFactoryProtocolFactoryRegistrationVariable |
static class nfd::face::NfdAutoWebSocketFactoryProtocolFactoryRegistrationClass | g_nfdAutoWebSocketFactoryProtocolFactoryRegistrationVariable |
const FaceId | INVALID_FACEID = ndn::nfd::INVALID_FACE_ID |
indicates an invalid FaceId More... | |
static const size_t | MAX_FRAG_OVERHEAD |
maximum overhead of adding fragmentation to payload, not counting other NDNLPv2 headers More... | |
static const size_t | MAX_SINGLE_FRAG_OVERHEAD |
maximum overhead on a single fragment, not counting other NDNLPv2 headers More... | |
const ssize_t | MIN_MTU = 64 |
Minimum MTU that may be set. More... | |
const ssize_t | MTU_INVALID = -2 |
(for internal use) indicates MTU field is unset More... | |
const ssize_t | MTU_UNLIMITED = -1 |
indicates the transport has no limit on payload size More... | |
const ssize_t | QUEUE_ERROR = -2 |
indicates that the transport was unable to retrieve the queue capacity/length More... | |
const ssize_t | QUEUE_UNSUPPORTED = -1 |
indicates that the transport does not support reading the queue capacity/length More... | |
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 40 of file tcp-channel.hpp.
using nfd::face::EndpointId = typedef uint64_t |
Identifies a remote endpoint on the link.
This ID is only meaningful in the context of the same Transport. Incoming packets from the same remote endpoint have the same EndpointId, and incoming packets from different remote endpoints have different EndpointIds.
Typically, a point-to-point Transport has only one meaningful EndpointId (usually 0).
Definition at line 71 of file face-common.hpp.
using nfd::face::FaceCreatedCallback = typedef std::function<void(const shared_ptr<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 74 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 78 of file channel.hpp.
using nfd::face::FaceId = typedef uint64_t |
Identifies a face.
Definition at line 44 of file face-common.hpp.
typedef TransportState nfd::face::FaceState |
|
strong |
Indicates the state of a transport.
Definition at line 37 of file transport.hpp.
|
static |
Definition at line 113 of file multicast-udp-transport.cpp.
void nfd::face::connectFaceClosedSignal | ( | Face & | face, |
std::function< void()> | f | ||
) |
Invokes a callback when a 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 of face
, and invokes f
when the state becomes CLOSED.
Definition at line 41 of file channel.cpp.
|
static |
Definition at line 206 of file network-predicate.cpp.
|
static |
Definition at line 173 of file network-predicate.cpp.
|
static |
Definition at line 181 of file network-predicate.cpp.
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.
|
static |
Definition at line 35 of file websocket-transport.cpp.
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.
shared_ptr< Face > nfd::face::makeNullFace | ( | const FaceUri & | uri = FaceUri("null://") | ) |
Definition at line 34 of file null-face.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
TransportState | state | ||
) |
Definition at line 35 of file transport.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< Face > & | flh | ||
) |
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LinkService > & | flh | ||
) |
Definition at line 125 of file link-service.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LpFragmenter > & | flh | ||
) |
Definition at line 146 of file lp-fragmenter.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LpReassembler > & | flh | ||
) |
Definition at line 159 of file lp-reassembler.cpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< Transport > & | flh | ||
) |
Definition at line 227 of file transport.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 255 of file link-service.hpp.
std::ostream & nfd::face::operator<< | ( | std::ostream & | os, |
const FaceLogHelper< LpReliability > & | flh | ||
) |
Definition at line 426 of file lp-reliability.cpp.
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 474 of file transport.hpp.
|
static |
Definition at line 376 of file udp-factory.cpp.
const std::string nfd::face::CFGSEC_FACESYSTEM = "face_system" |
Definition at line 37 of file face-system.cpp.
const std::string nfd::face::CFGSEC_GENERAL = "general" |
Definition at line 38 of file face-system.cpp.
const std::string nfd::face::CFGSEC_GENERAL_FQ = CFGSEC_FACESYSTEM + ".general" |
Definition at line 39 of file face-system.cpp.
const std::string nfd::face::CFGSEC_NETDEVBOUND = "netdev_bound" |
Definition at line 40 of file face-system.cpp.
constexpr size_t nfd::face::CONGESTION_MARK_SIZE |
Definition at line 38 of file generic-link-service.cpp.
const FaceId nfd::face::FACEID_CONTENT_STORE = 254 |
identifies a packet comes from the ContentStore
Definition at line 51 of file face-common.hpp.
const FaceId nfd::face::FACEID_INTERNAL_FACE = 1 |
identifies the InternalFace used in management
Definition at line 49 of file face-common.hpp.
const FaceId nfd::face::FACEID_NULL = 255 |
identifies the NullFace that drops every packet
Definition at line 53 of file face-common.hpp.
const FaceId nfd::face::FACEID_RESERVED_MAX = 255 |
upper bound of reserved FaceIds
Definition at line 55 of file face-common.hpp.
|
static |
|
static |
|
static |
|
static |
|
static |
const FaceId nfd::face::INVALID_FACEID = ndn::nfd::INVALID_FACE_ID |
indicates an invalid FaceId
Definition at line 47 of file face-common.hpp.
|
static |
maximum overhead of adding fragmentation to payload, not counting other NDNLPv2 headers
Definition at line 53 of file lp-fragmenter.cpp.
|
static |
maximum overhead on a single fragment, not counting other NDNLPv2 headers
Definition at line 45 of file lp-fragmenter.cpp.
const ssize_t nfd::face::MIN_MTU = 64 |
Minimum MTU that may be set.
This is done to ensure the NDNLPv2 fragmentation feature functions properly.
Definition at line 61 of file face-common.hpp.
const ssize_t nfd::face::MTU_INVALID = -2 |
(for internal use) indicates MTU field is unset
Definition at line 95 of file transport.hpp.
const ssize_t nfd::face::MTU_UNLIMITED = -1 |
indicates the transport has no limit on payload size
Definition at line 91 of file transport.hpp.
const ssize_t nfd::face::QUEUE_ERROR = -2 |
indicates that the transport was unable to retrieve the queue capacity/length
Definition at line 103 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 99 of file transport.hpp.