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

A Transport that communicates on a UDP multicast group. More...

#include <multicast-udp-transport.hpp>

Inheritance diagram for nfd::face::MulticastUdpTransport:
Collaboration diagram for nfd::face::MulticastUdpTransport:

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 (span< const uint8_t > buffer, 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)
 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 >
using protocol = boost::asio::ip::udp
 
- 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...
 
- 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) 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...
 

Detailed Description

A Transport that communicates on a UDP multicast group.

Definition at line 49 of file multicast-udp-transport.hpp.

Constructor & Destructor Documentation

◆ MulticastUdpTransport()

nfd::face::MulticastUdpTransport::MulticastUdpTransport ( const protocol::endpoint &  multicastGroup,
protocol::socket &&  recvSocket,
protocol::socket &&  sendSocket,
ndn::nfd::LinkType  linkType 
)

Member Function Documentation

◆ getSendQueueLength()

ssize_t nfd::face::MulticastUdpTransport::getSendQueueLength ( )
finalvirtual
Returns
current send queue length of the transport (in octets)
Return values
QUEUE_UNSUPPORTEDtransport does not support queue length retrieval
QUEUE_ERRORtransport 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::DatagramTransport< Protocol, Addressing >::doClose(), nfd::face::getTxQueueLength(), nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast >::handleSend(), NFD_LOG_FACE_TRACE, NFD_LOG_FACE_WARN, and nfd::face::QUEUE_ERROR.

◆ openRxSocket()

void nfd::face::MulticastUdpTransport::openRxSocket ( protocol::socket &  sock,
const protocol::endpoint &  multicastGroup,
const boost::asio::ip::address &  localAddress,
const shared_ptr< const ndn::net::NetworkInterface > &  netif = nullptr 
)
static

◆ openTxSocket()

void nfd::face::MulticastUdpTransport::openTxSocket ( protocol::socket &  sock,
const protocol::endpoint &  localEndpoint,
const shared_ptr< const ndn::net::NetworkInterface > &  netif = nullptr,
bool  enableLoopback = false 
)
static

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