17#include "ns3/applications-module.h"
18#include "ns3/core-module.h"
19#include "ns3/internet-module.h"
20#include "ns3/netanim-module.h"
21#include "ns3/network-module.h"
22#include "ns3/point-to-point-layout-module.h"
23#include "ns3/point-to-point-module.h"
41main(
int argc,
char* argv[])
55 std::string animFile =
"star-animation.xml";
61 cmd.AddValue(
"nSpokes",
"Number of spoke nodes to place in the star", nSpokes);
62 cmd.AddValue(
"animFile",
"File Name for Animation Output", animFile);
63 cmd.AddValue(
"useIpv6",
"use Ipv6", useIpv6);
65 cmd.Parse(argc, argv);
73 NS_LOG_INFO(
"Install internet stack on all nodes.");
75 star.InstallStack(internet);
84 star.AssignIpv6Addresses(ipv6AddressBase, ipv6AddressPrefix);
91 uint16_t
port = 50000;
101 PacketSinkHelper packetSinkHelper(
"ns3::TcpSocketFactory", hubLocalAddress);
110 onOffHelper.SetAttribute(
"OnTime",
StringValue(
"ns3::ConstantRandomVariable[Constant=1]"));
111 onOffHelper.SetAttribute(
"OffTime",
StringValue(
"ns3::ConstantRandomVariable[Constant=0]"));
115 for (
uint32_t i = 0; i < star.SpokeCount(); ++i)
126 onOffHelper.SetAttribute(
"Remote", remoteAddress);
127 spokeApps.
Add(onOffHelper.Install(star.GetSpokeNode(i)));
138 Ipv4GlobalRoutingHelper::PopulateRoutingTables();
142 star.BoundingBox(1, 1, 100, 100);
149 Simulator::Destroy();
a polymophic address class
AttributeValue implementation for Address.
Interface to network animator.
holds a vector of ns3::Application pointers.
void Start(Time start) const
Start all of the Applications in this container at the start time given as a parameter.
void Stop(Time stop) const
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter.
void Add(ApplicationContainer other)
Append the contents of another ApplicationContainer to the end of this container.
Parse command-line arguments.
aggregate IP/TCP/UDP functionality to existing Nodes.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Describes an IPv6 address.
Describes an IPv6 prefix.
A helper to make it easier to instantiate an ns3::OnOffApplication on a set of nodes.
A helper to make it easier to instantiate an ns3::PacketSinkApplication on a set of nodes.
Build a set of PointToPointNetDevice objects.
A helper to make it easier to create a star topology with PointToPoint links.
Hold variables of type string.
Hold an unsigned integer type.
void SetDefault(std::string name, const AttributeValue &value)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Time Seconds(double value)
Construct a Time in the indicated unit.
AnimationInterface * anim
Every class exported by the ns3 library is enclosed in the ns3 namespace.