NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.5: NDN, CCN, CCNx, content centric networks
API Documentation
ndn::net Namespace Reference

Namespaces

 detail
 

Classes

class  GenlFamilyResolver
 
class  GenlSocket
 
class  IfAddrs
 
class  NetlinkMessage
 
class  NetlinkMessageAttributes
 
class  NetlinkSocket
 
class  NetlinkSocketOption
 
class  NetworkAddress
 Stores one IP address supported by a network interface. More...
 
class  NetworkInterface
 Represents one network interface attached to the host. More...
 
class  NetworkMonitor
 Network interface monitor. More...
 
class  NetworkMonitorImpl
 
class  NetworkMonitorImplNetlink
 
class  NetworkMonitorImplNoop
 
class  NetworkMonitorImplOsx
 
class  NetworkMonitorImplStub
 
class  NetworkMonitorStub
 a stub NetworkMonitor for unit testing More...
 
class  RtnlSocket
 

Enumerations

enum  AddressFamily { AddressFamily::UNSPECIFIED, AddressFamily::V4, AddressFamily::V6 }
 
enum  AddressScope { AddressScope::NOWHERE, AddressScope::HOST, AddressScope::LINK, AddressScope::GLOBAL }
 
enum  InterfaceType { InterfaceType::UNKNOWN, InterfaceType::LOOPBACK, InterfaceType::ETHERNET }
 Indicates the hardware type of a network interface. More...
 
enum  InterfaceState {
  InterfaceState::UNKNOWN, InterfaceState::DOWN, InterfaceState::NO_CARRIER, InterfaceState::DORMANT,
  InterfaceState::RUNNING
}
 Indicates the state of a network interface. More...
 

Functions

template<typename T >
constexpr size_t getAttributeLength (const T *attr)
 
template<>
constexpr size_t getAttributeLength (const nlattr *attr)
 
template<>
constexpr size_t getAttributeLength (const rtattr *attr)
 
template<typename T >
constexpr size_t getAttributeLengthAligned (const T *attr)
 
template<>
constexpr size_t getAttributeLengthAligned (const nlattr *attr)
 
template<>
constexpr size_t getAttributeLengthAligned (const rtattr *attr)
 
template<typename T >
constexpr uint16_t getAttributeType (const T *attr)
 
template<>
constexpr uint16_t getAttributeType (const nlattr *attr)
 
template<>
constexpr uint16_t getAttributeType (const rtattr *attr)
 
template<typename T >
const uint8_t * getAttributeValue (const T *attr)
 
template<>
const uint8_t * getAttributeValue (const nlattr *attr)
 
template<>
const uint8_t * getAttributeValue (const rtattr *attr)
 
template<typename T >
constexpr size_t getAttributeValueLength (const T *attr)
 
template<>
constexpr size_t getAttributeValueLength (const nlattr *attr)
 
template<>
constexpr size_t getAttributeValueLength (const rtattr *attr)
 
static InterfaceType ifiTypeToInterfaceType (uint16_t type)
 
static AddressFamily ifaFamilyToAddressFamily (uint8_t family)
 
static AddressScope ifaScopeToAddressScope (uint8_t scope)
 
static void updateInterfaceState (NetworkInterface &interface, uint8_t operState)
 
template<typename AddressBytes >
static uint8_t computePrefixLength (const AddressBytes &mask)
 
std::ostream & operator<< (std::ostream &os, AddressScope scope)
 
std::ostream & operator<< (std::ostream &os, const NetworkAddress &addr)
 
std::ostream & operator<< (std::ostream &os, InterfaceType type)
 
std::ostream & operator<< (std::ostream &os, InterfaceState state)
 
static void printFlag (std::ostream &os, uint32_t &flags, uint32_t flagVal, const char *flagStr)
 
std::ostream & operator<< (std::ostream &os, const NetworkInterface &netif)
 
static unique_ptr< NetworkMonitorImplmakeNetworkMonitorImpl (boost::asio::io_service &io)
 

Enumeration Type Documentation

◆ AddressFamily

Enumerator
UNSPECIFIED 
V4 
V6 

Definition at line 34 of file network-address.hpp.

◆ AddressScope

Enumerator
NOWHERE 
HOST 
LINK 
GLOBAL 

Definition at line 40 of file network-address.hpp.

◆ InterfaceType

Indicates the hardware type of a network interface.

Enumerator
UNKNOWN 
LOOPBACK 
ETHERNET 

Definition at line 38 of file network-interface.hpp.

◆ InterfaceState

Indicates the state of a network interface.

Enumerator
UNKNOWN 

interface is in an unknown state

DOWN 

interface is administratively down

NO_CARRIER 

interface is administratively up but has no carrier

DORMANT 

interface has a carrier but it cannot send or receive normal user traffic yet

RUNNING 

interface can be used to send and receive packets

Definition at line 50 of file network-interface.hpp.

Function Documentation

◆ getAttributeLength() [1/3]

template<typename T >
constexpr size_t ndn::net::getAttributeLength ( const T *  attr)

◆ getAttributeLength() [2/3]

template<>
constexpr size_t ndn::net::getAttributeLength ( const nlattr *  attr)

Definition at line 53 of file netlink-message.hpp.

◆ getAttributeLength() [3/3]

template<>
constexpr size_t ndn::net::getAttributeLength ( const rtattr *  attr)

Definition at line 60 of file netlink-message.hpp.

References getAttributeLengthAligned().

◆ getAttributeLengthAligned() [1/3]

template<typename T >
constexpr size_t ndn::net::getAttributeLengthAligned ( const T *  attr)

◆ getAttributeLengthAligned() [2/3]

template<>
constexpr size_t ndn::net::getAttributeLengthAligned ( const nlattr *  attr)

Definition at line 71 of file netlink-message.hpp.

◆ getAttributeLengthAligned() [3/3]

template<>
constexpr size_t ndn::net::getAttributeLengthAligned ( const rtattr *  attr)

Definition at line 78 of file netlink-message.hpp.

References getAttributeType().

◆ getAttributeType() [1/3]

template<typename T >
constexpr uint16_t ndn::net::getAttributeType ( const T *  attr)

◆ getAttributeType() [2/3]

template<>
constexpr uint16_t ndn::net::getAttributeType ( const nlattr *  attr)

Definition at line 89 of file netlink-message.hpp.

◆ getAttributeType() [3/3]

template<>
constexpr uint16_t ndn::net::getAttributeType ( const rtattr *  attr)

Definition at line 96 of file netlink-message.hpp.

References getAttributeValue().

◆ getAttributeValue() [1/3]

template<typename T >
const uint8_t* ndn::net::getAttributeValue ( const T *  attr)

◆ getAttributeValue() [2/3]

template<>
const uint8_t* ndn::net::getAttributeValue ( const nlattr *  attr)
inline

Definition at line 107 of file netlink-message.hpp.

◆ getAttributeValue() [3/3]

template<>
const uint8_t* ndn::net::getAttributeValue ( const rtattr *  attr)
inline

Definition at line 114 of file netlink-message.hpp.

References getAttributeValueLength().

◆ getAttributeValueLength() [1/3]

template<typename T >
constexpr size_t ndn::net::getAttributeValueLength ( const T *  attr)

Referenced by getAttributeValue().

◆ getAttributeValueLength() [2/3]

template<>
constexpr size_t ndn::net::getAttributeValueLength ( const nlattr *  attr)

Definition at line 125 of file netlink-message.hpp.

◆ getAttributeValueLength() [3/3]

template<>
constexpr size_t ndn::net::getAttributeValueLength ( const rtattr *  attr)

Definition at line 132 of file netlink-message.hpp.

◆ ifiTypeToInterfaceType()

static InterfaceType ndn::net::ifiTypeToInterfaceType ( uint16_t  type)
static

Definition at line 173 of file network-monitor-impl-netlink.cpp.

References ETHERNET, LOOPBACK, and UNKNOWN.

Referenced by updateInterfaceState().

◆ ifaFamilyToAddressFamily()

static AddressFamily ndn::net::ifaFamilyToAddressFamily ( uint8_t  family)
static

Definition at line 186 of file network-monitor-impl-netlink.cpp.

References UNSPECIFIED, V4, and V6.

Referenced by updateInterfaceState().

◆ ifaScopeToAddressScope()

static AddressScope ndn::net::ifaScopeToAddressScope ( uint8_t  scope)
static

Definition at line 199 of file network-monitor-impl-netlink.cpp.

References GLOBAL, HOST, LINK, and NOWHERE.

Referenced by updateInterfaceState().

◆ updateInterfaceState()

◆ computePrefixLength()

◆ operator<<() [1/5]

std::ostream & ndn::net::operator<< ( std::ostream &  os,
AddressScope  scope 
)

Definition at line 34 of file network-address.cpp.

References GLOBAL, HOST, LINK, and NOWHERE.

◆ operator<<() [2/5]

std::ostream & ndn::net::operator<< ( std::ostream &  os,
const NetworkAddress addr 
)

◆ operator<<() [3/5]

std::ostream & ndn::net::operator<< ( std::ostream &  os,
InterfaceType  type 
)

◆ operator<<() [4/5]

std::ostream & ndn::net::operator<< ( std::ostream &  os,
InterfaceState  state 
)

◆ printFlag()

static void ndn::net::printFlag ( std::ostream &  os,
uint32_t &  flags,
uint32_t  flagVal,
const char *  flagStr 
)
static

Definition at line 161 of file network-interface.cpp.

◆ operator<<() [5/5]

◆ makeNetworkMonitorImpl()

static unique_ptr<NetworkMonitorImpl> ndn::net::makeNetworkMonitorImpl ( boost::asio::io_service &  io)
static

Definition at line 46 of file network-monitor.cpp.

References NDN_LOG_WARN, and NETWORK_MONITOR_IMPL_TYPE.