Interface with BRITE, the Boston university Representative Internet Topology gEnerator. More...
#include "brite-topology-helper.h"
 Collaboration diagram for ns3::BriteTopologyHelper:
 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 first::address, m_netDevices, and NS_LOG_FUNCTION.
Referenced by BriteTopologyFunctionTestCase::DoRun().
 Here is the caller 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 first::address, m_netDevices, and NS_LOG_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 call graph for this function: Here is the caller 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:
 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:
 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(), m_briteNodeInfoList, m_nodes, m_numAs, m_numNodes, m_systemForAs, NS_LOG_DEBUG, NS_LOG_FUNCTION, and first::stack.
Referenced by BriteTopologyStructureTestCase::DoRun(), and BriteTopologyFunctionTestCase::DoRun().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller 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(), m_briteNodeInfoList, m_nodes, m_numAs, m_numNodes, m_systemForAs, NS_LOG_FUNCTION, NS_LOG_INFO, NS_LOG_LOGIC(), and first::stack.
 Here is the call graph for this function:
 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 call graph for this function: Here is the caller 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::RandomVariableStream::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 call graph for this function: Here is the caller 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:
 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:
 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:
 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:
 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:
 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:
 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:
 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().