|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
38 #include "ns3/core-module.h"
39 #include "ns3/network-module.h"
40 #include "ns3/internet-module.h"
41 #include "ns3/point-to-point-module.h"
42 #include "ns3/ipv4-static-routing-helper.h"
43 #include "ns3/ipv4-list-routing-helper.h"
55 main (
int argc,
char *argv[])
61 cmd.Parse (argc, argv);
67 Ptr<Node> nDstRtr = CreateObject<Node> ();
96 ipv4.
SetBase (
"10.1.1.0",
"255.255.255.0");
98 ipv4.
SetBase (
"10.1.2.0",
"255.255.255.0");
100 ipv4.
SetBase (
"10.10.1.0",
"255.255.255.0");
102 ipv4.
SetBase (
"10.10.2.0",
"255.255.255.0");
104 ipv4.
SetBase (
"10.20.1.0",
"255.255.255.0");
142 uint16_t dstport = 12345;
145 dstSocket->
Bind (dst);
216 NS_LOG_INFO (
"Triggering packet back to source node's interface 1");
holds a vector of ns3::NetDevice pointers
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Parse command-line arguments.
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...
@ LOG_LEVEL_INFO
LOG_INFO and above.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
Every class exported by the ns3 library is enclosed in the ns3 namespace.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
void SetDeviceAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each NetDevice created by the helper.
void SetChannelAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each Channel created by the helper.
void SendStuff(Ptr< Socket > sock, Ipv4Address dstaddr, uint16_t port)
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 ...
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.
void LogComponentEnableAll(enum LogLevel level)
Enable the logging output for all registered log components.
NetDeviceContainer Install(NodeContainer c)
Ipv4 addresses are stored in host order in this class.
void BindSock(Ptr< Socket > sock, Ptr< NetDevice > netdev)
static EventId Schedule(Time const &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)=0
Send data to a specified peer.
static InetSocketAddress ConvertFrom(const Address &address)
Returns an InetSocketAddress which corresponds to the input Address.
void SetBase(Ipv4Address network, Ipv4Mask mask, Ipv4Address base="0.0.0.1")
Set the base network number, network mask and base address.
Access to the IPv4 forwarding table, interfaces, and configuration.
Helper class that adds ns3::Ipv4StaticRouting objects.
void AddPaddingAtEnd(uint32_t size)
Add a zero-filled padding to the packet.
void SetRecvCallback(Callback< void, Ptr< Socket > > receivedData)
Notify application when new data is available to be read.
a polymophic address class
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Ptr< OutputStreamWrapper > CreateFileStream(std::string filename, std::ios::openmode filemode=std::ios::out)
Create and initialize an output stream object we'll use to write the traced bits.
virtual Ptr< Packet > RecvFrom(uint32_t maxSize, uint32_t flags, Address &fromAddress)=0
Read a single packet from the socket and retrieve the sender address.
Ipv4Address GetIpv4(void) const
holds a vector of std::pair of Ptr<Ipv4> and interface index.
Ptr< NetDevice > GetBoundNetDevice()
Returns socket's bound NetDevice, if any.
void AddHostRouteTo(Ipv4Address dest, Ipv4Address nextHop, uint32_t interface, uint32_t metric=0)
Add a host route to the static routing table.
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...
static void Run(void)
Run the simulation.
Hold variables of type string.
Manage ASCII trace files for device models.
@ LOG_PREFIX_TIME
Prefix all trace prints with simulation time.
void srcSocketRecv(Ptr< Socket > socket)
Time Seconds(double value)
Construct a Time in the indicated unit.
Ipv4InterfaceContainer Assign(const NetDeviceContainer &c)
Assign IP addresses to the net devices specified in the container based on the current network prefix...
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
void dstSocketRecv(Ptr< Socket > socket)
virtual void BindToNetDevice(Ptr< NetDevice > netdevice)
Bind a socket to specific device.
Build a set of PointToPointNetDevice objects.
keep track of a set of node pointers.
void RemoveAllPacketTags(void)
Remove all packet tags.
static Ptr< Socket > CreateSocket(Ptr< Node > node, TypeId tid)
This method wraps the creation of sockets that is performed on a given node by a SocketFactory specif...
void RemoveAllByteTags(void)
Remove all byte tags stored in this packet.
aggregate IP/TCP/UDP functionality to existing Nodes.
static TypeId LookupByName(std::string name)
Get a TypeId by name.
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr<NetDevice> stored in this container at a given index.