NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.3: 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:

Public Member Functions

 MulticastUdpTransport (const protocol::endpoint &localEndpoint, const protocol::endpoint &multicastGroup, protocol::socket &&recvSocket, protocol::socket &&sendSocket)
 Creates a UDP-based transport for multicast communication. 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 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 ()
 
virtual const Counters & getCounters () const
 
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
 

Protected Member Functions

virtual void beforeChangePersistency (ndn::nfd::FacePersistency newPersistency) final
 invoked before persistency is changed 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 ()
 
- 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)
 

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
typedef uint64_t EndpointId
 identifies an endpoint on the link More...
 
typedef TransportCounters Counters
 counters provided by Transport More...
 
- Public Attributes inherited from nfd::face::Transport
signal::Signal< Transport, TransportState, TransportState > afterStateChange
 signals when transport state changes 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 45 of file multicast-udp-transport.hpp.

Constructor & Destructor Documentation

◆ MulticastUdpTransport()

nfd::face::MulticastUdpTransport::MulticastUdpTransport ( const protocol::endpoint &  localEndpoint,
const protocol::endpoint &  multicastGroup,
protocol::socket &&  recvSocket,
protocol::socket &&  sendSocket 
)

Creates a UDP-based transport for multicast communication.

Parameters
localEndpointlocal endpoint
multicastGroupmulticast group
recvSocketsocket used to receive packets
sendSocketsocket used to send to the multicast group

Definition at line 35 of file multicast-udp-transport.cpp.

References nfd::udp::computeMtu(), ndn::nfd::FACE_PERSISTENCY_PERMANENT, ndn::nfd::FACE_SCOPE_NON_LOCAL, ndn::nfd::LINK_TYPE_MULTI_ACCESS, NFD_LOG_FACE_INFO, nfd::face::Transport::setLinkType(), nfd::face::Transport::setLocalUri(), nfd::face::Transport::setMtu(), nfd::face::Transport::setPersistency(), nfd::face::Transport::setRemoteUri(), and nfd::face::Transport::setScope().

Member Function Documentation

◆ beforeChangePersistency()

void nfd::face::MulticastUdpTransport::beforeChangePersistency ( ndn::nfd::FacePersistency  newPersistency)
finalprotectedvirtual

invoked before persistency is changed

Exceptions
std::invalid_argumentnew persistency is not supported
std::runtime_errortransition is disallowed

Implements nfd::face::Transport.

Definition at line 54 of file multicast-udp-transport.cpp.

References nfd::face::DatagramTransport< Protocol, Addressing >::doClose(), ndn::nfd::FACE_PERSISTENCY_PERMANENT, nfd::face::DatagramTransport< boost::asio::ip::udp, Multicast >::handleSend(), and NFD_LOG_FACE_TRACE.


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