[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ns] about WFQ + multicast
Sir.,
The following script is written by modifying ns/tcl/ex/mcast.tcl and
wfq-patch.1.1a/example.tcl. When I run it, it reports an error: flow (Id
) not
registered (in italian). How can I correct it next step? Would you
please point out some other errors about the script for me?
thx
Zhai
======== Script=====
#
# Copyright (c) 1996 Regents of the University of California.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the
distribution.
# 3. All advertising materials mentioning features or use of this
software
# must display the following acknowledgement:
# This product includes software developed by the MASH Research
# Group at the University of California Berkeley.
# 4. Neither the name of the University nor of the Research Group may be
# used to endorse or promote products derived from this software
without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# @(#) $Header: /usr/src/mash/repository/vint/ns-2/tcl/ex/mcast.tcl,v
1.12 1999/09/10 22:08:41 haoboy Exp $
# updated to use -multicast on and allocaddr by Lloyd Wood
#
# Simple multicast test. It's easiest to verify the
# output with the animator.
# We create a four node start; start a CBR traffic generator in the
center
# and then at node 3 and exercise the join/leave code.
#
# See tcl/ex/newmcast/mcast*.tcl for more mcast example scripts
set ns [new Simulator -multicast on]
set f [open out.tr w]
$ns trace-all $f
$ns namtrace-all [open out.nam w]
$ns color 1 blue
$ns color 2 green
# prune/graft packets
$ns color 30 black
$ns color 31 red
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
# Use automatic layout
$ns duplex-link $n0 $n1 1.5Mb 10ms DropTail
$ns duplex-link $n1 $n2 1.5Mb 10ms WFQ
$ns duplex-link $n1 $n3 1.5Mb 10ms DropTail
$ns duplex-link $n2 $n4 1.5Mb 10ms DropTail
$ns duplex-link $n2 $n6 1.5Mb 10ms DropTail
$ns duplex-link $n1 $n5 1.5Mb 10ms DropTail
$ns duplex-link-op $n0 $n1 orient right
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n1 $n3 orient right-down
$ns duplex-link-op $n2 $n4 orient right-up
$ns duplex-link-op $n2 $n6 orient up
$ns duplex-link-op $n1 $n5 orient up
$ns duplex-link-op $n1 $n2 queuePos 0.5
$ns duplex-link-op $n1 $n3 queuePos 0.5
# Network Topo:
#
#
# n5 n6
# | |
# | |
# | |
# n0--------n1---------n2--------n4
# |
# |
# |
# n3
#
#
# n0:multicast source, CBR+UDP;
# n0---->n1---->n2---->n4: multicast receiver 1
# n0---->n1---->n3: multicast receiver 2
#
# n5:unicast source,CBR+UDP
# n5---->n1---->n2---->n6: unicast recervier
#
# Link n1---->n2: WFQ
# other links use Droptail.
#
#
# create an instance of the classifier suited for flow aggregation
set cl [new WFQAggregClassifier]
# install the classifier on the WFQ server at node $n0 heading at nt $n1
$ns wfqclassifier-install $n1 $n2 $cl
# in this example we have a flow for each queue but
# more than one flow can be assigned to the same WFQ server queue(PGPS
session)
$cl setqueue 0 3; # fid 0 -> WFQ server queue 3
$cl setqueue 1 4; # fid 1 -> WFQ server queue 4
#we set WFQ server queue weights
$cl setweight 3 .8; # WFQ server queue 3 has weight .8
$cl setlength 3 10; # WFQ server queue 3 has length 10 packets
$cl setweight 4 .2; # WFQ server queue 5 has weight .2
$cl setlength 4 20; # WFQ server queue 5 has length 20 packets
set mproto DM
set mrthandle [$ns mrtproto $mproto {}]
set group0 [Node allocaddr]
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
$udp0 set fid_ 0; # this is the info used by WFQ classifier
$udp0 set dst_addr_ $group0
$udp0 set dst_port_ 0
$udp0 set class_ 1
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 1000
$cbr0 set interval_ 0.0005
$cbr0 attach-agent $udp0
set rcvr1 [new Agent/LossMonitor]
$ns attach-agent $n4 $rcvr1
set rcvr2 [new Agent/LossMonitor]
$ns attach-agent $n3 $rcvr2
$ns at 0.1 "$n4 join-group $rcvr1 $group0"
$ns at 0.15 "$n3 join-group $rcvr2 $group0"
$ns at 0.1 "$cbr0 start"
set udp1 [new Agent/UDP]
$ns attach-agent $n5 $udp1
$udp1 set fid_ 1; # this is the info used by WFQ classifier
$udp1 set class_ 2
set null0 [new Agent/Null]
$ns attach-agent $n6 $null0
$ns connect $udp1 $null0
set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ 1000
$cbr1 set interval_ 0.0001
$cbr1 attach-agent $udp1
$ns at 0.12 "$cbr1 start"
puts [$cbr0 set packetSize_]
puts [$cbr0 set interval_]
$ns at 3.0 "finish"
proc finish {} {
global ns
$ns flush-trace
puts "running nam..."
exec nam out.nam &
exit 0
}
$ns run
--
If you received the Email, Please give me a confirmation
begin: vcard
fn: Zhai Mingyu
n: ;Zhai Mingyu
adr: Department of Computer Science & engineering(Network Research Group);;Southeast University;Nanjing;Jiangsu;210096;P.R.China
email;internet: [email protected]
tel;work: (008625)3792360
x-mozilla-cpt: ;-1
x-mozilla-html: FALSE
version: 2.1
end: vcard