Difference between revisions of "Training2014"

From Nsnam
Jump to: navigation, search
(Logistics)
(Training materials)
 
(16 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
The flyer containing logistic information is posted [http://www.nsnam.org/consortium/activities/annual-meeting-may-2014/training-flyer/ here]
 
The flyer containing logistic information is posted [http://www.nsnam.org/consortium/activities/annual-meeting-may-2014/training-flyer/ here]
  
The location is [https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Klaus+Advanced+Computing+Building,+266+Ferst+Drive,+Atlanta,+Georgia,&aq=&sll=37.6,-95.665&sspn=32.737388,77.695313&vpsrc=0&ie=UTF8&hq=&hnear=Klaus+Advanced+Computing+Bldg,+266+Ferst+Dr,+Atlanta,+Georgia+30313&t=m&z=16 | here].
+
The location is [https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Klaus+Advanced+Computing+Building,+266+Ferst+Drive,+Atlanta,+Georgia,&aq=&sll=37.6,-95.665&sspn=32.737388,77.695313&vpsrc=0&ie=UTF8&hq=&hnear=Klaus+Advanced+Computing+Bldg,+266+Ferst+Dr,+Atlanta,+Georgia+30313&t=m&z=16 Klaus Advanced Computing Building, Room 1456].
  
For emergency contact, please email [mailto:consortium@nsnam.org consortium@nsnam.org]
+
We'll be running two sessions/morning and two sessions/afternoon, with coffee breaks in between, and a 90 minute lunch break.   
 
+
Training will start at 8:30am; feel free to arrive anytime after 8am.
+
 
+
We'll be running two sessions/morning and two sessions/afternoon, with coffee breaks in between, and a 90 minute lunch break.  People will need to walk off site to get lunch (across the street).
+
  
 
We will provide coffee before the first session and at each 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.).  There are no plans to videotape anyone who is attending (i.e. in the audience) but audio questions from the audience may be picked up by the microphone.
+
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 =
 
= Agenda =
Line 28: Line 24:
 
* 10:00-noon  Session 2  ns-3 core  (Tom Henderson)
 
* 10:00-noon  Session 2  ns-3 core  (Tom Henderson)
 
* 1:30-3      Session 3  ns-3 tracing (Walid Younes)
 
* 1:30-3      Session 3  ns-3 tracing (Walid Younes)
* 3:15-5      Session 4  writing code for ns-3  
+
* 3:15-5      Session 4  writing code for ns-3 (Tom Henderson)
  
== Tuesday May 5 ==
+
== 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)
 
* 8:30-9:45  Session 1  Wireless and mobile simulations (Daniel Lertpratchya)
Line 44: Line 42:
 
= Code =
 
= Code =
  
We will prepare a tarball of code that can be used to follow along with the training session, and post links here.
+
There are two tarballs to be used in training:
 +
 
 +
* [https://www.nsnam.org/tutorials/consortium14/ns-allinone-3.20.training.tar.bz2 ns-allinone] (22 MB)
 +
* [https://www.nsnam.org/tutorials/consortium14/bake-ns-3.20.training.tar.bz2 bake] (143 MB)
 +
 
 +
The recently updated example program:
 +
* [http://code.nsnam.org/ns-3-dev/raw-file/d5366c58c392/examples/wireless/mixed-wireless.cc mixed-wireless.cc]
 +
* [http://code.nsnam.org/ns-3-dev/raw-file/d5366c58c392/examples/wireless/mixed-wireless.py mixed-wireless.py]
  
 
= Training materials =
 
= Training materials =
  
 
All presentations will be hyperlinked from this wiki page (as they are made available).
 
All presentations will be hyperlinked from this wiki page (as they are made available).
 +
 +
* Session 1:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-1.pdf ns-3 introduction] ([https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-1.pptx pptx])
 +
* Session 2:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-2.pdf ns-3 core] ([https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-2.pptx pptx])
 +
* Session 3:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-3.pdf ns-3 tracing] ([https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-3.pptx pptx])
 +
* Session 4:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-4.pdf writing ns-3 code] ([https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-4.pptx pptx])
 +
* Session 5:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-5.pdf ns-3 WiFi]
 +
* Session 6:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-6.pdf ns-3 LTE]
 +
* Session 7:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-7.pdf ns-3 distributed] ([https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-7.pptx pptx])
 +
* Session 8:  [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-8.pdf 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.

Latest revision as of 15:03, 1 September 2014

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.

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:

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 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.