HOWTOs

From Nsnam
Revision as of 03:36, 14 April 2008 by Tomh (Talk | contribs) (ip src/dst addr howto)

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

Joseph Kopena's ns-3 wiki

Getting started on Mac OS X

(Notes courtesy of Craig Dowell) For a new Mac (OS X 10.5.2 Intel), here are the (quite painless) steps I used to get an ns-3 development environment up and running, clone, compile, and unit and regression test ns-3-dev.

1. Join Apple Developer Connection (for free ­ internet user);

   a.  Go to http://developer.apple.com/products/
   b.  Select Join ADC Online Membership
   c.  Log in with Apple ID
   d.  Fill out Become an ADC Member form
   e.  Tell them what kind of code you develop
   f.  You are redirected to Developer Connection | Member Site

2. Download XCode for your OS (3.0 for Leopard at writing) Disk Image;

   a.  From Developer Connection | Member Site select Downloads, get
       directed to What¹s New
   b.  Select Developer Tools from Downloads list
   c.  Scroll down to XCode releases and select a Disk Image
   d.  Be prepared for over 1GB download ~1/2 hour on 6mbps cable

3. Install the Xcode Tools

   a.  Double-clock on XcodeTools.mpkg
   b.  Perform Standard Install
   c.  Open a terminal
   d.  Type gcc and see something like
       Bash 3.2$ gcc
       i686-apple-darwin9-gcc-4.0.1: no input files
       bash-3.2$ 

4. Install Mercurial

   a.  Go to http://www.selenic.com/mercurial/wiki/index.cgi/Download
   b.  Select the Binary Package option
   c.  Select Mac OS X
   d.  Select Mercurial 1.0 for OS X 10.5 (if appropriate)
   e.  Double-click  on package and follow instructions.
   f.  Execute command
       which hg
       in terminal or xterm
   g.  If no hg listed, you may have to add /usr/local/bin to your
       path, e.g. export PATH=$PATH:/usr/local/bin

5. Clone ns-3-dev

   a.  mkdir repos;cd !$
   b.  hg clone http://code.nsnam.org/ns-3-dev

6. Build ns-3-dev

   a.  cd ns-3-dev
   b.  ./waf configure ­d debug
   c.  ./waf

7. Run Unit Tests

   a. ./waf check

8. Run Regression Tests

   a. ./waf --regression

Extracting IP src/dst header

Q. What is the appropriate way to extract the ip src/dst address from a packet?

A.

 // copy packet to avoid modifying the original packet
 Ptr<Packet> copy = p->Copy ();
 Ipv4Header iph;
 copy->RemoveHeader (iph);
 // copy will disappear when you are done with it.