[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ns] [re]:about the queuing (wfq,csfq,wf2q+)



Dear Federico Orlandini

Thanks for your kindness help.

I am using ns-allinone-2.1b6 and redhat linux 6.2,
I can run some of the examples smoothly but I can't get the wfq, wf2q+
and csfq function to work.
I can compiled the files so I get wfq.o, wf2q.o and csfq.o.  When I call

the queueing methods in the program codes, they fail and give me the
following messages:

invalid command name "Queue/WFQ"
 while executing
"Queue/WFQ create _014 "
 invoked from within
"catch "$className create $0 $args" msg"
 (procedure "new" line 3)
 invoked from within
"new Queue/$qtype"
 ("default" arm line 2)
 invoked from within
"sitch -exact $qtype {
ErrorModule {
if {[llength $args] >0 } {
set q [eval new $qtype $args]
} else {
set q [new $qtype Fid]
}
}
intserv {
set qtyp..."
 (procedure "_o3" line 10)
 (Simulator simplex-link line 10)
 invoked from within
"_o3 simplex-link _o10 _o12 5Mb 2ms WFQ 10"
 ("eval" body line 1)
 invoked from within
"eval $self simplex-link $n1 $n2 $bw $delay $type $args"
 (procedure "_o3" line 9)
 (Simulator duplex-link line 9)
 invoded from within
"$ns duplex-link $n0 $n1 5Mb 2ms WFQ 10"
 (file "example.tcl" line 12)

My program code is attached in this mail (example.tcl)

When I call the ns and type in the program line by line, it give me the
following error messages:

% set ns [new Simulator]
_o4
% set n0 [$ns node]
_o11
% set n1 [$ns node]
_o13
% $ns duplex-link $n0 $n1 5Mb 2ms WFQ 10
class Queue/WFQ: constructor failed: invalid command name "Queue/WFQ"
% $ns duplex-link $n0 $n1 5Mb 2ms WFQ
class Queue/WFQ: constructor failed: invalid command name "Queue/WFQ"

My makefile in the ns-2.1b6 directory is also attached (Makefile)
Can u help me to solve my problems.
Really thanks a lot!!

Best Regards

Matthew WONG


Makefile

#  Copyright (c) 1994, 1995, 1996
#       The 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: (1) source code
distributions
#  retain the above copyright notice and this paragraph in its entirety,
(2)
#  distributions including binary code include the above copyright
notice and
#  this paragraph in its entirety in the documentation or other
materials
#  provided with the distribution, and (3) all advertising materials
mentioning
#  features or use of this software display the following
acknowledgement:
#  ``This product includes software developed by the University of
California,
#  Lawrence Berkeley Laboratory and its contributors.'' Neither the name
of
#  the University nor the names of its contributors may 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.
#
# @(#) $Header: /usr/src/mash/repository/vint/ns-2/Makefile.in,v 1.179
2000/01/05 00:00:58 heideman Exp $ (LBL)

#
# Various configurable paths (remember to edit Makefile.in, not
Makefile)
#

# Top level hierarchy
prefix  = /usr/local
# Pathname of directory to install the binary
BINDEST = /usr/local/bin
# Pathname of directory to install the man page
MANDEST = /usr/local/man

BLANK   = # make a blank space.  DO NOT add anything to this line

# The following will be redefined under Windows (see WIN32 lable below)
CC      = gcc
CPP     = c++
LINK    = $(CPP)
MKDEP   = ./conf/mkdep
TCLSH   = /root/ns-allinone-2.1b6/tclbox/bin/tclsh8.0
TCL2C   = ../tclcl-1.0b9/tcl2c++
AR      = ar rc $(BLANK)

RANLIB  = ranlib
INSTALL = /usr/bin/install -c
LN      = ln
TEST    = test
RM      = rm -f
PERL    = /usr/bin/perl


CCOPT   = -g -Wall
STATIC  =
LDFLAGS = $(STATIC)
LDOUT   = -o $(BLANK)

DEFINE  = -DTCP_DELAY_BIND_ALL -DNO_TK -DTCLCL_CLASSINSTVAR  -DNDEBUG
-DUSE_SHM -DHAVE_LIBTCLCL1_0B9 -DHAVE_TCLCL_H -DHAVE_LIBOTCL1_0A5
-DHAVE_OTCL_H -DHAVE_LIBTK8_0 -DHAVE_TK_H
INCLUDES = \
        -I.  \
        -I../tclcl-1.0b9 -I../otcl-1.0a5 -I../tkbox/include
-I../tclbox/include
#       -I. @V_INCLUDE_X11@ \
#       @V_INCLUDES@

LIB     = \
        -L../tclcl-1.0b9 -ltclcl -L../otcl-1.0a5 -lotcl -L../tkbox/lib
-ltk8.0 -L../tclbox/lib -ltcl8.0  \
        -L/usr/X11R6/lib -lXext -lX11 \
        -lnsl -ldl \
        -lm
#       -L${exec_prefix}/lib \

#       @V_LIBS@ \
#       @V_LIB_X11@ \
#       @V_LIB@ \
#       -lm @LIBS@
#       -L@libdir@ \

CFLAGS  = $(CCOPT) $(DEFINE)

# Explicitly define compilation rules since SunOS 4's make doesn't like
gcc.
# Also, gcc does not remove the .o before forking 'as', which can be a
# problem if you don't own the file but can write to the directory.
.SUFFIXES: .cc  # $(.SUFFIXES)

.cc.o:
        @rm -f $@
        $(CPP) -c $(CFLAGS) $(INCLUDES) -o $@ $*.cc

.c.o:
        @rm -f $@
        $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $*.c


GEN_DIR = gen/
LIB_DIR = lib/
NS      = ns
NSX     = nsx
NSE     = nse

# WIN32: uncomment the following line to include specific make for VC++
# !include <conf/makefile.win>


OBJ_CC = \
        random.o rng.o ranvar.o csfq.o wf2q+.o fred.o util.o misc.o
timer-handler.o \
        scheduler.o object.o \
        packet.o ip.o route.o connector.o ttl.o \
        trace.o trace-ip.o \
        classifier.o classifier-addr.o classifier-hash.o
classifier-virtual.o \
        classifier-mcast.o classifier-bst.o classifier-mpath.o
replicator.o \
        classifier-mac.o classifier-port.o \
        app.o telnet.o tcplib-telnet.o \
        trafgen.o traffictrace.o pareto.o expoo.o cbr_traffic.o \
        tbf.o resv.o sa.o saack.o \
        measuremod.o estimator.o adc.o ms-adc.o timewindow-est.o
acto-adc.o \
        pointsample-est.o salink.o actp-adc.o hb-adc.o expavg-est.o\
        param-adc.o null-estimator.o \
        adaptive-receiver.o vatrcvr.o consrcvr.o \
        agent.o message.o udp.o session-rtp.o rtp.o rtcp.o ivs.o \
        tcp.o tcp-sink.o tcp-reno.o tcp-newreno.o \
        tcp-vegas.o tcp-rbp.o tcp-full.o \
        scoreboard.o tcp-sack1.o tcp-fack.o \
        tcp-asym.o tcp-asym-sink.o tcp-fs.o tcp-asym-fs.o \
        tcp-int.o chost.o tcp-session.o nilist.o \
        integrator.o queue-monitor.o flowmon.o loss-monitor.o \
        queue.o drop-tail.o simple-intserv-sched.o red.o \
        semantic-packetqueue.o semantic-red.o ack-recons.o \
        sfq.o fq.o drr.o cbq.o \
        hackloss.o errmodel.o \
        delay.o snoop.o \
        dynalink.o rtProtoDV.o net-interface.o \
        ctrMcast.o mcast_ctrl.o srm.o \
        sessionhelper.o delaymodel.o srm-ssm.o \
        srm-topo.o \
        mftp.o mftp_snd.o mftp_rcv.o codeword.o \
        alloc-address.o address.o \
        $(LIB_DIR)int.Vec.o $(LIB_DIR)int.RVec.o \
        $(LIB_DIR)dmalloc_support.o \
        webcache/http.o webcache/tcp-simple.o webcache/pagepool.o \
        webcache/inval-agent.o webcache/tcpapp.o webcache/http-aux.o \
        webcache/mcache.o webcache/webtraf.o \
        lanRouter.o filter.o pkt-counter.o \
        Decapsulator.o Encapsulator.o \
        channel.o mac.o ll.o \
        mac-802_11.o \
        mac-802_3.o \
        mip.o mip-reg.o gridkeeper.o \
        propagation.o tworayground.o antenna.o omni-antenna.o \
        bi-connector.o node.o mobilenode.o \
        arp.o god.o dem.o topography.o modulation.o priqueue.o \
        phy.o wired-phy.o wireless-phy.o \
        mac-timers.o cmu-trace.o varp.o \
        dsdv/dsdv.o dsdv/rtable.o \
        rtqueue.o rttable.o \
        imep/imep.o imep/dest_queue.o imep/imep_api.o \
        imep/imep_rt.o imep/rxmit_queue.o imep/imep_timers.o \
        imep/imep_util.o imep/imep_io.o \
        tora/tora.o tora/tora_api.o tora/tora_dest.o tora/tora_io.o \
        tora/tora_logs.o tora/tora_neighbor.o \
        dsr/dsragent.o dsr/hdr_sr.o dsr/mobicache.o dsr/path.o \
        dsr/requesttable.o dsr/routecache.o \
        aodv/aodv_logs.o aodv/aodv.o \
        ns-process.o \
        satgeometry.o sathandoff.o satlink.o satnode.o \
        satposition.o satroute.o sattrace.o \
        rap/raplist.o rap/rap.o rap/media-app.o rap/utilities.o \
        fsm.o tcp-abs.o \
        tfrc.o tfrc-sink.o energy-model.o ping.o tcp-rfc793edu.o

# don't allow comments to follow continuation lines

#  mac-csma.o mac-multihop.o\
#       sensor-nets/landmark.o mac-simple-wireless.o \
#       sensor-nets/tags.o sensor-nets/sensor-query.o \
#       sensor-nets/flood-agent.o \

# what was here before is now in emulate/
OBJ_C =

OBJ_COMPAT = $(OBJ_GETOPT) win32.o
#XXX compat/win32x.o compat/tkConsole.o

OBJ_EMULATE_CC = \
        emulate/net-ip.o \
        emulate/net.o \
        emulate/tap.o \
        emulate/ether.o \
        emulate/net-pcap.o \
        emulate/internet.o \
        emulate/ping_responder.o \
        emulate/arp.o \
        emulate/icmp.o \
        emulate/nat.o

OBJ_EMULATE_C = \
        emulate/inet.o

OBJ_GEN = $(GEN_DIR)version.o $(GEN_DIR)ns_tcl.o $(GEN_DIR)ptypes.o

SRC =   $(OBJ_C:.o=.c) $(OBJ_CC:.o=.cc) \
        $(OBJ_EMULATE_C:.o=.c) $(OBJ_EMULATE_CC:.o=.cc) \
        tclAppInit.cc tkAppInit.cc

OBJ =   $(OBJ_C) $(OBJ_CC) $(OBJ_GEN) $(OBJ_COMPAT)

CLEANFILES = ns nsx ns.dyn $(OBJ) $(OBJ_EMULATE_CC) \
        $(OBJ_EMULATE_C) tclAppInit.o \
        $(GEN_DIR)* core core.$(NS) core.$(NSX) core.$(NSE) \
        ptypes2tcl ptypes2tcl.o

SUBDIRS=\
        indep-utils/cmu-scen-gen/setdest \
        indep-utils/webtrace-conv/dec \
        indep-utils/webtrace-conv/epa \
        indep-utils/webtrace-conv/nlanr \
        indep-utils/webtrace-conv/ucb

all: $(NS) all-recursive

all-recursive:
        for i in $(SUBDIRS); do ( cd $$i; $(MAKE) all; ) done

$(NS): $(OBJ) tclAppInit.o Makefile
        $(LINK) $(LDFLAGS) $(LDOUT)$@ \
                tclAppInit.o $(OBJ) $(LIB)

Makefile: Makefile.in
        @echo "Makefile.in is newer than Makefile."
        @echo "You need to re-run configure."
        false

$(NSE): $(OBJ) tclAppInit.o $(OBJ_EMULATE_CC) $(OBJ_EMULATE_C)
        $(LINK) $(LDFLAGS) $(LDOUT)$@ \
                tclAppInit.o $(OBJ) \
                $(OBJ_EMULATE_CC) $(OBJ_EMULATE_C)  $(LIB) -lpcap

ns.dyn: $(OBJ) tclAppInit.o
        $(LINK) $(LDFLAGS) -o $@ \
                tclAppInit.o $(OBJ) $(LIB)

PURIFY  = purify -cache-dir=/tmp
ns-pure: $(OBJ) tclAppInit.o
        $(PURIFY) $(LINK) $(LDFLAGS) -o $@ \
                tclAppInit.o $(OBJ) $(LIB)

NS_TCL_LIB = \
        tcl/lib/ns-compat.tcl \
        tcl/lib/ns-default.tcl \
        tcl/lib/ns-errmodel.tcl \
        tcl/lib/ns-lib.tcl \
        tcl/lib/ns-link.tcl \
        tcl/lib/ns-mobilenode.tcl \
        tcl/lib/ns-sat.tcl \
        tcl/lib/ns-cmutrace.tcl \
        tcl/lib/ns-node.tcl \
        tcl/lib/ns-hiernode.tcl \
        tcl/lib/ns-packet.tcl \
        tcl/lib/ns-queue.tcl \
        tcl/lib/ns-source.tcl \
        tcl/lib/ns-nam.tcl \
        tcl/lib/ns-trace.tcl \
        tcl/lib/ns-agent.tcl \
        tcl/lib/ns-random.tcl \
        tcl/lib/ns-namsupp.tcl \
        tcl/lib/ns-address.tcl \
        tcl/lib/ns-intserv.tcl \
        tcl/lib/ns-autoconf.tcl \
        tcl/rtp/session-rtp.tcl \
        tcl/lib/ns-mip.tcl \
        tcl/rtglib/dynamics.tcl \
        tcl/rtglib/route-proto.tcl \
        tcl/rtglib/algo-route-proto.tcl \
        tcl/interface/ns-iface.tcl \
        tcl/mcast/BST.tcl \
        tcl/mcast/ns-mcast.tcl \
        tcl/mcast/McastProto.tcl \
        tcl/mcast/DM.tcl \
        tcl/mcast/srm.tcl \
        tcl/mcast/srm-adaptive.tcl \
        tcl/mcast/srm-ssm.tcl \
        tcl/mcast/timer.tcl \
        tcl/mcast/McastMonitor.tcl \
        tcl/mcast/mftp_snd.tcl \
        tcl/mcast/mftp_rcv.tcl \
        tcl/mcast/mftp_rcv_stat.tcl \
        tcl/ctr-mcast/CtrMcast.tcl \
        tcl/ctr-mcast/CtrMcastComp.tcl \
        tcl/ctr-mcast/CtrRPComp.tcl \
        tcl/rlm/rlm.tcl \
        tcl/rlm/rlm-ns.tcl \
        tcl/session/session.tcl \
        tcl/lib/ns-route.tcl \
        tcl/emulate/ns-emulate.tcl \
        tcl/lan/vlan.tcl \
        tcl/lan/ns-ll.tcl \
        tcl/lan/ns-mac.tcl \
        tcl/webcache/http-agent.tcl \
        tcl/webcache/http-server.tcl \
        tcl/webcache/http-cache.tcl \
        tcl/webcache/http-mcache.tcl \
        tcl/webcache/webtraf.tcl

$(GEN_DIR)ns_tcl.cc: $(NS_TCL_LIB)
        $(TCLSH) bin/tcl-expand.tcl tcl/lib/ns-lib.tcl | $(TCL2C)
gen/ns_tcl.cc
#       $(TCLSH) bin/tcl-expand.tcl tcl/lib.ns-lib.tcl | \bs
../tclcl-1.0b9/tcl2c++ et_ns_lib >gen/ns_tcl.cc
$(GEN_DIR)version.c: VERSION
        $(RM) $@
        $(TCLSH) bin/string2c.tcl version_string < VERSION > $@

$(GEN_DIR)ptypes.cc: ptypes2tcl packet.h
        ./ptypes2tcl > $@

ptypes2tcl: ptypes2tcl.o
        $(LINK) $(LDFLAGS) $(LDOUT)$@ ptypes2tcl.o

ptypes2tcl.o: ptypes2tcl.cc packet.h

install: force install-ns install-man install-recursive

install-ns: force
        $(INSTALL) -m 555 -o bin -g bin ns $(DESTDIR)$(BINDEST)

install-man: force
        $(INSTALL) -m 444 -o bin -g bin ns.1 $(DESTDIR)$(MANDEST)/man1

install-recursive: force
        for i in $(SUBDIRS); do cd $$i; $(MAKE) install; done

clean:
        $(RM) $(CLEANFILES)

distclean:
        $(RM) $(CLEANFILES) Makefile config.cache config.log
config.status \
            gnuc.h os-proto.h

tags:   force
        ctags -wtd *.cc *.h webcache/*.cc webcache/*.h dsdv/*.cc
dsdv/*.h \
        dsr/*.cc dsr/*.h webcache/*.cc webcache/*.h lib/*.cc lib/*.h \
        ../Tcl/*.cc ../Tcl/*.h

TAGS:   force
        etags *.cc *.h webcache/*.cc webcache/*.h dsdv/*.cc dsdv/*.h \
        dsr/*.cc dsr/*.h webcache/*.cc webcache/*.h lib/*.cc lib/*.h \
        ../Tcl/*.cc ../Tcl/*.h

tcl/lib/TAGS:   force
        ( \
                cd tcl/lib; \
                $(TCLSH) ../../bin/tcl-expand.tcl ns-lib.tcl | grep
'^### tcl-expand.tcl: begin' | awk '{print $$5}' >.tcl_files; \
                etags --lang=none -r '/^[ \t]*proc[ \t]+\([^ \t]+\)/\1/'
`cat .tcl_files`; \
                etags --append --lang=none -r '/^\([A-Z][^ \t]+\)[
\t]+\(instproc\|proc\)[ \t]+\([^ \t]+\)[ \t]+/\1::\3/' `cat .tcl_files`;
\
        )

depend: $(SRC)
        $(MKDEP) $(CFLAGS) $(INCLUDES) $(SRC)

srctar:
        @cwd=`pwd` ; dir=`basename $$cwd` ; \
            name=ns-`cat VERSION | tr A-Z a-z` ; \
            tar=ns-src-`cat VERSION`.tar.gz ; \
            list="" ; \
            for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \

            echo \
            "(rm -f $$tar; cd .. ; ln -s $$dir $$name)" ; \
             (rm -f $$tar; cd .. ; ln -s $$dir $$name) ; \
            echo \
            "(cd .. ; tar cfh $$tar [lots of files])" ; \
             (cd .. ; tar cfh - $$list) | gzip -c > $$tar ; \
            echo \
            "rm ../$$name; chmod 444 $$tar" ;  \
             rm ../$$name; chmod 444 $$tar

force:

test:   force
        ./validate

# Create makefile.vc for Win32 development by replacing:
# "# !include ..."      ->      "!include ..."
makefile.vc:    Makefile.in
        $(PERL) bin/gen-vcmake.pl < Makefile.in > makefile.vc
#       $(PERL) -pe 's/^# (\!include)/\!include/o' < Makefile.in >
makefile.vc


example.tcl