A multicast Transport that uses raw Ethernet II frames. More...
#include <ethernet-transport.hpp>
Classes | |
class | Error |
Public Types | |
typedef WebSocketTransportCounters | Counters |
counters provided by WebSocketTransport More... | |
Public Types inherited from nfd::face::Transport | |
typedef uint64_t | EndpointId |
identifies an endpoint on the link More... | |
typedef TransportCounters | Counters |
counters provided by Transport More... | |
Public Types inherited from nfd::face::StreamTransport< boost::asio::local::stream_protocol > | |
typedef boost::asio::local::stream_protocol | protocol |
Public Types inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
typedef boost::asio::ip::udp | protocol |
Public Types inherited from nfd::face::StreamTransport< boost::asio::ip::tcp > | |
typedef boost::asio::ip::tcp | protocol |
Public Types inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
typedef boost::asio::ip::udp | protocol |
Public Member Functions | |
EthernetTransport (const NetworkInterfaceInfo &interface, const ethernet::Address &mcastAddress) | |
Creates an Ethernet-based transport for multicast communication. More... | |
Face (unique_ptr< LinkService > service, unique_ptr< Transport > transport) | |
LinkService * | getLinkService () |
Transport * | getTransport () |
void | sendInterest (const Interest &interest) |
sends Interest on Face More... | |
void | sendData (const Data &data) |
sends Data on Face More... | |
void | sendNack (const lp::Nack &nack) |
sends Nack on Face 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 FaceCounters & | getCounters () const |
MulticastUdpTransport (const protocol::endpoint &localEndpoint, const protocol::endpoint &multicastGroup, protocol::socket &&recvSocket, protocol::socket &&sendSocket) | |
Creates a UDP-based transport for multicast communication. More... | |
TcpTransport (protocol::socket &&socket, ndn::nfd::FacePersistency persistency) | |
UnicastUdpTransport (protocol::socket &&socket, ndn::nfd::FacePersistency persistency, time::nanoseconds idleTimeout) | |
UnixStreamTransport (protocol::socket &&socket) | |
WebSocketTransport (websocketpp::connection_hdl hdl, websocket::Server &server, time::milliseconds pingInterval) | |
virtual const Counters & | getCounters () const 1 |
void | receiveMessage (const std::string &msg) |
Translates a message into a Block and delivers it to the link service. More... | |
void | handlePong () |
void | handlePongTimeout () |
Public Member Functions inherited from nfd::face::Transport | |
Transport () | |
constructor More... | |
virtual | ~Transport () |
void | setFaceAndLinkService (Face &face, LinkService &service) |
set Face and LinkService for Transport More... | |
const Face * | getFace () const |
const LinkService * | getLinkService () const |
LinkService * | getLinkService () |
void | close () |
request the transport to be closed More... | |
void | send (Packet &&packet) |
send a link-layer packet More... | |
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 |
ssize_t | getMtu () const |
TransportState | getState () const |
time::steady_clock::TimePoint | getExpirationTime () const |
Public Member Functions inherited from nfd::face::StreamTransport< boost::asio::local::stream_protocol > | |
StreamTransport (typename protocol::socket &&socket) | |
Construct stream transport. More... | |
Public Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
void | receiveDatagram (const uint8_t *buffer, size_t nBytesReceived, const boost::system::error_code &error) |
Receive datagram, translate buffer into packet, deliver to parent class. More... | |
Public Member Functions inherited from nfd::face::StreamTransport< boost::asio::ip::tcp > | |
StreamTransport (typename protocol::socket &&socket) | |
Construct stream transport. More... | |
Public Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
void | receiveDatagram (const uint8_t *buffer, size_t nBytesReceived, const boost::system::error_code &error) |
Receive datagram, translate buffer into packet, deliver to parent class. More... | |
Public Attributes | |
signal::Signal< LinkService, Interest > & | afterReceiveInterest |
signals on Interest received More... | |
signal::Signal< LinkService, Data > & | afterReceiveData |
signals on Data received More... | |
signal::Signal< LinkService, lp::Nack > & | afterReceiveNack |
signals on Nack received More... | |
signal::Signal< Transport, FaceState, FaceState > & | afterStateChange |
signals after face state changed More... | |
Public Attributes inherited from nfd::face::Transport | |
signal::Signal< Transport, TransportState, TransportState > | afterStateChange |
signals when transport state changes More... | |
Protected Member Functions | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | doClose () DECL_FINAL |
performs Transport specific operations to close the transport More... | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) DECL_FINAL |
invoked before persistency is changed More... | |
virtual void | doClose () DECL_FINAL |
performs Transport specific operations to close the transport More... | |
Protected Member Functions inherited from nfd::face::Transport | |
void | receive (Packet &&packet) |
receive a link-layer packet More... | |
void | setLocalUri (const FaceUri &uri) |
void | setRemoteUri (const FaceUri &uri) |
void | setScope (ndn::nfd::FaceScope scope) |
void | setLinkType (ndn::nfd::LinkType linkType) |
void | setMtu (ssize_t mtu) |
void | setState (TransportState newState) |
set transport state More... | |
void | setExpirationTime (const time::steady_clock::TimePoint &expirationTime) |
Protected Member Functions inherited from nfd::face::StreamTransport< boost::asio::local::stream_protocol > | |
void | deferredClose () |
void | sendFromQueue () |
void | handleSend (const boost::system::error_code &error, size_t nBytesSent) |
void | handleReceive (const boost::system::error_code &error, size_t nBytesReceived) |
void | processErrorCode (const boost::system::error_code &error) |
NFD_LOG_INCLASS_DECLARE () | |
StreamTransport (typename protocol::socket &&socket) | |
Construct stream transport. More... | |
Protected Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
void | handleSend (const boost::system::error_code &error, size_t nBytesSent, const Block &payload) |
void | handleReceive (const boost::system::error_code &error, size_t nBytesReceived) |
void | processErrorCode (const boost::system::error_code &error) |
bool | hasBeenUsedRecently () const |
void | resetRecentUsage () |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
NFD_LOG_INCLASS_DECLARE () | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
void | receiveDatagram (const uint8_t *buffer, size_t nBytesReceived, const boost::system::error_code &error) |
Receive datagram, translate buffer into packet, deliver to parent class. More... | |
Protected Member Functions inherited from nfd::face::StreamTransport< boost::asio::ip::tcp > | |
void | deferredClose () |
void | sendFromQueue () |
void | handleSend (const boost::system::error_code &error, size_t nBytesSent) |
void | handleReceive (const boost::system::error_code &error, size_t nBytesReceived) |
void | processErrorCode (const boost::system::error_code &error) |
NFD_LOG_INCLASS_DECLARE () | |
StreamTransport (typename protocol::socket &&socket) | |
Construct stream transport. More... | |
Protected Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
void | handleSend (const boost::system::error_code &error, size_t nBytesSent, const Block &payload) |
void | handleReceive (const boost::system::error_code &error, size_t nBytesReceived) |
void | processErrorCode (const boost::system::error_code &error) |
bool | hasBeenUsedRecently () const |
void | resetRecentUsage () |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
Transport::EndpointId | makeEndpointId (const protocol::endpoint &ep) |
NFD_LOG_INCLASS_DECLARE () | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
void | receiveDatagram (const uint8_t *buffer, size_t nBytesReceived, const boost::system::error_code &error) |
Receive datagram, translate buffer into packet, deliver to parent class. More... | |
Additional Inherited Members | |
Protected Types inherited from nfd::face::StreamTransport< boost::asio::local::stream_protocol > | |
typedef boost::asio::local::stream_protocol | protocol |
Protected Types inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
typedef boost::asio::ip::udp | protocol |
Protected Types inherited from nfd::face::StreamTransport< boost::asio::ip::tcp > | |
typedef boost::asio::ip::tcp | protocol |
Protected Types inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
typedef boost::asio::ip::udp | protocol |
Static Protected Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
static EndpointId | makeEndpointId (const typename protocol::endpoint &ep) |
Static Protected Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
static EndpointId | makeEndpointId (const typename protocol::endpoint &ep) |
Protected Attributes inherited from nfd::face::TransportCounters | |
PacketCounter | nInPackets |
count of incoming packets More... | |
PacketCounter | nOutPackets |
count of outgoing packets More... | |
ByteCounter | nInBytes |
total incoming bytes More... | |
ByteCounter | nOutBytes |
total outgoing bytes More... | |
Protected Attributes inherited from nfd::face::WebSocketTransportCounters | |
PacketCounter | nOutPings |
count of outgoing Pings More... | |
PacketCounter | nInPongs |
count of incoming Pongs More... | |
Protected Attributes inherited from nfd::face::StreamTransport< boost::asio::local::stream_protocol > | |
protocol::socket | m_socket |
Protected Attributes inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Unicast > | |
protocol::socket | m_socket |
protocol::endpoint | m_sender |
Protected Attributes inherited from nfd::face::StreamTransport< boost::asio::ip::tcp > | |
protocol::socket | m_socket |
Protected Attributes inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
protocol::socket | m_socket |
protocol::endpoint | m_sender |
A multicast Transport that uses raw Ethernet II frames.
A Transport that communicates on a WebSocket connection.
A Transport that communicates on a stream-oriented Unix domain socket.
A Transport that communicates on a unicast UDP socket.
A Transport that communicates on a connected TCP socket.
A Transport that communicates on a UDP multicast group.
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 48 of file ethernet-transport.hpp.
counters provided by WebSocketTransport
Definition at line 60 of file websocket-transport.hpp.
nfd::face::DECL_CLASS_FINAL::EthernetTransport | ( | const NetworkInterfaceInfo & | interface, |
const ethernet::Address & | mcastAddress | ||
) |
Creates an Ethernet-based transport for multicast communication.
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
|
protectedvirtual |
performs Transport specific operations to close the transport
This is invoked once by close()
after changing state to CLOSING. It will not be invoked by Transport class if the transport is already CLOSING or CLOSED.
When the cleanup procedure is complete, this method should change state to CLOSED. This transition can happen synchronously or asynchronously.
Implements nfd::face::Transport.
nfd::face::DECL_CLASS_FINAL::Face | ( | unique_ptr< LinkService > | service, |
unique_ptr< Transport > | transport | ||
) |
LinkService* nfd::face::DECL_CLASS_FINAL::getLinkService | ( | ) |
Transport* nfd::face::DECL_CLASS_FINAL::getTransport | ( | ) |
void nfd::face::DECL_CLASS_FINAL::sendInterest | ( | const Interest & | interest | ) |
sends Interest on Face
void nfd::face::DECL_CLASS_FINAL::sendData | ( | const Data & | data | ) |
sends Data on Face
void nfd::face::DECL_CLASS_FINAL::sendNack | ( | const lp::Nack & | nack | ) |
sends Nack on Face
FaceId nfd::face::DECL_CLASS_FINAL::getId | ( | ) | const |
void nfd::face::DECL_CLASS_FINAL::setId | ( | FaceId | id | ) |
sets face ID
void nfd::face::DECL_CLASS_FINAL::setMetric | ( | uint64_t | metric | ) |
uint64_t nfd::face::DECL_CLASS_FINAL::getMetric | ( | ) | const |
FaceUri nfd::face::DECL_CLASS_FINAL::getLocalUri | ( | ) | const |
FaceUri nfd::face::DECL_CLASS_FINAL::getRemoteUri | ( | ) | const |
ndn::nfd::FaceScope nfd::face::DECL_CLASS_FINAL::getScope | ( | ) | const |
ndn::nfd::FacePersistency nfd::face::DECL_CLASS_FINAL::getPersistency | ( | ) | const |
void nfd::face::DECL_CLASS_FINAL::setPersistency | ( | ndn::nfd::FacePersistency | persistency | ) |
changes face persistency setting
ndn::nfd::LinkType nfd::face::DECL_CLASS_FINAL::getLinkType | ( | ) | const |
FaceState nfd::face::DECL_CLASS_FINAL::getState | ( | ) | const |
time::steady_clock::TimePoint nfd::face::DECL_CLASS_FINAL::getExpirationTime | ( | ) | const |
time::steady_clock::TimePoint::max() | the face has an indefinite lifetime |
void nfd::face::DECL_CLASS_FINAL::close | ( | ) |
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.
|
virtual |
Reimplemented from nfd::face::Transport.
nfd::face::DECL_CLASS_FINAL::MulticastUdpTransport | ( | const protocol::endpoint & | localEndpoint, |
const protocol::endpoint & | multicastGroup, | ||
protocol::socket && | recvSocket, | ||
protocol::socket && | sendSocket | ||
) |
Creates a UDP-based transport for multicast communication.
localEndpoint | local endpoint |
multicastGroup | multicast group |
recvSocket | socket used to receive packets |
sendSocket | socket used to send to the multicast group |
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
nfd::face::DECL_CLASS_FINAL::TcpTransport | ( | protocol::socket && | socket, |
ndn::nfd::FacePersistency | persistency | ||
) |
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
nfd::face::DECL_CLASS_FINAL::UnicastUdpTransport | ( | protocol::socket && | socket, |
ndn::nfd::FacePersistency | persistency, | ||
time::nanoseconds | idleTimeout | ||
) |
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
|
explicit |
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
nfd::face::DECL_CLASS_FINAL::WebSocketTransport | ( | websocketpp::connection_hdl | hdl, |
websocket::Server & | server, | ||
time::milliseconds | pingInterval | ||
) |
|
virtual |
Reimplemented from nfd::face::Transport.
void nfd::face::DECL_CLASS_FINAL::receiveMessage | ( | const std::string & | msg | ) |
Translates a message into a Block and delivers it to the link service.
void nfd::face::DECL_CLASS_FINAL::handlePong | ( | ) |
void nfd::face::DECL_CLASS_FINAL::handlePongTimeout | ( | ) |
|
protectedvirtual |
invoked before persistency is changed
std::invalid_argument | new persistency is not supported |
std::runtime_error | transition is disallowed |
Implements nfd::face::Transport.
|
protectedvirtual |
performs Transport specific operations to close the transport
This is invoked once by close()
after changing state to CLOSING. It will not be invoked by Transport class if the transport is already CLOSING or CLOSED.
When the cleanup procedure is complete, this method should change state to CLOSED. This transition can happen synchronously or asynchronously.
Implements nfd::face::Transport.
signal::Signal<LinkService, Interest>& nfd::face::DECL_CLASS_FINAL::afterReceiveInterest |
signal::Signal<LinkService, Data>& nfd::face::DECL_CLASS_FINAL::afterReceiveData |
signal::Signal<LinkService, lp::Nack>& nfd::face::DECL_CLASS_FINAL::afterReceiveNack |
signal::Signal<Transport, FaceState, FaceState>& nfd::face::DECL_CLASS_FINAL::afterStateChange |