Re: [ns] 802.11e TKN, little error. i give a nice website in return
On Jun 14, 2007, at 6:43 AM, Sim Tec wrote: Hello NS Users, Sven, Matthias, hilal, and Pepe I managed to get rid of the dh_da dh_sa problems that I mentioned in the previous post. BUT the rest of the make errors remain. I am worried now. Because this makes me think that I need to use a different version of NS, because Pete Barbe had a similar problem as seen at http://mailman.isi.edu/pipermail/ns-users/2004-December/ 046055.html Please tell me if I have to switch versions of NS. ??? Hi, the EDCA model was released for ns-2.28. Just download this version of ns-2 (http://www.isi.edu/nsnam/dist/ns-allinone-2.28.tar.gz) and install it. Afterwards, you can apply the EDCA patch. Best regards, Sven I do not know how to switch versions of NS. This is because I am new to NS. Can someone please give me quick advice on how to switch versions. Is their a quick way??? Thank you very much! Here is my Make problem: In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, double)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, not by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e (EDCF_PHY_MIB*, MAC_MIB*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, const char* const*)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::tx_resume()': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:502: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendHandler()': mac/802_11e/mac-802_11e.cc:590: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::send_timer()': mac/802_11e/mac-802_11e.cc:653: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktCTRL(int)': mac/802_11e/mac-802_11e.cc:728: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:733: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktRTS(int)': mac/802_11e/mac-802_11e.cc:777: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:780: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktTx(int)': mac/802_11e/mac-802_11e.cc:820: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendRTS(int, int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:854: error: within this context mac/802_11e/mac-802_11e.cc:863: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:890: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:894: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendCTS(int, int, double)': mac/802_11e/mac-802_11e.cc:912: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendACK(int, int)': mac/802_11e/mac-802_11e.cc:956: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendDATA(int, Packet*)': mac/802_11e/mac-802_11e.cc:997: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:1020: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::RetransmitRTS(int)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:1047: error: within this context mac/802_11e/mac-802_11e.cc:1058: error: `ETHER_HDR_LEN11' undeclared (first use this function)
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Thanks , but I am a new user of NS. And I dont know how to switch versions. Q1. Do I have to delete all my 2.30 files??? Q2.my ns-allinone-2.30 folder is in my C:\cygwin\home\Simulator folder. Do I need to delete it??? Q3. please could you tell me where the documentation about changing NS versions is Q4. Is there a way to reverse changes, for instance by system restore? sincere thanks guys On 6/14/07, Sven Wiethoelter [EMAIL PROTECTED] wrote: On Jun 14, 2007, at 6:43 AM, Sim Tec wrote: Hello NS Users, Sven, Matthias, hilal, and Pepe I managed to get rid of the dh_da dh_sa problems that I mentioned in the previous post. BUT the rest of the make errors remain. I am worried now. Because this makes me think that I need to use a different version of NS, because Pete Barbe had a similar problem as seen at http://mailman.isi.edu/pipermail/ns-users/2004-December/ 046055.html Please tell me if I have to switch versions of NS. ??? Hi, the EDCA model was released for ns-2.28. Just download this version of ns-2 (http://www.isi.edu/nsnam/dist/ns-allinone-2.28.tar.gz) and install it. Afterwards, you can apply the EDCA patch. Best regards, Sven I do not know how to switch versions of NS. This is because I am new to NS. Can someone please give me quick advice on how to switch versions. Is their a quick way??? Thank you very much! Here is my Make problem: In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, double)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, not by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e (EDCF_PHY_MIB*, MAC_MIB*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, const char* const*)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::tx_resume()': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:502: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendHandler()': mac/802_11e/mac-802_11e.cc:590: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::send_timer()': mac/802_11e/mac-802_11e.cc:653: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktCTRL(int)': mac/802_11e/mac-802_11e.cc:728: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:733: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktRTS(int)': mac/802_11e/mac-802_11e.cc:777: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:780: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktTx(int)': mac/802_11e/mac-802_11e.cc:820: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendRTS(int, int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:854: error: within this context mac/802_11e/mac-802_11e.cc:863: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:890: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:894: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendCTS(int, int, double)': mac/802_11e/mac-802_11e.cc:912: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendACK(int, int)': mac/802_11e/mac-802_11e.cc:956: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendDATA(int, Packet*)': mac/802_11e/mac-802_11e.cc:997: error:
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Hello NS Users, Sven, Matthias, hilal, and Pepe I managed to get rid of the dh_da dh_sa problems that I mentioned in the previous post. BUT the rest of the make errors remain. I am worried now. Because this makes me think that I need to use a different version of NS, because Pete Barbe had a similar problem as seen at http://mailman.isi.edu/pipermail/ns-users/2004-December/046055.html Please tell me if I have to switch versions of NS. ??? I do not know how to switch versions of NS. This is because I am new to NS. Can someone please give me quick advice on how to switch versions. Is their a quick way??? Thank you very much! Here is my Make problem: In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, double)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, not by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e(EDCF_PHY_MIB*, MAC_MIB*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, const char* const*)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::tx_resume()': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:502: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendHandler()': mac/802_11e/mac-802_11e.cc:590: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::send_timer()': mac/802_11e/mac-802_11e.cc:653: warning: unused variable 's' mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktCTRL(int)': mac/802_11e/mac-802_11e.cc:728: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:733: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktRTS(int)': mac/802_11e/mac-802_11e.cc:777: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:780: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `int Mac802_11e::check_pktTx(int)': mac/802_11e/mac-802_11e.cc:820: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendRTS(int, int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:854: error: within this context mac/802_11e/mac-802_11e.cc:863: error: `ETHER_RTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:890: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:894: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendCTS(int, int, double)': mac/802_11e/mac-802_11e.cc:912: error: `ETHER_CTS_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendACK(int, int)': mac/802_11e/mac-802_11e.cc:956: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::sendDATA(int, Packet*)': mac/802_11e/mac-802_11e.cc:997: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc:1020: error: `ETHER_ACK_LEN' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::RetransmitRTS(int)': ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:1047: error: within this context mac/802_11e/mac-802_11e.cc:1058: error: `ETHER_HDR_LEN11' undeclared (first use this function) mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::RetransmitDATA(int)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::RTSThreshold' is private mac/802_11e/mac-802_11e.cc:1126: error: within this context ./mac/mac-802_11.h:204: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:1128: error: within this context ./mac/mac-802_11.h:205: error: `u_int32_t MAC_MIB::LongRetryLimit' is private
Re: [ns] 802.11e TKN, little error. i give a nice website in return
hi there, i'm using this patch, and when i installed it i just followed the 10 indicated steps and it worked properly. The first time i tried to do this i got some problems and it didn't work, but it was something that i missed... as for me, i'm not using ns-2.30, it's ns-allinone-2.28 that i'm using. my problems were after i implemented an admission control algorithm, i couldn't include any header file to the application(including the header files i've never changed), donnow why, i tried to avoid the problem...until now i'm in a deep shit... hope it will work for u 2 ... good luck Sim Tec [EMAIL PROTECTED] wrote: Sincerely thanks for the responce Sven. I still have the same error. I set up the tcl/lan/ns-mac.tcl as follows: if [TclObject is-class Mac/802_11e] { Mac/802_11e set delay_ 64us Mac/802_11e set ifs_ 16us Mac/802_11e set slotTime_ 16us Mac/802_11e set cwmin_ 16 Mac/802_11e set cwmax_ 1024 Mac/802_11e set rtxLimit_ 16 Mac/802_11e set bssId_ -1 Mac/802_11e set sifs_ 8us Mac/802_11e set pifs_ 12us Mac/802_11e set difs_ 16us Mac/802_11e set rtxAckLimit_ 1 Mac/802_11e set rtxRtsLimit_ 3 Mac/802_11e set basicRate_ 1Mb ;# set this to 0 if want to use bandwidth_ for Mac/802_11e set dataRate_ 1Mb ;# both control and data pkts Mac/802_11e set cfb_ 0 ;# disables CFB } Should I follow these steps, step 7 seems to be very problematic 7. mac/wireless-phy.h: change enum ChannelStatus {IDLE, RECV, SEND}; to enum ChannelStatus {IDLE, RECVING, SENDING}; mac/wireless-phy.cc: replace all occurences of RECV and SEND (by RECVING and SENDING). 8. common/packet.h: add #define HDR_MAC802_11E(p) ((hdr_mac802_11e *)hdr_mac::access(p)) 9. run ./configure; make clean; make depend; make in your ns directory 10. happy simulating :o) (e.g with the example script ../ns-x/mac/802.11e/multi_udpflows.tcl) Sincere thanks and regards. On 6/11/07, Sven Wiethoelter wrote: On Jun 11, 2007, at 8:05 AM, Sim Tec wrote: Hello I am simulating with 802.11e and would love to use TKN I have the exact same problem that many people have had, but there is no solution posted for it. Hi, the solution is always the same: Check your changes in the tcl files ;-) (see further below) -In return, here is the Best website for NS-2 that I have found on the Internet. It is a very recent website also. http://academic.csuohio.edu/yuc/mobile07/ i am trying to apply the 802.11e patch for EDCA from TKN Berlin named 'EDCA_ns-2_28-v1-0-1.tgz' on ns-2.30. i have followed all the steps given in the README, but in vein..i am getting error when i run the sample tcl script named edca_multi_udpflows.tcl provided in the package. I tried another wireless scripts using the command set val (mac) Mac/802_11e to get the following error --- invalid command name Mac/802_11e while executing Mac/802_11e create _o54 invoked from within catch $className create $o $args msg invoked from within if [catch $className create $o $args msg] { if [string match __FAILED_SHADOW_OBJECT_ $msg] { delete $o return } global errorInfo error class $... (procedure new line 3) invoked from within new $mactype (procedure _o44 line 10) (Node/MobileNode add-interface line 10) invoked from within $node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_ (procedure _o3 line 66) (Simulator create-wireless-node line 66) invoked from within _o3 create-wireless-node 1.0.0 (eval body line 1) invoked from within eval $self create-wireless-node $args (procedure _o3 line 14) (Simulator node line 14) invoked from within $ns node 1.0.0 invoked from within set BS(0) [$ns node 1.0.0] (file edca_multi_udpflows.tcl line 92) initially I thought that i might have made mistake in make the object file for mac-802_11e may not have been created, but when i checked the mac directory the object files corresponding to all the .cc scripts in the patch were present.. This relates to C++ stuff only. Tcl code is not compiled by make. Thus, a successful make is not an indication that the Tcl stuff is correct, too. what shall i do? Check all your tcl settings. I guess that step 6 of the readme has not been applied properly: 6. add to tcl/lan/ns-mac.tcl: if [TclObject is-class Mac/802_11e] { ... copy settings of MAC/802.11 (which are contained in this file) into this section and at an e at the end of the Mac/802_11 terms ... Mac/802_11e set cfb_ 0 ;# disables CFB } Best regards, Sven please someone help.. Can you please tell me how you overcame this, as I have the exact same problem. Enjoy, and regards from Ireland. - Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user panel and lay it on us.
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Hi again and thanks, I now have a clearer picture of the problem. PLease can I have your advice, I really need to get this working I've followed the steps very closely, and have narrowed down the location of problem to instruction 7. mac/wireless-phy.h: change enum ChannelStatus {IDLE, RECV, SEND}; to enum ChannelStatus {IDLE, RECVING, SENDING}; mac/wireless-phy.cc: replace all occurences of RECV and SEND (by RECVING and SENDING). After successfully doing ./configure successfully doing Make Clean successfully doing Make Depend I Run 'Make' and I get the error mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECVING' make: *** If I replace the RECVING with RECV I get the similar error: mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECV' make: *** There are no solutions to this on the web Here is the sendDown method WirelessPhy::sendDown(Packet *p) { /* * Sanity Check */ assert(initialized()); if (em()) { //node is off here... if (Is_node_on() != true ) { Packet::free(p); return; } if(Is_node_on() == true Is_sleeping() == true){ em()- DecrSleepEnergy(NOW-update_energy_time_, P_sleep_); update_energy_time_ = NOW; } } /* * Decrease node's energy */ if(em()) { if (em()-energy() 0) { double txtime = hdr_cmn::access(p)-txtime(); double start_time = MAX(channel_idle_time_, NOW); double end_time = MAX(channel_idle_time_, NOW+txtime); double actual_txtime = end_time-start_time; if (start_time update_energy_time_) { em()-DecrIdleEnergy(start_time - update_energy_time_, P_idle_); update_energy_time_ = start_time; } /* It turns out that MAC sends packet even though, it's receiving some packets. if (txtime-actual_txtime 0.01) { fprintf(stderr,Something may be wrong at MAC\n); fprintf(stderr,act_tx = %lf, tx = %lf\n, actual_txtime, txtime); } */ // Sanity check double temp = MAX(NOW,last_send_time_); /* if (NOW last_send_time_) { fprintf(stderr,Ar !! Overlapping transmission. NOW %lf last %lf temp %lf\n, NOW, last_send_time_, temp); } */ double begin_adjust_time = MIN(channel_idle_time_, temp); double finish_adjust_time = MIN(channel_idle_time_, NOW+txtime); double gap_adjust_time = finish_adjust_time - begin_adjust_time; if (gap_adjust_time 0.0) { fprintf(stderr,What the heck ! negative gap time.\n); } if ((gap_adjust_time 0.0) (status_ == RECV)) { em()-DecrTxEnergy(gap_adjust_time, Pt_consume_-Pr_consume_); } em()-DecrTxEnergy(actual_txtime,Pt_consume_); // if (end_time channel_idle_time_) { // status_ = SENDING; // } // status_ = IDLE; last_send_time_ = NOW+txtime; channel_idle_time_ = end_time; update_energy_time_ = end_time; if (em()-energy() = 0) { em()-setenergy(0); ((MobileNode*)node())-log_energy(0); } } else { // log node energy if (em()-energy() 0) { ((MobileNode *)node_)-log_energy(1); } // Packet::free(p); return; } } /* * Stamp the packet with the interface arguments */ p-txinfo_.stamp((MobileNode*)node(), ant_-copy(), Pt_, lambda_); // Send the packet channel_-RECV(p, this); } Sincere Thanks and Regards, Michael, university DCU. Dublin On 6/12/07, H i l A l [EMAIL PROTECTED] wrote: hi there, i'm using this patch, and when i installed it i just followed the 10 indicated steps and it worked properly. The first time i tried to do this i got some problems and it didn't work, but it was something that i missed... as for me, i'm not using ns-2.30, it's ns-allinone-2.28 that i'm using. my problems were after i implemented an admission control algorithm, i couldn't include any header file to the application(including the header files i've never changed), donnow why, i tried to avoid the problem...until now i'm in a deep shit... hope it will work for u 2 ... good luck *Sim Tec [EMAIL PROTECTED]* wrote: Sincerely thanks for the responce Sven. I still have the same error. I set up the tcl/lan/ns-mac.tcl as follows: if [TclObject is-class Mac/802_11e] { Mac/802_11e set delay_ 64us Mac/802_11e set ifs_ 16us Mac/802_11e set slotTime_ 16us Mac/802_11e set cwmin_ 16 Mac/802_11e set cwmax_ 1024 Mac/802_11e set rtxLimit_ 16 Mac/802_11e set bssId_ -1 Mac/802_11e set sifs_ 8us Mac/802_11e set pifs_ 12us Mac/802_11e set difs_ 16us Mac/802_11e set rtxAckLimit_ 1 Mac/802_11e set rtxRtsLimit_ 3 Mac/802_11e set basicRate_ 1Mb ;# set this to 0 if want to use bandwidth_ for Mac/802_11e set dataRate_ 1Mb ;# both control and data pkts Mac/802_11e set cfb_ 0 ;# disables CFB }
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Slight change from previous email! Hi again and thanks, I now have a clearer picture of the problem. But PLease can I have your advice, I really need to get this working . I've followed the steps very closely, and have narrowed down the location of problem to instruction 7. mac/wireless-phy.h: change enum ChannelStatus {IDLE, RECV, SEND}; to enum ChannelStatus {IDLE, RECVING, SENDING}; mac/wireless-phy.cc: replace all occurences of RECV and SEND (by RECVING and SENDING). After successfully doing ./configure successfully doing Make Clean successfully doing Make Depend I Run 'Make' and I get the error mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECVING' make: *** [mac/wireless-phy.o] Error 1 If I replace the RECVING with RECV I get the similar error: mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECV' make: *** [mac/wireless-phy.o] Error 1 There are no solutions to this on the web Here is the sendDown method WirelessPhy::sendDown(Packet *p) { /* * Sanity Check */ assert(initialized()); if (em()) { //node is off here... if (Is_node_on() != true ) { Packet::free(p); return; } if(Is_node_on() == true Is_sleeping() == true){ em()- DecrSleepEnergy(NOW-update_energy_time_, P_sleep_); update_energy_time_ = NOW; } } /* * Decrease node's energy */ if(em()) { if (em()-energy() 0) { double txtime = hdr_cmn::access(p)-txtime(); double start_time = MAX(channel_idle_time_, NOW); double end_time = MAX(channel_idle_time_, NOW+txtime); double actual_txtime = end_time-start_time; if (start_time update_energy_time_) { em()-DecrIdleEnergy(start_time - update_energy_time_, P_idle_); update_energy_time_ = start_time; } /* It turns out that MAC sends packet even though, it's receiving some packets. if (txtime-actual_txtime 0.01) { fprintf(stderr,Something may be wrong at MAC\n); fprintf(stderr,act_tx = %lf, tx = %lf\n, actual_txtime, txtime); } */ // Sanity check double temp = MAX(NOW,last_send_time_); /* if (NOW last_send_time_) { fprintf(stderr,Ar !! Overlapping transmission. NOW %lf last %lf temp %lf\n, NOW, last_send_time_, temp); } */ double begin_adjust_time = MIN(channel_idle_time_, temp); double finish_adjust_time = MIN(channel_idle_time_, NOW+txtime); double gap_adjust_time = finish_adjust_time - begin_adjust_time; if (gap_adjust_time 0.0) { fprintf(stderr,What the heck ! negative gap time.\n); } if ((gap_adjust_time 0.0) (status_ == RECV)) { em()-DecrTxEnergy(gap_adjust_time, Pt_consume_-Pr_consume_); } em()-DecrTxEnergy(actual_txtime,Pt_consume_); // if (end_time channel_idle_time_) { // status_ = SENDING; // } // status_ = IDLE; last_send_time_ = NOW+txtime; channel_idle_time_ = end_time; update_energy_time_ = end_time; if (em()-energy() = 0) { em()-setenergy(0); ((MobileNode*)node())-log_energy(0); } } else { // log node energy if (em()-energy() 0) { ((MobileNode *)node_)-log_energy(1); } // Packet::free(p); return; } } /* * Stamp the packet with the interface arguments */ p-txinfo_.stamp((MobileNode*)node(), ant_-copy(), Pt_, lambda_); // Send the packet channel_-RECV(p, this); } Sincere Thanks and Regards, Michael, university DCU. Dublin On 6/12/07, Sim Tec [EMAIL PROTECTED] wrote: Hi again and thanks, I now have a clearer picture of the problem. PLease can I have your advice, I really need to get this working I've followed the steps very closely, and have narrowed down the location of problem to instruction 7. mac/wireless-phy.h: change enum ChannelStatus {IDLE, RECV, SEND}; to enum ChannelStatus {IDLE, RECVING, SENDING}; mac/wireless-phy.cc: replace all occurences of RECV and SEND (by RECVING and SENDING). After successfully doing ./configure successfully doing Make Clean successfully doing Make Depend I Run 'Make' and I get the error mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECVING' make: *** If I replace the RECVING with RECV I get the similar error: mac/wireless-phy.cc: In wireless function 'virtual void WirelessPhy::sendDown(Packet*)': mac/wireless-phy.cc:302: error: 'class Channel' has no member named 'RECV' make: *** There are no solutions to this on the web Here is the sendDown method WirelessPhy::sendDown(Packet *p) { /* * Sanity Check */ assert(initialized()); if (em()) { //node is off
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Thanks, Matthias, yep the methods problem was that it was case sensitive and i had forgotten that I changed it. I admit that it was stupid of me not to realise this. Are you based in the Berlin TKN? Do you mind me using your package? :) Im having problems that seem to be because of my version 2.30. In 2004 december, Pepe Barbe had the same problem I currently have *Despoina Triantafyllidou* replied that the problem was due to the version the 802.11e patch is for ns-2.26. under ns-2.27 may cause these problems... As I am 2.30, why am i having similar problems? Here is the error I receive after running make: #warning This file includes at least one deprecated or antiquated header. Please consid er using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples i nclude substituting the X header for the X.h header for C++ includes, or iostream instead of the deprecated header iostream.h. To disable this warning use -Wno-deprecat ed. In file included from mac/802_11e/mac-802_11e.h:10, from mac/802_11e/mac-802_11e.cc:14: mac/802_11e/priq.h:12:1: warning: MAX redefined In file included from ./common/mobilenode.h:63, from mac/802_11e/mac-802_11e.cc:7: ./mobile/gridkeeper.h:17:1: warning: this is the location of the previous definition mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::transmit(Packet*, doubl e)': mac/802_11e/mac-802_11e.cc:72: error: `ETHER_HDR_LEN11' undeclared (first use this funct ion) mac/802_11e/mac-802_11e.cc:72: error: (Each undeclared identifier is reported only once for each function it appears in.) mac/802_11e/mac-802_11e.cc: At global scope: mac/802_11e/mac-802_11e.cc:112: error: `EDCF_MMIB' must be initialized by constructor, n ot by `{...}' mac/802_11e/mac-802_11e.cc: In constructor `Mac802_11e::Mac802_11e(EDCF_PHY_MIB*, MAC_MI B*)': mac/802_11e/mac-802_11e.cc:182: error: `ETHER_ACK_LEN' undeclared (first use this functi on) mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::command(int, con st char* const*)': ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:240: error: within this context ./mac/mac-802_11.h:203: error: `u_int32_t MAC_MIB::ShortRetryLimit' is private mac/802_11e/mac-802_11e.cc:247: error: within this context mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::trace_pkt(Packet*)': mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:272: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::hdr_dst(char*, i nt)': mac/802_11e/mac-802_11e.cc:312: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:312: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:312: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:312: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:314: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:314: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:314: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc:314: error: 'struct hdr_mac802_11' has no member named 'dh_da ' mac/802_11e/mac-802_11e.cc: In member function `virtual int Mac802_11e::hdr_src(char*, i nt)': mac/802_11e/mac-802_11e.cc:322: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:322: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:322: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:322: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:323: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:323: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:323: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc:323: error: 'struct hdr_mac802_11' has no member named 'dh_sa ' mac/802_11e/mac-802_11e.cc: In member function `void Mac802_11e::discard(Packet*, const char*)': mac/802_11e/mac-802_11e.cc:392: error: 'struct hdr_mac802_11' has no member named 'dh_sa '
Re: [ns] 802.11e TKN, little error. i give a nice website in return
On Jun 11, 2007, at 8:05 AM, Sim Tec wrote: Hello I am simulating with 802.11e and would love to use TKN I have the exact same problem that many people have had, but there is no solution posted for it. Hi, the solution is always the same: Check your changes in the tcl files ;-) (see further below) -In return, here is the Best website for NS-2 that I have found on the Internet. It is a very recent website also. http://academic.csuohio.edu/yuc/mobile07/ i am trying to apply the 802.11e patch for EDCA from TKN Berlin named 'EDCA_ns-2_28-v1-0-1.tgz' on ns-2.30. i have followed all the steps given in the README, but in vein..i am getting error when i run the sample tcl script named edca_multi_udpflows.tcl provided in the package. I tried another wireless scripts using the command set val (mac) Mac/802_11e to get the following error --- invalid command name Mac/802_11e while executing Mac/802_11e create _o54 invoked from within catch $className create $o $args msg invoked from within if [catch $className create $o $args msg] { if [string match __FAILED_SHADOW_OBJECT_ $msg] { delete $o return } global errorInfo error class $... (procedure new line 3) invoked from within new $mactype (procedure _o44 line 10) (Node/MobileNode add-interface line 10) invoked from within $node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_ (procedure _o3 line 66) (Simulator create-wireless-node line 66) invoked from within _o3 create-wireless-node 1.0.0 (eval body line 1) invoked from within eval $self create-wireless-node $args (procedure _o3 line 14) (Simulator node line 14) invoked from within $ns node 1.0.0 invoked from within set BS(0) [$ns node 1.0.0] (file edca_multi_udpflows.tcl line 92) initially I thought that i might have made mistake in make the object file for mac-802_11e may not have been created, but when i checked the mac directory the object files corresponding to all the .cc scripts in the patch were present.. This relates to C++ stuff only. Tcl code is not compiled by make. Thus, a successful make is not an indication that the Tcl stuff is correct, too. what shall i do? Check all your tcl settings. I guess that step 6 of the readme has not been applied properly: 6. add to tcl/lan/ns-mac.tcl: if [TclObject is-class Mac/802_11e] { ... copy settings of MAC/802.11 (which are contained in this file) into this section and at an e at the end of the Mac/802_11 terms ... Mac/802_11e set cfb_ 0 ;# disables CFB } Best regards, Sven please someone help.. Can you please tell me how you overcame this, as I have the exact same problem. http://academic.csuohio.edu/yuc/mobile07/ Enjoy, and regards from Ireland.
Re: [ns] 802.11e TKN, little error. i give a nice website in return
Sincerely thanks for the responce Sven. I still have the same error. I set up the tcl/lan/ns-mac.tcl as follows: if [TclObject is-class Mac/802_11e] { Mac/802_11e set delay_ 64us Mac/802_11e set ifs_ 16us Mac/802_11e set slotTime_ 16us Mac/802_11e set cwmin_ 16 Mac/802_11e set cwmax_ 1024 Mac/802_11e set rtxLimit_ 16 Mac/802_11e set bssId_ -1 Mac/802_11e set sifs_ 8us Mac/802_11e set pifs_ 12us Mac/802_11e set difs_ 16us Mac/802_11e set rtxAckLimit_ 1 Mac/802_11e set rtxRtsLimit_ 3 Mac/802_11e set basicRate_ 1Mb ;# set this to 0 if want to use bandwidth_ for Mac/802_11e set dataRate_ 1Mb ;# both control and data pkts Mac/802_11e set cfb_ 0 ;# disables CFB } Should I follow these steps, step 7 seems to be very problematic 7. mac/wireless-phy.h: change enum ChannelStatus {IDLE, RECV, SEND}; to enum ChannelStatus {IDLE, RECVING, SENDING}; mac/wireless-phy.cc: replace all occurences of RECV and SEND (by RECVING and SENDING). 8. common/packet.h: add #define HDR_MAC802_11E(p) ((hdr_mac802_11e *)hdr_mac::access(p)) 9. run ./configure; make clean; make depend; make in your ns directory 10. happy simulating :o) (e.g with the example script ../ns-x/mac/802.11e/multi_udpflows.tcl) Sincere thanks and regards. On 6/11/07, Sven Wiethoelter [EMAIL PROTECTED] wrote: On Jun 11, 2007, at 8:05 AM, Sim Tec wrote: Hello I am simulating with 802.11e and would love to use TKN I have the exact same problem that many people have had, but there is no solution posted for it. Hi, the solution is always the same: Check your changes in the tcl files ;-) (see further below) -In return, here is the Best website for NS-2 that I have found on the Internet. It is a very recent website also. http://academic.csuohio.edu/yuc/mobile07/ i am trying to apply the 802.11e patch for EDCA from TKN Berlin named 'EDCA_ns-2_28-v1-0-1.tgz' on ns-2.30. i have followed all the steps given in the README, but in vein..i am getting error when i run the sample tcl script named edca_multi_udpflows.tcl provided in the package. I tried another wireless scripts using the command set val (mac) Mac/802_11e to get the following error --- invalid command name Mac/802_11e while executing Mac/802_11e create _o54 invoked from within catch $className create $o $args msg invoked from within if [catch $className create $o $args msg] { if [string match __FAILED_SHADOW_OBJECT_ $msg] { delete $o return } global errorInfo error class $... (procedure new line 3) invoked from within new $mactype (procedure _o44 line 10) (Node/MobileNode add-interface line 10) invoked from within $node add-interface $chan $propInstance_ $llType_ $macType_ $ifqType_ $ifqlen_ $phyType_ $antType_ $topoInstance_ $inerrProc_ $outerrProc_ $FECProc_ (procedure _o3 line 66) (Simulator create-wireless-node line 66) invoked from within _o3 create-wireless-node 1.0.0 (eval body line 1) invoked from within eval $self create-wireless-node $args (procedure _o3 line 14) (Simulator node line 14) invoked from within $ns node 1.0.0 invoked from within set BS(0) [$ns node 1.0.0] (file edca_multi_udpflows.tcl line 92) initially I thought that i might have made mistake in make the object file for mac-802_11e may not have been created, but when i checked the mac directory the object files corresponding to all the .cc scripts in the patch were present.. This relates to C++ stuff only. Tcl code is not compiled by make. Thus, a successful make is not an indication that the Tcl stuff is correct, too. what shall i do? Check all your tcl settings. I guess that step 6 of the readme has not been applied properly: 6. add to tcl/lan/ns-mac.tcl: if [TclObject is-class Mac/802_11e] { ... copy settings of MAC/802.11 (which are contained in this file) into this section and at an e at the end of the Mac/802_11 terms ... Mac/802_11e set cfb_ 0 ;# disables CFB } Best regards, Sven please someone help.. Can you please tell me how you overcame this, as I have the exact same problem. http://academic.csuohio.edu/yuc/mobile07/ Enjoy, and regards from Ireland.