Q2NS dev
ns-3 module
Loading...
Searching...
No Matches
ns3::ClassicalNetworkBuilder Class Reference

#include <q2ns-classical-network-builder.h>

Inheritance diagram for ns3::ClassicalNetworkBuilder:
Collaboration diagram for ns3::ClassicalNetworkBuilder:

Classes

struct  Lan
 
struct  Link
 
struct  NetworkHandle
 

Public Types

enum class  IpVersion { V4 , V6 , Dual }
 
enum class  Routing { None , Global , StaticShortestPaths , Ripng }
 

Public Member Functions

 ClassicalNetworkBuilder ()
 
void SetIpVersion (IpVersion v)
 
void SetRouting (Routing r)
 
void AddLink (const Link &link)
 
void AddLan (const Lan &lan)
 
void SetDefaultDataRate (std::string rate)
 
void SetDefaultDelay (std::string delay)
 
void AttachNode (std::string name, Ptr< Node > node)
 
NetworkHandle Build ()
 
void InstallStaticEndpointRoutes (const std::vector< std::string > &orderedPath, NetworkHandle &handle, bool forIpv4, bool forIpv6)
 
void InstallStaticShortestPaths (NetworkHandle &handle)
 

Private Member Functions

void InstallInternetStacks ()
 
void BuildLinks (NetworkHandle &handle)
 
void BuildLans (NetworkHandle &handle)
 
void AssignAddresses (NetworkHandle &handle)
 

Private Attributes

std::map< std::string, Ptr< Node > > m_nodes
 
std::vector< Linkm_links
 
std::vector< Lanm_lans
 
IpVersion m_ipVersion {IpVersion::Dual}
 
Routing m_routing {Routing::Global}
 
std::string m_defRate {"10Gbps"}
 
std::string m_defDelay {"1us"}
 

Detailed Description

ClassicalNetworkBuilder: A high-level utility that builds arbitrary classical networks from user-specified topology data (nodes, links, LANs, etc.). Supports IPv4, IPv6, or dual stack; routing can be global, static (shortest-path), or none (single-LAN).

Definition at line 28 of file q2ns-classical-network-builder.h.

Member Enumeration Documentation

◆ IpVersion

Enumerator
V4 
V6 
Dual 

Definition at line 30 of file q2ns-classical-network-builder.h.

◆ Routing

Enumerator
None 
Global 
StaticShortestPaths 
Ripng 

Definition at line 31 of file q2ns-classical-network-builder.h.

Constructor & Destructor Documentation

◆ ClassicalNetworkBuilder()

ClassicalNetworkBuilder::ClassicalNetworkBuilder ( )

Definition at line 21 of file q2ns-classical-network-builder.cc.

Member Function Documentation

◆ AddLan()

void ClassicalNetworkBuilder::AddLan ( const Lan lan)

Definition at line 32 of file q2ns-classical-network-builder.cc.

References m_lans.

◆ AddLink()

void ClassicalNetworkBuilder::AddLink ( const Link link)

Definition at line 29 of file q2ns-classical-network-builder.cc.

References m_links.

◆ AssignAddresses()

void ClassicalNetworkBuilder::AssignAddresses ( NetworkHandle handle)
private

Definition at line 337 of file q2ns-classical-network-builder.cc.

Referenced by Build().

Here is the caller graph for this function:

◆ AttachNode()

void ClassicalNetworkBuilder::AttachNode ( std::string  name,
Ptr< Node >  node 
)

Definition at line 41 of file q2ns-classical-network-builder.cc.

References m_nodes.

◆ Build()

ClassicalNetworkBuilder::NetworkHandle ClassicalNetworkBuilder::Build ( )

◆ BuildLans()

void ClassicalNetworkBuilder::BuildLans ( NetworkHandle handle)
private

Definition at line 180 of file q2ns-classical-network-builder.cc.

References Global, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv4, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv6, m_defDelay, m_defRate, m_lans, m_nodes, m_routing, and ns3::ClassicalNetworkBuilder::NetworkHandle::nodes.

Referenced by Build().

Here is the caller graph for this function:

◆ BuildLinks()

void ClassicalNetworkBuilder::BuildLinks ( NetworkHandle handle)
private

Definition at line 116 of file q2ns-classical-network-builder.cc.

References Global, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv4, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv6, m_defDelay, m_defRate, m_links, m_nodes, m_routing, and ns3::ClassicalNetworkBuilder::NetworkHandle::nodes.

Referenced by Build().

Here is the caller graph for this function:

◆ InstallInternetStacks()

void ClassicalNetworkBuilder::InstallInternetStacks ( )
private

Definition at line 45 of file q2ns-classical-network-builder.cc.

References Dual, m_ipVersion, m_nodes, m_routing, Ripng, V4, and V6.

Referenced by Build().

Here is the caller graph for this function:

◆ InstallStaticEndpointRoutes()

void ns3::ClassicalNetworkBuilder::InstallStaticEndpointRoutes ( const std::vector< std::string > &  orderedPath,
NetworkHandle handle,
bool  forIpv4,
bool  forIpv6 
)

◆ InstallStaticShortestPaths()

void ClassicalNetworkBuilder::InstallStaticShortestPaths ( NetworkHandle handle)

Definition at line 238 of file q2ns-classical-network-builder.cc.

References ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv4, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv6, and ns3::ClassicalNetworkBuilder::NetworkHandle::nodes.

Referenced by Build().

Here is the caller graph for this function:

◆ SetDefaultDataRate()

void ClassicalNetworkBuilder::SetDefaultDataRate ( std::string  rate)

Definition at line 35 of file q2ns-classical-network-builder.cc.

References m_defRate.

◆ SetDefaultDelay()

void ClassicalNetworkBuilder::SetDefaultDelay ( std::string  delay)

Definition at line 38 of file q2ns-classical-network-builder.cc.

References m_defDelay.

◆ SetIpVersion()

void ClassicalNetworkBuilder::SetIpVersion ( IpVersion  v)

Definition at line 23 of file q2ns-classical-network-builder.cc.

References m_ipVersion.

◆ SetRouting()

void ClassicalNetworkBuilder::SetRouting ( Routing  r)

Definition at line 26 of file q2ns-classical-network-builder.cc.

References m_routing.

Member Data Documentation

◆ m_defDelay

std::string ns3::ClassicalNetworkBuilder::m_defDelay {"1us"}
private

Definition at line 107 of file q2ns-classical-network-builder.h.

Referenced by BuildLans(), BuildLinks(), and SetDefaultDelay().

◆ m_defRate

std::string ns3::ClassicalNetworkBuilder::m_defRate {"10Gbps"}
private

Definition at line 106 of file q2ns-classical-network-builder.h.

Referenced by BuildLans(), BuildLinks(), and SetDefaultDataRate().

◆ m_ipVersion

IpVersion ns3::ClassicalNetworkBuilder::m_ipVersion {IpVersion::Dual}
private

Definition at line 104 of file q2ns-classical-network-builder.h.

Referenced by Build(), InstallInternetStacks(), and SetIpVersion().

◆ m_lans

std::vector<Lan> ns3::ClassicalNetworkBuilder::m_lans
private

Definition at line 102 of file q2ns-classical-network-builder.h.

Referenced by AddLan(), and BuildLans().

◆ m_links

std::vector<Link> ns3::ClassicalNetworkBuilder::m_links
private

Definition at line 101 of file q2ns-classical-network-builder.h.

Referenced by AddLink(), and BuildLinks().

◆ m_nodes

std::map<std::string, Ptr<Node> > ns3::ClassicalNetworkBuilder::m_nodes
private

◆ m_routing

Routing ns3::ClassicalNetworkBuilder::m_routing {Routing::Global}
private

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