From Nsnam
Revision as of 15:03, 1 September 2014 by Tomh (Talk | contribs) (Training materials)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This is the wiki page for the ns-3 training sessions being conducted on May 5-6, 2014 at Georgia Tech.


The flyer containing logistic information is posted here

The location is Klaus Advanced Computing Building, Room 1456.

We'll be running two sessions/morning and two sessions/afternoon, with coffee breaks in between, and a 90 minute lunch break.

We will provide coffee before the first session and at each break.

There will be video taping by the Ga. Tech audio visual team (the same people who record classes, seminars, etc.). Video of people in the audience will not be captured (i.e. there will be no camera shots of the audience) but audio questions from the audience may be picked up by the microphone.


Monday May 5

The goal of this day is a comprehensive overview of the simulator (what we can fit into one day). The instructors will be Tom Henderson and Walid Younes.

  • 8:30-9:45 Session 1 ns-3 overview (Tom Henderson)
  • 10:00-noon Session 2 ns-3 core (Tom Henderson)
  • 1:30-3 Session 3 ns-3 tracing (Walid Younes)
  • 3:15-5 Session 4 writing code for ns-3 (Tom Henderson)

Tuesday May 6

Tuesday's sessions will cover more advanced topics of ns-3.

  • 8:30-9:45 Session 1 Wireless and mobile simulations (Daniel Lertpratchya)
  • 10:00-noon Session 2 LTE simulations (Nicola Baldo)
  • 1:30-2:30 Session 3 Distributed simulations (Ken Renard)
  • 2:45-4:45 Session 4 Direct Code Execution and ns-3 emulation (Tom Henderson)
  • 4:45-5:00 wrapup and Q/A


Nothing is strictly required, but working through the ns-3 tutorial is a good starting point, if you haven't already.


There are two tarballs to be used in training:

The recently updated example program:

Training materials

All presentations will be hyperlinked from this wiki page (as they are made available).

Questions and answers

Socket broadcast

In the gdb debugging example, recall that the goal was to debug what was going on in the UDP stack that prevented us from making this change to the example program:

 diff -r d5366c58c392 examples/udp/
 --- a/examples/udp/	Sun May 04 18:46:44 2014 -0700
 +++ b/examples/udp/	Sun May 18 07:17:06 2014 -0700
 @@ -113,7 +113,8 @@
    uint32_t packetSize = 1024;
    uint32_t maxPacketCount = 1;
    Time interPacketInterval = Seconds (1.);
 -  UdpEchoClientHelper client (serverAddress, port);
 +  //UdpEchoClientHelper client (serverAddress, port);
 +  UdpEchoClientHelper client (Ipv4Address(""), port);
    client.SetAttribute ("MaxPackets", UintegerValue (maxPacketCount));
    client.SetAttribute ("Interval", TimeValue (interPacketInterval));
    client.SetAttribute ("PacketSize", UintegerValue (packetSize));

We later discovered, via gdb, that the problem was that the socket "allow broadcast" flag was not set, and the UDP socket dropped the packet as a result; in

 if (dest.IsBroadcast ())
     if (!m_allowBroadcast)
         m_errno = ERROR_OPNOTSUPP;
         return -1;

This packet drop does not provide an NS_LOG statement (one will be added to ns-3-dev shortly). However, the question arose as to how to set the m_allowBroadcast flag.

ConfigStore enabling of example

Provide patch of example worked

MP-TCP global routing issues

Morteza pointed out problems with how global routing works interfering with his MP-TCP work.

CSMA TCP throughput

Morteza reported that CSMA link model is not very usable for high speed TCP.

Wifi EDCA incorrect decrementing issue

Need to follow up (not sure of the details)

How to hook tcp socket trace sources at configuration time

As discussed in tracing session, either extensions to one of the internet helpers, or some use of the config store to anticipate TCP sockets and schedule a future event to hook to the trace source, is needed.

How to best prepare examples for ns-3

Need some guidelines on how to provide example user programs to ns-3.