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");
Manage ASCII trace files for device models.
Ipv4Address GetIpv4(void) const
holds a vector of std::pair of Ptr and interface index.
Hold variables of type string.
Ptr< NetDevice > Get(uint32_t i) const
Get the Ptr stored in this container at a given index.
NetDeviceContainer Install(NodeContainer c)
void dstSocketRecv(Ptr< Socket > socket)
void srcSocketRecv(Ptr< Socket > socket)
static void Run(void)
Run the simulation.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
aggregate IP/TCP/UDP functionality to existing Nodes.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
#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. ...
Build a set of PointToPointNetDevice objects.
static EventId Schedule(Time const &time, MEM mem_ptr, OBJ obj)
Schedule an event to expire at the relative time "time" is reached.
void SetDeviceAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each NetDevice created by the helper.
void AddHostRouteTo(Ipv4Address dest, Ipv4Address nextHop, uint32_t interface, uint32_t metric=0)
Add a host route to the static routing table.
a polymophic address class
Ptr< NetDevice > GetBoundNetDevice()
Returns socket's bound netdevice, if any.
void RemoveAllPacketTags(void)
Remove all packet tags.
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.
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 ...
holds a vector of ns3::NetDevice pointers
void AddPaddingAtEnd(uint32_t size)
Add a zero-filled padding to the packet.
Callback< R > MakeCallback(R(T::*memPtr)(void), OBJ objPtr)
void SetRecvCallback(Callback< void, Ptr< Socket > >)
Notify application when new data is available to be read.
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...
Parse command-line arguments.
static void Destroy(void)
Execute the events scheduled with ScheduleDestroy().
Access to the Ipv4 forwarding table, interfaces, and configuration.
void LogComponentEnableAll(enum LogLevel level)
Enable the logging output for all registered log components.
virtual int Bind(const Address &address)=0
Allocate a local endpoint for this socket.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static InetSocketAddress ConvertFrom(const Address &address)
Returns an InetSocketAddress which corresponds to the input Address.
keep track of a set of node pointers.
Prefix all trace prints with simulation time.
void Install(std::string nodeName) const
Aggregate implementations of the ns3::Ipv4, ns3::Ipv6, ns3::Udp, and ns3::Tcp classes onto the provid...
void BindSock(Ptr< Socket > sock, Ptr< NetDevice > netdev)
virtual void BindToNetDevice(Ptr< NetDevice > netdevice)
Bind a socket to specific device.
void SetChannelAttribute(std::string name, const AttributeValue &value)
Set an attribute value to be propagated to each Channel created by the helper.
Ipv4 addresses are stored in host order in this class.
Ipv4InterfaceContainer Assign(const NetDeviceContainer &c)
Assign IP addresses to the net devices specified in the container based on the current network prefix...
Helper class that adds ns3::Ipv4StaticRouting objects.
void SendStuff(Ptr< Socket > sock, Ipv4Address dstaddr, uint16_t port)
Time Seconds(double value)
Construct a Time in the indicated unit.
void RemoveAllByteTags(void)
Remove all byte tags stored in this packet.
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)=0
Send data to a specified peer.
void Parse(int argc, char *argv[])
Parse the program arguments.
A helper class to make life easier while doing simple IPv4 address assignment in scripts.
uint16_t GetPort(void) const
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...
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.
Ptr< T > GetObject(void) const
Get a pointer to the requested aggregated Object.
void SetBase(Ipv4Address network, Ipv4Mask mask, Ipv4Address base="0.0.0.1")
Set the base network number, network mask and base address.
static TypeId LookupByName(std::string name)