Training2014
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - 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.
Logistics
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.
Agenda
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
Preparations
Nothing is strictly required, but working through the ns-3 tutorial is a good starting point, if you haven't already.
Code
There are two tarballs to be used in training:
- ns-allinone (22 MB)
- bake (143 MB)
The recently updated example program:
Training materials
All presentations will be hyperlinked from this wiki page (as they are made available).
- Session 1: ns-3 introduction (pptx)
- Session 2: ns-3 core (pptx)
- Session 3: ns-3 tracing (pptx)
- Session 4: writing ns-3 code (pptx)
- Session 5: ns-3 WiFi
- Session 6: ns-3 LTE
- Session 7: ns-3 distributed (pptx)
- Session 8: ns-3 emulation and DCE
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 udp-echo.cc example program:
diff -r d5366c58c392 examples/udp/udp-echo.cc --- a/examples/udp/udp-echo.cc Sun May 04 18:46:44 2014 -0700 +++ b/examples/udp/udp-echo.cc 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("255.255.255.255"), 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 udp-socket-impl.cc:
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.