1. 05 Nov, 2003 2 commits
  2. 16 Oct, 2003 1 commit
    • Shashi Guruprasad's avatar
      Distributed nse changes · 1630611a
      Shashi Guruprasad authored
      1) IP address based routes can now be added
         - The IP address is set on a link object
         - An "$ns rlink" is used to instantiate links
           that get cut and cross physical partitions
         - Traffic agents that are across physical
           partitions (i.e. different instances of nse)
           are connected by a new "$ns ip-connect"
           mechanism
         - A new Node instproc "add-route-to-ip" adds
           IP address based routes.
         - Changed ns multicast addressing to use 3 bits
           instead of the default 1
         - Currently, the classifier does a lookup on a
           complete 32 bit IP and if a target to route to
           is not found, uses a 24 bit IP mask. It does not
           try to match IP prefixes of all lengths. I'll add
           that later if necessary
      2) NS packets that cross partitions are encapsulated in
         IPPROTO_ENCAP IP packets.
      3) RAW IP sockets used to inject packets into the network
         now use a rtabid paramater so that packets can be
         routed according to different routing tables
      
      Tested with 2 test cases, one with UDP/CBR traffic
      and another with default NS TCP/FTP traffic. Setup was done
      manually. As I do testbed integration, there may be more changes.
      Here's the test setup:
      
         2.2    2.3   1.2      1.3   3.2      3.3
      n0 --------- n1 ----------- n2 ------------ n3
      
      n0,n1 are on one physical node and n2,n3 are on another. The n1-n2 link
      is cut.
      
      A TCP example:
      
      ---------------------physnode0---------------------
      set ns [new Simulator]
      $ns use-scheduler RealTime
      
      set n0 [$ns node]
      set n1 [$ns node]
      
      $ns duplex-link $n0 $n1 10Mb 5ms DropTail
      [$ns link $n0 $n1] set-ip 10.1.2.2
      [$ns link $n1 $n0] set-ip 10.1.2.3
      
      set rl0 [$ns rlink $n1 10.1.1.3 2Mb 40ms DropTail]
      $rl0 set-ip 10.1.1.2
      
      set tcp0 [new Agent/TCP]
      # The last parameter specifies the port
      $ns attach-agent $n0 $tcp0 20
      $ns ip-connect $tcp0 10.1.3.3 20
      set ftp0 [new Application/FTP]
      $ftp0 attach-agent $tcp0
      
      $n0 add-route-to-ip 10.1.3.3 10.1.2.3
      $n1 add-route-to-ip 10.1.3.3 10.1.1.3
      
      $ns at 1.0 "$ftp0 start"
      $ns at 10.0 "$ftp0 stop"
      -----------------end physnode0---------------------
      
      ---------------------physnode1---------------------
      set ns [new Simulator]
      $ns use-scheduler RealTime
      
      set n2 [$ns node]
      set n3 [$ns node]
      
      $ns duplex-link $n2 $n3 10Mb 5ms DropTail
      [$ns link $n2 $n3] set-ip 10.1.3.2
      [$ns link $n3 $n2] set-ip 10.1.3.3
      
      set rl1 [$ns rlink $n2 10.1.1.2 2Mb 40ms DropTail]
      $rl1 set-ip 10.1.1.3
      
      set tcpsink0 [new Agent/TCPSink]
      $ns attach-agent $n3 $tcpsink0 20
      $ns ip-connect $tcpsink0 10.1.2.2 20
      
      $n3 add-route-to-ip 10.1.2.2 10.1.3.2
      $n2 add-route-to-ip 10.1.2.2 10.1.1.2
      -----------------end physnode1---------------------
      1630611a
  3. 06 Jun, 2003 1 commit
  4. 30 Jan, 2003 1 commit
    • Shashi Guruprasad's avatar
      Fixed an error made by ISI during last year's rewriting of the RTSched code · cbe7fc8b
      Shashi Guruprasad authored
      that although appeared to be right was actually causing errors to be
      accumalated. This fixes the high error rates in the bandwidth and loss rate
      numbers reported in OSDI. There are also code optimizations after profiling
      it that reduces the RTSched overhead.
      
      Another source of error was send/consume/request/reply which used to be
      given a very rough estimate of the CPU speed (600 instead of 601.37 Mhz for
      example). The latter comes from the boot up calibration in FreeBSD which
      is supposed to be accurate up to 10 microsecs on a 486.  Using
      600 instead of 601.37 causes an error of 0.22 % in the measurement. That is
      about 1.3 ms for an RTT of 600 ms. This error is worse when send/consume
      are used to calculate throughputs. The longer the period of measurement,
      the worse it becomes.  I have committed changes in them as well. Defining
      the macro CPU_SPEED_IN_KHZ will get you kernels that take CPU_SPEED
      parameters in Khz instead of Mhz. So, you can specify 851940 instead of
      850 for a pc850.
      
      boss:/tftpboot/x86/{send,consume,request,reply}.cpuinkhz lets you specify
      CPU_SPEED in Khz
      cbe7fc8b
  5. 15 Nov, 2002 1 commit
  6. 09 Nov, 2002 1 commit
    • Shashi Guruprasad's avatar
      Updated nse.patch,tbnexthop.{cc,h} with all the recent nse changes. · fc580b5a
      Shashi Guruprasad authored
      tbnexthop.{cc,h} now contains setsockopts to install "ipfw fwd" rules.
      
      <netinet/ip_fw.h> has changed from FBSD 4.3 to 4.5 . Because boss has 4.3,
      compiling ipfw code on boss and running it on an experimental
      node doesn't work. Therefore, I now have a cvs checked in local copy of
      the 4.5 version of the file.
      
      nseinput.tcl now finds the CPU cycle speed from /var/run/dmesg.boot and
      passes the info to nse's RT scheduler which keeps track of real time
      using the TSC. The same info can be obtained by PERFMON ioctls but the
      kernel boot time measurement of the cpu cycle speed is more accurate than
      what perfmon can report
      fc580b5a
  7. 07 Oct, 2002 1 commit
  8. 06 Oct, 2002 1 commit
  9. 19 Jun, 2002 1 commit
  10. 13 Jun, 2002 1 commit
  11. 12 Jun, 2002 1 commit
  12. 20 Mar, 2002 1 commit