hi to all! I am a newer about NS. my interesting is multicast congestion control. I have some problems when I run SMCC[Gu-In Kwon and John W. Byers. Smooth Multirate Multicast Congestion Control.IEEE INFOCOM 2003] I have downloaded SMCC source codes from the writer's websit: http://cs-people.bu.edu/guin/smcc.html. When I run the simulations, there are several problems, maybe the reason is the version I used is 3.2 which is differented from the writer's. Could somebody give me some advice that how to modify the codes in order to run simulations successfully in NS 3.2? The Problems is as follows: 1、If I replace "TCP-sink.h" and "TCP-sink.cc" with the website provioded, the error log in "make" procedure is : "tcp/tcp-asym-sink.o:tcp-asym-sink.cc:(.text+0x30d): undefined reference to `Acker::update_ts(int, double, int)' tcp/tcp-asym-sink.o:tcp-asym-sink.cc:(.rdata$_ZTV11TcpAsymSink[vtable for TcpAsymSink]+0x34): undefined reference to `DelAckSink::reset()' collect2: ld returned 1 exit status make: *** [ns] Error 1" So I retain the inherent codes in NS 3.2 instead of raplacing them. 2、I put "smcc.h" and "smcc.cc" in the directory "\ns-allinone-2.31\ns-2.31\mcast" When make it , there are some error information as follows: mcast/smcc.cc: In member function `void SmccAgent::warmup()': mcast/smcc.cc:123: error: ISO C++ forbids initialization in array new mcast/smcc.cc:124: error: ISO C++ forbids initialization in array new mcast/smcc.cc:125: error: ISO C++ forbids initialization in array new So I modified the codes : 123 send_timer_ = new SmccSendTimer[Max_smcc_Layer](this); 124 NoFeedbacktimer_ = new SmccNoFeedbackTimer[Max_smcc_Layer](this); 125 bcl_timer_ = new BclTimer[Max_Bcl_Layer](this); to: SmccSendTimer *send_timer_[Max_smcc_Layer]; SmccNoFeedbackTimer *NoFeedbacktimer_[Max_smcc_Layer]; for(int kk=0; kk<Max_smcc_Layer; kk++) { send_timer_[kk]= new SmccSendTimer(this); NoFeedbacktimer_[kk]= new SmccNoFeedbackTimer(this); } BclTimer *bcl_timer_[Max_Bcl_Layer]; for(int kk=0; kk<Max_Bcl_Layer; kk++) { bcl_timer_[kk]= new BclTimer(this); } Then make successfully. 3、I have also modified "makefile.in" to include the needed .cc and .h files: OBJ_CC = \ ... tcp/tfrc.o tcp/tfrc-sink.o mcast/tfmcc.o mcast/tfmcc-sink.o mcast/smcc.o tcp/formula.o \ ... 4、 When I run "smcc.tcl" for figure 4 and 5, there is one error log: $ ns smcc.tcl (_o3 cmd line 1) invoked from within "_o3 cmd queue-parameter _o17 _o24 2 6" invoked from within "catch "$self cmd $args" ret" invoked from within "if [catch "$self cmd $args" ret] { set cls [$self info class] global errorInfo set savedInfo $errorInfo error "error when calling class $cls: $args" $..." (procedure "_o3" line 2) (SplitObject unknown line 2) invoked from within "$ns queue-parameter $n3 $n4 2 6" (file "smcc.tcl" line 94) My question is : what's the function of "$ns queue-parameter $n3 $n4 2 6"? 5、 Then I commented out these two lines: ... #$ns queue-parameter $n3 $n4 2 6 ... #$ns queue-parameter $n3 $n5 2 21 ... Finally, when run it again, it turn another error: $ ns smcc.tcl Scheduler: Event UID not valid! I can't find where the problems, could somebody help me to solve these problems and run the simulations successfully? So appreciated and best regards!