A Transport that communicates on a UDP multicast group. More...
#include <multicast-udp-transport.hpp>
Classes | |
class | Error |
Public Member Functions | |
MulticastUdpTransport (const protocol::endpoint &multicastGroup, protocol::socket &&recvSocket, protocol::socket &&sendSocket, ndn::nfd::LinkType linkType) | |
Creates a UDP-based transport for multicast communication. More... | |
ssize_t | getSendQueueLength () final |
Public Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
DatagramTransport (typename protocol::socket &&socket) | |
Construct datagram transport. More... | |
ssize_t | getSendQueueLength () override |
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::Transport | |
Transport () | |
Default 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 () |
virtual const Counters & | getCounters () const |
void | close () |
Request the transport to be closed. More... | |
void | send (const Block &packet, const EndpointId &endpoint=0) |
Send a link-layer packet. More... | |
FaceUri | getLocalUri () const |
FaceUri | getRemoteUri () const |
ndn::nfd::FaceScope | getScope () const |
ndn::nfd::FacePersistency | getPersistency () const |
bool | canChangePersistencyTo (ndn::nfd::FacePersistency newPersistency) const |
check whether the face persistency can be changed to newPersistency More... | |
void | setPersistency (ndn::nfd::FacePersistency newPersistency) |
changes face persistency setting More... | |
ndn::nfd::LinkType | getLinkType () const |
ssize_t | getMtu () const |
ssize_t | getSendQueueCapacity () const |
TransportState | getState () const |
time::steady_clock::TimePoint | getExpirationTime () const |
Static Public Member Functions | |
static void | openRxSocket (protocol::socket &sock, const protocol::endpoint &multicastGroup, const boost::asio::ip::address &localAddress, const shared_ptr< const ndn::net::NetworkInterface > &netif=nullptr) |
static void | openTxSocket (protocol::socket &sock, const protocol::endpoint &localEndpoint, const shared_ptr< const ndn::net::NetworkInterface > &netif=nullptr, bool enableLoopback=false) |
Additional Inherited Members | |
Public Types inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
typedef boost::asio::ip::udp | protocol |
Public Types inherited from nfd::face::Transport | |
using | Counters = TransportCounters |
Counters provided by a transport. More... | |
Public Attributes inherited from nfd::face::Transport | |
signal::Signal< Transport, TransportState, TransportState > | afterStateChange |
signals when transport state changes More... | |
Static Public Attributes inherited from nfd::face::Transport | |
static constexpr ssize_t | MIN_MTU = 64 |
minimum MTU that may be set on a transport More... | |
Protected Member Functions inherited from nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast > | |
void | doClose () override |
performs Transport specific operations to close the transport More... | |
void | doSend (const Block &packet, const EndpointId &endpoint) override |
performs Transport specific operations to send a packet More... | |
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) |
bool | hasRecentlyReceived () const |
void | resetRecentlyReceived () |
EndpointId | makeEndpointId (const protocol::endpoint &ep) |
EndpointId | makeEndpointId (const protocol::endpoint &ep) |
NFD_LOG_MEMBER_DECL () | |
Protected Member Functions inherited from nfd::face::Transport | |
void | receive (const Block &packet, const EndpointId &endpoint=0) |
Pass a received link-layer packet to the upper layer for further processing. 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 | setSendQueueCapacity (ssize_t sendQueueCapacity) |
void | setState (TransportState newState) |
set transport state More... | |
void | setExpirationTime (const time::steady_clock::TimePoint &expirationTime) |
virtual bool | canChangePersistencyToImpl (ndn::nfd::FacePersistency newPersistency) const |
invoked by canChangePersistencyTo to perform the check More... | |
virtual void | afterChangePersistency (ndn::nfd::FacePersistency oldPersistency) |
invoked after the persistency has been changed More... | |
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::DatagramTransport< boost::asio::ip::udp, Multicast > | |
protocol::socket | m_socket |
protocol::endpoint | m_sender |
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... | |
A Transport that communicates on a UDP multicast group.
Definition at line 49 of file multicast-udp-transport.hpp.
nfd::face::MulticastUdpTransport::MulticastUdpTransport | ( | const protocol::endpoint & | multicastGroup, |
protocol::socket && | recvSocket, | ||
protocol::socket && | sendSocket, | ||
ndn::nfd::LinkType | linkType | ||
) |
Creates a UDP-based transport for multicast communication.
multicastGroup | multicast group |
recvSocket | socket used to receive multicast packets |
sendSocket | socket used to send to the multicast group |
linkType | either ndn::nfd::LINK_TYPE_MULTI_ACCESS or ndn::nfd::LINK_TYPE_AD_HOC |
Definition at line 45 of file multicast-udp-transport.cpp.
References nfd::udp::computeMtu(), ndn::nfd::FACE_PERSISTENCY_PERMANENT, ndn::nfd::FACE_SCOPE_NON_LOCAL, NFD_LOG_FACE_DEBUG, NFD_LOG_FACE_WARN, nfd::face::QUEUE_ERROR, nfd::face::Transport::setLinkType(), nfd::face::Transport::setLocalUri(), nfd::face::Transport::setMtu(), nfd::face::Transport::setPersistency(), nfd::face::Transport::setRemoteUri(), nfd::face::Transport::setScope(), and nfd::face::Transport::setSendQueueCapacity().
|
finalvirtual |
QUEUE_UNSUPPORTED | transport does not support queue length retrieval |
QUEUE_ERROR | transport was unable to retrieve the queue length |
Reimplemented from nfd::face::Transport.
Definition at line 75 of file multicast-udp-transport.cpp.
References nfd::face::getTxQueueLength(), NFD_LOG_FACE_WARN, and nfd::face::QUEUE_ERROR.
|
static |
Definition at line 134 of file multicast-udp-transport.cpp.
References nfd::face::bindToDevice(), and ndn::net::NetworkInterface::getName().
Referenced by nfd::face::UdpFactory::createMulticastFace().
|
static |
Definition at line 169 of file multicast-udp-transport.cpp.
References ndn::net::NetworkInterface::getIndex().
Referenced by nfd::face::UdpFactory::createMulticastFace().