64#include "ns3/applications-module.h"
65#include "ns3/core-module.h"
66#include "ns3/fd-net-device-module.h"
67#include "ns3/internet-module.h"
76main(
int argc,
char* argv[])
78 std::string deviceName(
"eth1");
79 std::string encapMode(
"Dix");
80 bool clientMode =
false;
81 bool serverMode =
false;
90 cmd.AddValue(
"client",
"client mode", clientMode);
91 cmd.AddValue(
"server",
"server mode", serverMode);
92 cmd.AddValue(
"deviceName",
"device name", deviceName);
93 cmd.AddValue(
"stopTime",
"stop time (seconds)",
stopTime);
94 cmd.AddValue(
"encapsulationMode",
95 "encapsulation mode of emu device (\"Dix\" [default] or \"Llc\")",
97 cmd.AddValue(
"nNodes",
"number of nodes to create (>= 2)", nNodes);
99 cmd.Parse(argc, argv);
105 if (clientMode && serverMode)
107 NS_FATAL_ERROR(
"Error, both client and server options cannot be enabled.");
112 nNodes = nNodes < 2 ? 2 : nNodes;
137 ipv4.SetBase(
"10.1.1.0",
"255.255.255.0");
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 EnableAsciiAll(std::string prefix)
Enable ascii trace output on each device (which is of the appropriate type) in the set of all nodes c...
Parse command-line arguments.
build a set of FdNetDevice objects attached to a physical network interface
void SetDeviceName(std::string deviceName)
Set the device name of this device.
void SetAttribute(std::string n1, const AttributeValue &v1)
virtual NetDeviceContainer Install(Ptr< Node > node) const
This method creates a FdNetDevice and associates it to a node.
a NetDevice to read/write network traffic from/into a file descriptor.
static void Bind(std::string name, const AttributeValue &value)
Iterate over the set of GlobalValues until a matching name is found and then set its value with Globa...
aggregate IP/TCP/UDP functionality to existing Nodes.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
Ipv4 addresses are stored in host order in this class.
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Ipv4Address GetAddress(uint32_t i, uint32_t j=0) const
holds a vector of ns3::NetDevice pointers
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index.
keep track of a set of node pointers.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
void EnablePcapAll(std::string prefix, bool promiscuous=false)
Enable pcap output on each device (which is of the appropriate type) in the set of all nodes created ...
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static void Run()
Run the simulation.
static void Stop()
Tell the Simulator the calling event should be the last one executed.
Hold variables of type string.
Simulation virtual time values and global simulation resolution.
Create an application which sends a UDP packet and waits for an echo of this packet.
Create a server application which waits for input UDP packets and sends them back to the original sen...
Hold an unsigned integer type.
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#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.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static const uint32_t packetSize
Packet size generated at the AP.