Interface with BRITE, the Boston university Representative Internet Topology gEnerator. More...
#include <brite-topology-helper.h>
Collaboration diagram for ns3::BriteTopologyHelper:Classes | |
| struct | BriteEdgeInfo |
| Edge information from BRITE. More... | |
| struct | BriteNodeInfo |
| Node information from BRITE. More... | |
Public Member Functions | |
| BriteTopologyHelper (std::string confFile, std::string seedFile, std::string newseedFile) | |
| Construct a BriteTopologyHelper. More... | |
| BriteTopologyHelper (std::string confFile) | |
| Construct a BriteTopologyHelper using NS3 to generate seed values need by BRITE. More... | |
| ~BriteTopologyHelper () | |
| void | AssignIpv4Addresses (Ipv4AddressHelper &address) |
| void | AssignIpv6Addresses (Ipv6AddressHelper &address) |
| void | AssignStreams (int64_t streamNumber) |
| Assigns stream number to UniformRandomVariable used to generate brite seed file. More... | |
| void | BuildBriteTopology (InternetStackHelper &stack) |
| Create NS3 topology using information generated from BRITE. More... | |
| void | BuildBriteTopology (InternetStackHelper &stack, const uint32_t systemCount) |
| Create NS3 topology using information generated from BRITE and configure topology for MPI use. More... | |
| Ptr< Node > | GetLeafNodeForAs (uint32_t asNum, uint32_t leafNum) |
| Returns a given router leaf node from a given AS. More... | |
| uint32_t | GetNAs (void) const |
| Returns the number of AS created in the topology. More... | |
| uint32_t | GetNEdgesTopology () const |
| Returns the number of edges created within the topology. More... | |
| uint32_t | GetNLeafNodesForAs (uint32_t asNum) |
| Returns the number of router leaf nodes for a given AS. More... | |
| uint32_t | GetNNodesForAs (uint32_t asNum) |
| Returns the total number of nodes for a given AS. More... | |
| uint32_t | GetNNodesTopology () const |
| Returns the number of nodes created within the topology. More... | |
| Ptr< Node > | GetNodeForAs (uint32_t asNum, uint32_t nodeNum) |
| Returns a given router node for a given AS. More... | |
| uint32_t | GetSystemNumberForAs (uint32_t asNum) const |
| Returns the system number for the MPI instance that this AS is assigned to. More... | |
Private Member Functions | |
| void | BuildBriteEdgeInfoList (void) |
| void | BuildBriteNodeInfoList (void) |
| void | ConstructTopology (void) |
| void | GenerateBriteTopology (void) |
Private Attributes | |
| std::vector< NodeContainer * > | m_asLeafNodes |
| stores the leaf router nodes for each AS More... | |
| PointToPointHelper | m_britePointToPointHelper |
| used to create the links within the topology More... | |
| std::string | m_confFile |
| brite configuration file to use More... | |
| std::vector< NetDeviceContainer * > | m_netDevices |
| stores the netdevices created for each AS More... | |
| std::string | m_newSeedFile |
| brite seed file to generate for next run More... | |
| NodeContainer | m_nodes |
| std::vector< NodeContainer * > | m_nodesByAs |
| stores all of the nodes in the brite topology by AS number More... | |
| uint32_t | m_numAs |
| stores the number of AS in the BRITE generated topology More... | |
| uint32_t | m_numEdges |
| stores the number of edges created in the BRITE topology More... | |
| uint32_t | m_numNodes |
| stores the number of nodes created in the BRITE topology More... | |
| std::string | m_seedFile |
| brite seed file to use More... | |
| std::vector< int > | m_systemForAs |
| stores the MPI system number each AS assigned to. All assigned to 0 if MPI not used. More... | |
| brite::Topology * | m_topology |
| the Brite topology More... | |
| Ptr< UniformRandomVariable > | m_uv |
| random variable stream for brite seed file More... | |
Static Private Attributes | |
| static const int | mbpsToBps = 1000000 |
| typedef std::vector< BriteNodeInfo > | BriteNodeInfoList |
| The BRITE code generates multiple nodes and edges. More... | |
| typedef std::vector< BriteEdgeInfo > | BriteEdgeInfoList |
| The BRITE code generates multiple nodes and edges. More... | |
| BriteNodeInfoList | m_briteNodeInfoList |
| The BRITE code generates multiple nodes and edges. More... | |
| BriteEdgeInfoList | m_briteEdgeInfoList |
| The BRITE code generates multiple nodes and edges. More... | |
Interface with BRITE, the Boston university Representative Internet Topology gEnerator.
This helper class creates an interface with BRITE and allows the user to easily create ns-3 topologies from BRITE generated graphs. This class accepts a BRITE configuration and seed file, much like the stand-alone BRITE software. Using these files, BRITE generates a graph which is stored herein. ns-3 examples can then grab the BRITE generated nodes and edges from this helper and create ns-3 specific topologies.
Definition at line 59 of file brite-topology-helper.h.
|
private |
The BRITE code generates multiple nodes and edges.
Each node and edge is stored in a BriteNodeInfo or BriteEdgeInfo struct, and each instance is stored in a vector.
Definition at line 279 of file brite-topology-helper.h.
|
private |
The BRITE code generates multiple nodes and edges.
Each node and edge is stored in a BriteNodeInfo or BriteEdgeInfo struct, and each instance is stored in a vector.
Definition at line 278 of file brite-topology-helper.h.
| ns3::BriteTopologyHelper::BriteTopologyHelper | ( | std::string | confFile, |
| std::string | seedFile, | ||
| std::string | newseedFile | ||
| ) |
Construct a BriteTopologyHelper.
| confFile | a BRITE configuration file |
| seedFile | a BRITE seed file |
| newseedFile | a BRITE seed file with newly generated values |
Definition at line 37 of file brite-topology-helper.cc.
References m_uv, and NS_LOG_FUNCTION.
| ns3::BriteTopologyHelper::BriteTopologyHelper | ( | std::string | confFile | ) |
Construct a BriteTopologyHelper using NS3 to generate seed values need by BRITE.
Definition at line 54 of file brite-topology-helper.cc.
References m_uv, and NS_LOG_FUNCTION.
| ns3::BriteTopologyHelper::~BriteTopologyHelper | ( | ) |
Definition at line 67 of file brite-topology-helper.cc.
References m_asLeafNodes, m_netDevices, m_nodesByAs, m_topology, and NS_LOG_FUNCTION.
| void ns3::BriteTopologyHelper::AssignIpv4Addresses | ( | Ipv4AddressHelper & | address | ) |
| address | an Ipv4AddressHelper which is used to install Ipv4 addresses on all the node interfaces in the topology |
Definition at line 420 of file brite-topology-helper.cc.
References ns3::Ipv4AddressHelper::Assign(), m_netDevices, ns3::Ipv4AddressHelper::NewNetwork(), and NS_LOG_FUNCTION.
Referenced by BriteTopologyFunctionTestCase::DoRun().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::BriteTopologyHelper::AssignIpv6Addresses | ( | Ipv6AddressHelper & | address | ) |
| network | an IPv6 address representing the network portion of the IPv6 Address |
| prefix | the prefix length |
Definition at line 432 of file brite-topology-helper.cc.
References ns3::Ipv6AddressHelper::Assign(), m_netDevices, ns3::Ipv6AddressHelper::NewNetwork(), and NS_LOG_FUNCTION.
Here is the call graph for this function:| void ns3::BriteTopologyHelper::AssignStreams | ( | int64_t | streamNumber | ) |
Assigns stream number to UniformRandomVariable used to generate brite seed file.
| streamNumber | the stream number to assign |
Definition at line 92 of file brite-topology-helper.cc.
References m_uv, and ns3::RandomVariableStream::SetStream().
Referenced by BriteTopologyStructureTestCase::DoRun().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 183 of file brite-topology-helper.cc.
References ns3::BriteTopologyHelper::BriteEdgeInfo::asFrom, ns3::BriteTopologyHelper::BriteEdgeInfo::asTo, ns3::BriteTopologyHelper::BriteEdgeInfo::bandwidth, ns3::BriteTopologyHelper::BriteEdgeInfo::delay, ns3::BriteTopologyHelper::BriteEdgeInfo::destId, ns3::BriteTopologyHelper::BriteEdgeInfo::edgeId, ns3::BriteTopologyHelper::BriteEdgeInfo::length, m_briteEdgeInfoList, m_topology, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::BriteTopologyHelper::BriteEdgeInfo::srcId, and ns3::BriteTopologyHelper::BriteEdgeInfo::type.
Referenced by GenerateBriteTopology().
Here is the caller graph for this function:
|
private |
Definition at line 98 of file brite-topology-helper.cc.
References ns3::BriteTopologyHelper::BriteNodeInfo::asId, ns3::BriteTopologyHelper::BriteNodeInfo::inDegree, m_briteNodeInfoList, m_numAs, m_topology, ns3::BriteTopologyHelper::BriteNodeInfo::nodeId, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::BriteTopologyHelper::BriteNodeInfo::outDegree, ns3::BriteTopologyHelper::BriteNodeInfo::type, ns3::BriteTopologyHelper::BriteNodeInfo::xCoordinate, and ns3::BriteTopologyHelper::BriteNodeInfo::yCoordinate.
Referenced by GenerateBriteTopology().
Here is the caller graph for this function:| void ns3::BriteTopologyHelper::BuildBriteTopology | ( | InternetStackHelper & | stack | ) |
Create NS3 topology using information generated from BRITE.
| stack | Internet stack to assign to nodes in topology |
Definition at line 365 of file brite-topology-helper.cc.
References ConstructTopology(), ns3::NodeContainer::Create(), GenerateBriteTopology(), ns3::InternetStackHelper::Install(), m_briteNodeInfoList, m_nodes, m_numAs, m_numNodes, m_systemForAs, NS_LOG_DEBUG, and NS_LOG_FUNCTION.
Referenced by BriteTopologyStructureTestCase::DoRun(), and BriteTopologyFunctionTestCase::DoRun().
Here is the call graph for this function:
Here is the caller graph for this function:| void ns3::BriteTopologyHelper::BuildBriteTopology | ( | InternetStackHelper & | stack, |
| const uint32_t | systemCount | ||
| ) |
Create NS3 topology using information generated from BRITE and configure topology for MPI use.
| stack | Internet stack to assign to nodes in topology. |
| systemCount | The number of MPI instances to be used in the simulation. |
Definition at line 390 of file brite-topology-helper.cc.
References ns3::NodeContainer::Add(), ConstructTopology(), GenerateBriteTopology(), GetSystemNumberForAs(), ns3::InternetStackHelper::Install(), m_briteNodeInfoList, m_nodes, m_numAs, m_numNodes, m_systemForAs, NS_LOG_FUNCTION, NS_LOG_INFO, and NS_LOG_LOGIC.
Here is the call graph for this function:
|
private |
Definition at line 444 of file brite-topology-helper.cc.
References ns3::NodeContainer::Get(), ns3::PointToPointHelper::Install(), m_asLeafNodes, m_briteEdgeInfoList, m_briteNodeInfoList, m_britePointToPointHelper, m_netDevices, m_nodes, m_nodesByAs, m_numAs, m_numEdges, mbpsToBps, NS_LOG_FUNCTION, NS_LOG_INFO, ns3::Seconds(), ns3::PointToPointHelper::SetChannelAttribute(), and ns3::PointToPointHelper::SetDeviceAttribute().
Referenced by BuildBriteTopology().
Here is the call graph for this function:
Here is the caller graph for this function:
|
private |
Definition at line 318 of file brite-topology-helper.cc.
References BuildBriteEdgeInfoList(), BuildBriteNodeInfoList(), ns3::UniformRandomVariable::GetInteger(), m_confFile, m_newSeedFile, m_seedFile, m_topology, m_uv, NS_ASSERT, NS_ASSERT_MSG, and NS_LOG_LOGIC.
Referenced by BuildBriteTopology().
Here is the call graph for this function:
Here is the caller graph for this function:Returns a given router leaf node from a given AS.
| asNum | the AS number |
| leafNum | the leaf number |
Definition at line 271 of file brite-topology-helper.cc.
References m_asLeafNodes.
| uint32_t ns3::BriteTopologyHelper::GetNAs | ( | void | ) | const |
Returns the number of AS created in the topology.
Definition at line 307 of file brite-topology-helper.cc.
References m_numAs.
Referenced by BriteTopologyStructureTestCase::DoRun().
Here is the caller graph for this function:| uint32_t ns3::BriteTopologyHelper::GetNEdgesTopology | ( | ) | const |
Returns the number of edges created within the topology.
Definition at line 301 of file brite-topology-helper.cc.
References m_numEdges.
Referenced by BriteTopologyStructureTestCase::DoRun().
Here is the caller graph for this function:| uint32_t ns3::BriteTopologyHelper::GetNLeafNodesForAs | ( | uint32_t | asNum | ) |
Returns the number of router leaf nodes for a given AS.
| asNum | the AS number |
Definition at line 289 of file brite-topology-helper.cc.
References m_asLeafNodes.
Referenced by BriteTopologyStructureTestCase::DoRun().
Here is the caller graph for this function:| uint32_t ns3::BriteTopologyHelper::GetNNodesForAs | ( | uint32_t | asNum | ) |
Returns the total number of nodes for a given AS.
| asNum | the AS number |
Definition at line 283 of file brite-topology-helper.cc.
References m_nodesByAs.
Referenced by BriteTopologyFunctionTestCase::DoRun().
Here is the caller graph for this function:| uint32_t ns3::BriteTopologyHelper::GetNNodesTopology | ( | ) | const |
Returns the number of nodes created within the topology.
Definition at line 295 of file brite-topology-helper.cc.
References m_numNodes.
Referenced by BriteTopologyStructureTestCase::DoRun().
Here is the caller graph for this function:Returns a given router node for a given AS.
| asNum | the AS number |
Definition at line 277 of file brite-topology-helper.cc.
References m_nodesByAs.
Referenced by BriteTopologyFunctionTestCase::DoRun().
Here is the caller graph for this function:| uint32_t ns3::BriteTopologyHelper::GetSystemNumberForAs | ( | uint32_t | asNum | ) | const |
Returns the system number for the MPI instance that this AS is assigned to.
Will always return 0 if MPI not used
param asNum The AS Number
Definition at line 313 of file brite-topology-helper.cc.
References m_systemForAs.
Referenced by BuildBriteTopology().
Here is the caller graph for this function:
|
private |
stores the leaf router nodes for each AS
Definition at line 255 of file brite-topology-helper.h.
Referenced by ConstructTopology(), GetLeafNodeForAs(), GetNLeafNodesForAs(), and ~BriteTopologyHelper().
|
private |
The BRITE code generates multiple nodes and edges.
Each node and edge is stored in a BriteNodeInfo or BriteEdgeInfo struct, and each instance is stored in a vector.
Definition at line 282 of file brite-topology-helper.h.
Referenced by BuildBriteEdgeInfoList(), and ConstructTopology().
|
private |
The BRITE code generates multiple nodes and edges.
Each node and edge is stored in a BriteNodeInfo or BriteEdgeInfo struct, and each instance is stored in a vector.
Definition at line 281 of file brite-topology-helper.h.
Referenced by BuildBriteNodeInfoList(), BuildBriteTopology(), and ConstructTopology().
|
private |
used to create the links within the topology
Definition at line 286 of file brite-topology-helper.h.
Referenced by ConstructTopology().
|
private |
brite configuration file to use
Definition at line 240 of file brite-topology-helper.h.
Referenced by GenerateBriteTopology().
|
private |
stores the netdevices created for each AS
Definition at line 252 of file brite-topology-helper.h.
Referenced by AssignIpv4Addresses(), AssignIpv6Addresses(), ConstructTopology(), and ~BriteTopologyHelper().
|
private |
brite seed file to generate for next run
Definition at line 246 of file brite-topology-helper.h.
Referenced by GenerateBriteTopology().
|
private |
Definition at line 232 of file brite-topology-helper.h.
Referenced by BuildBriteTopology(), and ConstructTopology().
|
private |
stores all of the nodes in the brite topology by AS number
Definition at line 258 of file brite-topology-helper.h.
Referenced by ConstructTopology(), GetNNodesForAs(), GetNodeForAs(), and ~BriteTopologyHelper().
|
private |
stores the number of AS in the BRITE generated topology
Definition at line 249 of file brite-topology-helper.h.
Referenced by BuildBriteNodeInfoList(), BuildBriteTopology(), ConstructTopology(), and GetNAs().
|
private |
stores the number of edges created in the BRITE topology
Definition at line 270 of file brite-topology-helper.h.
Referenced by ConstructTopology(), and GetNEdgesTopology().
|
private |
stores the number of nodes created in the BRITE topology
Definition at line 267 of file brite-topology-helper.h.
Referenced by BuildBriteTopology(), and GetNNodesTopology().
|
private |
brite seed file to use
Definition at line 243 of file brite-topology-helper.h.
Referenced by GenerateBriteTopology().
|
private |
stores the MPI system number each AS assigned to. All assigned to 0 if MPI not used.
Definition at line 261 of file brite-topology-helper.h.
Referenced by BuildBriteTopology(), and GetSystemNumberForAs().
|
private |
the Brite topology
Definition at line 264 of file brite-topology-helper.h.
Referenced by BuildBriteEdgeInfoList(), BuildBriteNodeInfoList(), GenerateBriteTopology(), and ~BriteTopologyHelper().
|
private |
random variable stream for brite seed file
Definition at line 289 of file brite-topology-helper.h.
Referenced by AssignStreams(), BriteTopologyHelper(), and GenerateBriteTopology().
|
staticprivate |
Definition at line 191 of file brite-topology-helper.h.
Referenced by ConstructTopology().