A unicast Transport that uses raw Ethernet II frames. More...
#include <unicast-ethernet-transport.hpp>
Public Member Functions | |
UnicastEthernetTransport (const ndn::net::NetworkInterface &localEndpoint, const ethernet::Address &remoteEndpoint, ndn::nfd::FacePersistency persistency, time::nanoseconds idleTimeout) | |
Creates an Ethernet-based transport for unicast communication. More... | |
Public Member Functions inherited from nfd::face::EthernetTransport | |
void | receivePayload (span< const uint8_t > payload, const ethernet::Address &sender) |
Processes the payload of an incoming frame. 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 |
virtual ssize_t | getSendQueueLength () |
Protected Member Functions | |
bool | canChangePersistencyToImpl (ndn::nfd::FacePersistency newPersistency) const final |
invoked by canChangePersistencyTo to perform the check More... | |
void | afterChangePersistency (ndn::nfd::FacePersistency oldPersistency) final |
invoked after the persistency has been changed More... | |
Protected Member Functions inherited from nfd::face::EthernetTransport | |
EthernetTransport (const ndn::net::NetworkInterface &localEndpoint, const ethernet::Address &remoteEndpoint) | |
void | doClose () final |
performs Transport specific operations to close the transport More... | |
bool | hasRecentlyReceived () const |
void | resetRecentlyReceived () |
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) |
Additional Inherited Members | |
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 Attributes inherited from nfd::face::EthernetTransport | |
boost::asio::posix::stream_descriptor | m_socket |
PcapHelper | m_pcap |
ethernet::Address | m_srcAddress |
ethernet::Address | m_destAddress |
std::string | m_interfaceName |
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 unicast Transport that uses raw Ethernet II frames.
Definition at line 37 of file unicast-ethernet-transport.hpp.
nfd::face::UnicastEthernetTransport::UnicastEthernetTransport | ( | const ndn::net::NetworkInterface & | localEndpoint, |
const ethernet::Address & | remoteEndpoint, | ||
ndn::nfd::FacePersistency | persistency, | ||
time::nanoseconds | idleTimeout | ||
) |
Creates an Ethernet-based transport for unicast communication.
Definition at line 36 of file unicast-ethernet-transport.cpp.
References ndn::ethernet::ETHERTYPE_NDN, ndn::nfd::FACE_PERSISTENCY_ON_DEMAND, ndn::nfd::FACE_SCOPE_NON_LOCAL, ndn::FaceUri::fromDev(), ndn::net::NetworkInterface::getMtu(), nfd::face::Transport::getPersistency(), ndn::nfd::LINK_TYPE_POINT_TO_POINT, nfd::face::EthernetTransport::m_destAddress, nfd::face::EthernetTransport::m_interfaceName, nfd::face::EthernetTransport::m_pcap, nfd::face::EthernetTransport::m_srcAddress, NFD_LOG_FACE_DEBUG, nfd::face::Transport::setLinkType(), nfd::face::Transport::setLocalUri(), nfd::face::Transport::setMtu(), nfd::face::PcapHelper::setPacketFilter(), nfd::face::Transport::setPersistency(), nfd::face::Transport::setRemoteUri(), nfd::face::Transport::setScope(), and ndn::ethernet::Address::toString().
|
finalprotectedvirtual |
invoked by canChangePersistencyTo to perform the check
Base class implementation returns false.
newPersistency | the new persistency, guaranteed to be different from current persistency |
Reimplemented from nfd::face::Transport.
Definition at line 71 of file unicast-ethernet-transport.cpp.
|
finalprotectedvirtual |
invoked after the persistency has been changed
The base class implementation does nothing. When overridden in a subclass, the function should update internal states after persistency setting has been changed.
Reimplemented from nfd::face::Transport.
Definition at line 77 of file unicast-ethernet-transport.cpp.
References ndn::detail::ScopedCancelHandle< HandleT >::cancel(), nfd::face::Transport::close(), ndn::nfd::FACE_PERSISTENCY_ON_DEMAND, nfd::face::Transport::getPersistency(), nfd::getScheduler(), nfd::face::EthernetTransport::hasRecentlyReceived(), NFD_LOG_FACE_INFO, ndn::time::steady_clock::now(), nfd::face::EthernetTransport::resetRecentlyReceived(), and nfd::face::Transport::setExpirationTime().