![]() |
Q2NS dev
ns-3 module
|
#include <q2ns-classical-network-builder.h>
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< Link > | m_links |
| std::vector< Lan > | m_lans |
| IpVersion | m_ipVersion {IpVersion::Dual} |
| Routing | m_routing {Routing::Global} |
| std::string | m_defRate {"10Gbps"} |
| std::string | m_defDelay {"1us"} |
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.
|
strong |
| Enumerator | |
|---|---|
| V4 | |
| V6 | |
| Dual | |
Definition at line 30 of file q2ns-classical-network-builder.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| Global | |
| StaticShortestPaths | |
| Ripng | |
Definition at line 31 of file q2ns-classical-network-builder.h.
| ClassicalNetworkBuilder::ClassicalNetworkBuilder | ( | ) |
Definition at line 21 of file q2ns-classical-network-builder.cc.
| void ClassicalNetworkBuilder::AddLan | ( | const Lan & | lan | ) |
Definition at line 32 of file q2ns-classical-network-builder.cc.
References m_lans.
| void ClassicalNetworkBuilder::AddLink | ( | const Link & | link | ) |
Definition at line 29 of file q2ns-classical-network-builder.cc.
References m_links.
|
private |
Definition at line 337 of file q2ns-classical-network-builder.cc.
Referenced by Build().
| void ClassicalNetworkBuilder::AttachNode | ( | std::string | name, |
| Ptr< Node > | node | ||
| ) |
Definition at line 41 of file q2ns-classical-network-builder.cc.
References m_nodes.
| ClassicalNetworkBuilder::NetworkHandle ClassicalNetworkBuilder::Build | ( | ) |
Definition at line 85 of file q2ns-classical-network-builder.cc.
References AssignAddresses(), BuildLans(), BuildLinks(), Dual, Global, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv4, ns3::ClassicalNetworkBuilder::NetworkHandle::hasIpv6, InstallInternetStacks(), InstallStaticShortestPaths(), m_ipVersion, m_nodes, m_routing, ns3::ClassicalNetworkBuilder::NetworkHandle::nodes, Ripng, StaticShortestPaths, V4, and V6.
|
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().
|
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().
|
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().
| void ns3::ClassicalNetworkBuilder::InstallStaticEndpointRoutes | ( | const std::vector< std::string > & | orderedPath, |
| NetworkHandle & | handle, | ||
| bool | forIpv4, | ||
| bool | forIpv6 | ||
| ) |
| 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().
| void ClassicalNetworkBuilder::SetDefaultDataRate | ( | std::string | rate | ) |
Definition at line 35 of file q2ns-classical-network-builder.cc.
References m_defRate.
| void ClassicalNetworkBuilder::SetDefaultDelay | ( | std::string | delay | ) |
Definition at line 38 of file q2ns-classical-network-builder.cc.
References m_defDelay.
| void ClassicalNetworkBuilder::SetIpVersion | ( | IpVersion | v | ) |
Definition at line 23 of file q2ns-classical-network-builder.cc.
References m_ipVersion.
| void ClassicalNetworkBuilder::SetRouting | ( | Routing | r | ) |
Definition at line 26 of file q2ns-classical-network-builder.cc.
References m_routing.
|
private |
Definition at line 107 of file q2ns-classical-network-builder.h.
Referenced by BuildLans(), BuildLinks(), and SetDefaultDelay().
|
private |
Definition at line 106 of file q2ns-classical-network-builder.h.
Referenced by BuildLans(), BuildLinks(), and SetDefaultDataRate().
|
private |
Definition at line 104 of file q2ns-classical-network-builder.h.
Referenced by Build(), InstallInternetStacks(), and SetIpVersion().
|
private |
Definition at line 102 of file q2ns-classical-network-builder.h.
Referenced by AddLan(), and BuildLans().
|
private |
Definition at line 101 of file q2ns-classical-network-builder.h.
Referenced by AddLink(), and BuildLinks().
|
private |
Definition at line 100 of file q2ns-classical-network-builder.h.
Referenced by AttachNode(), Build(), BuildLans(), BuildLinks(), and InstallInternetStacks().
|
private |
Definition at line 105 of file q2ns-classical-network-builder.h.
Referenced by Build(), BuildLans(), BuildLinks(), InstallInternetStacks(), and SetRouting().