|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
21 #include "ns3/gnuplot.h"
22 #include "ns3/command-line.h"
23 #include "ns3/config.h"
24 #include "ns3/uinteger.h"
25 #include "ns3/string.h"
27 #include "ns3/yans-wifi-helper.h"
28 #include "ns3/mobility-helper.h"
29 #include "ns3/ipv4-address-helper.h"
30 #include "ns3/on-off-helper.h"
31 #include "ns3/yans-wifi-channel.h"
32 #include "ns3/mobility-model.h"
33 #include "ns3/packet-socket-helper.h"
34 #include "ns3/packet-socket-address.h"
102 while ((packet = socket->
Recv ()))
111 TypeId tid = TypeId::LookupByName (
"ns3::PacketSocketFactory");
138 positionAlloc->
Add (Vector (0.0, 0.0, 0.0));
139 positionAlloc->
Add (Vector (5.0, 0.0, 0.0));
140 mobility.SetPositionAllocator (positionAlloc);
141 mobility.SetMobilityModel (
"ns3::ConstantPositionMobilityModel");
163 Simulator::Destroy ();
168 int main (
int argc,
char *argv[])
171 cmd.Parse (argc, argv);
183 wifiMac.
SetType (
"ns3::AdhocWifiMac");
187 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
194 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
201 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
208 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
215 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
222 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
229 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
236 wifi.SetRemoteStationManager (
"ns3::ConstantRateWifiManager",
243 gnuplot =
Gnuplot (
"rate-control.png");
247 wifi.SetRemoteStationManager (
"ns3::ArfWifiManager");
253 wifi.SetRemoteStationManager (
"ns3::AarfWifiManager");
259 wifi.SetRemoteStationManager (
"ns3::AarfcdWifiManager");
265 wifi.SetRemoteStationManager (
"ns3::CaraWifiManager");
271 wifi.SetRemoteStationManager (
"ns3::RraaWifiManager");
277 wifi.SetRemoteStationManager (
"ns3::IdealWifiManager");
holds a vector of ns3::NetDevice pointers
static Vector GetPosition(Ptr< Node > node)
a unique identifier for an interface.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Vector GetPosition(Ptr< Node > node)
void SetStyle(enum Style style)
Make it easy to create and manage PHY objects for the YANS model.
Parse command-line arguments.
void Add(Vector v)
Add a position to the list of positions.
Ptr< Socket > SetupPacketReceive(Ptr< Node > node)
static void SetPosition(Ptr< Node > node, Vector position)
uint32_t m_bytesTotal
Total bytes received.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
void ReceivePacket(Ptr< Socket > socket)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void Stop(Time stop)
Arrange for all of the Applications in this container to Stop() at the Time given as a parameter.
helps to create WifiNetDevice objects
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void ReceivePacket(Ptr< Socket > socket)
a simple class to generate gnuplot-ready plotting commands from a set of datasets.
an address for a packet socket
void GenerateOutput(std::ostream &os)
Writes gnuplot commands and data values to a single output stream.
void Add(double x, double y)
Class to represent a 2D points plot.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
void SetConstantRate(DataRate dataRate, uint32_t packetSize=512)
Helper function to set a constant rate source.
void Install(Ptr< Node > node) const
Aggregate an instance of a ns3::PacketSocketFactory onto the provided node.
Class for representing data rates.
Ptr< YansWifiChannel > Create(void) const
void experiment(std::string queue_disc_type)
a polymophic address class
Gnuplot2dDataset m_output
A helper to make it easier to instantiate an ns3::OnOffApplication on a set of nodes.
Helper class for UAN CW MAC example.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
Gnuplot2dDataset Run(const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy, const WifiMacHelper &wifiMac, const YansWifiChannelHelper &wifiChannel)
void SetAttribute(std::string name, const AttributeValue &value)
Helper function used to set the underlying application attributes.
void SetSingleDevice(uint32_t device)
Set the address to match only a specified NetDevice.
void AddDataset(const GnuplotDataset &dataset)
Give ns3::PacketSocket powers to ns3::Node.
Callback< R, Ts... > MakeCallback(R(T::*memPtr)(Ts...), OBJ objPtr)
Build Callbacks for class method members which take varying numbers of arguments and potentially retu...
Hold variables of type string.
ApplicationContainer Install(NodeContainer c) const
Install an ns3::OnOffApplication on each node of the input container configured with all the attribut...
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
void Start(Time start)
Arrange for all of the Applications in this container to Start() at the Time given as a parameter.
Time Seconds(double value)
Construct a Time in the indicated unit.
holds a vector of ns3::Application pointers.
Vector3D Vector
Vector alias typedef for compatibility with mobility models.
void SetPhysicalAddress(const Address address)
Set the destination address.
Keep track of the current position and velocity of an object.
keep track of a set of node pointers.
void SetType(std::string type, Args &&... args)
void SetProtocol(uint16_t protocol)
Set the protocol.
static void AdvancePosition(Ptr< Node > node)
Hold an unsigned integer type.
void AdvancePosition(Ptr< Node > node)
manage and create wifi channel objects for the YANS model.
create MAC layers for a ns3::WifiNetDevice.
Helper class used to assign positions and mobility models to nodes.
void SetPosition(Ptr< Node > node, Vector position)
Ptr< Socket > SetupPacketReceive(Ptr< Node > node)
virtual Ptr< Packet > Recv(uint32_t maxSize, uint32_t flags)=0
Read data from the socket.