- #
- # Copyright (C) 1999 by USC/ISI
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms are permitted
- # provided that the above copyright notice and this paragraph are
- # duplicated in all such forms and that any documentation, advertising
- # materials, and other materials related to such distribution and use
- # acknowledge that the software was developed by the University of
- # Southern California, Information Sciences Institute. The name of the
- # University may not be used to endorse or promote products derived from
- # this software without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
- # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- #
- #
- # Maintainer: Polly Huang <huang@isi.edu>
- # Version Date: $Date: 2000/09/14 18:19:26 $
- #
- # @(#) $Header: /cvsroot/nsnam/ns-2/tcl/ex/virtual-classifier.tcl,v 1.8 2000/09/14 18:19:26 haoboy Exp $ (USC/ISI)
- #
- # An example script using virtual classifier
- #
- set ns [new Simulator]
- Node enable-module VC
- $ns color 0 blue
- $ns color 1 red
- $ns color 2 white
- set n0 [$ns node]
- set n1 [$ns node]
- set n2 [$ns node]
- set n3 [$ns node]
- set f [open out.tr w]
- $ns trace-all $f
- set nf [open out.nam w]
- $ns namtrace-all $nf
- $ns duplex-link $n0 $n2 5Mb 2ms DropTail
- $ns duplex-link $n1 $n2 5Mb 2ms DropTail
- $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail
- $ns duplex-link-op $n0 $n2 orient right-up
- $ns duplex-link-op $n1 $n2 orient right-down
- $ns duplex-link-op $n2 $n3 orient right
- $ns duplex-link-op $n2 $n3 queuePos 0.5
- set udp0 [new Agent/UDP]
- $ns attach-agent $n0 $udp0
- set cbr0 [new Application/Traffic/CBR]
- $cbr0 attach-agent $udp0
- set udp1 [new Agent/UDP]
- $ns attach-agent $n3 $udp1
- $udp1 set class_ 1
- set cbr1 [new Application/Traffic/CBR]
- $cbr1 attach-agent $udp1
- set null0 [new Agent/Null]
- $ns attach-agent $n3 $null0
- set null1 [new Agent/Null]
- $ns attach-agent $n1 $null1
- $ns connect $udp0 $null0
- $ns connect $udp1 $null1
- $ns at 1.0 "$cbr0 start"
- $ns at 1.1 "$cbr1 start"
- set tcp [new Agent/TCP]
- $tcp set class_ 2
- set sink [new Agent/TCPSink]
- $ns attach-agent $n0 $tcp
- $ns attach-agent $n3 $sink
- $ns connect $tcp $sink
- set ftp [new Application/FTP]
- $ftp attach-agent $tcp
- $ns at 1.2 "$ftp start"
- $ns at 1.35 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
- puts [$cbr0 set packetSize_]
- puts [$cbr0 set interval_]
- $ns at 3.0 "finish"
- proc finish {} {
- global ns f nf
- $ns flush-trace
- close $f
- close $nf
- puts "running nam..."
- exec nam out.nam &
- exit 0
- }
- $ns run