Re: [ns] need help with MTE and LEACH
Hi. Nguyen Lan I think you already solved this problem. But.. just short comment.. 1. In Application/MTE instproc send_now {}, change the following. [$self agent] set dst_ $mac_dst == [$self agent] set dst_addr_ $mac_dst 2. To prevent collisions around BS, change the following in file mte.tcl. set opt(ra_mte) 0.01 == set opt(ra_mte) 1.01 Thanks.. 2007/6/27 Nguyen Lan [EMAIL PROTECTED] Hello, Did anyone try with LEACH for ns2.27 from (http://www.internetworkflow.com/downloads/ns2leach/mit.tar.gz). I did installed it but now I got problem with MTE. If you did try with this, please drop some lines to me. Thank you. Nguyen
Re: [ns] MIP Handover and ARP in ns-2.28
Hello. This is some different story.. After I changed routing protocol from DSDV to AODV, I experienced zero handover time.. I hope this helps you.. 2006/5/23, altaf hussain [EMAIL PROTECTED]: Hi Users. I hope al of u would be OK. I have been working on Mobile IP v4 implemented in ns-2.28. There is a bug in the implementation of Mobile IP in ns2 and that have been reported by Michal in AUGUST 2005. The modifications indicated by Michal are infact confusing me. The function to get the current mobile node get_node_michu() is giving problems while compiling. I am posting the modificatins done by Michal. Can any one really give me a better and working modification in ns-2.28 Thanks Michal PS. Below there is ll:recv() function with my modifications. _/* This shall be added in arp.cc MobileNode* ARPTable::get_node_michu() { return node_; } */ void LL::recv(Packet* p, Handler* _/*h*/) { hdr_cmn *ch = HDR_CMN(p); hdr_arp *ah = HDR_ARP(p); hdr_mip *miph = hdr_mip::access(p); hdr_ip *ip_h = hdr_ip::access(p); //char *mh = (char*) HDR_MAC(p); //struct hdr_sr *hsr = HDR_SR(p); _/* * Sanity Check */ assert(initialized()); //if(p-incoming) { //p-incoming = 0; //} // X NOTE: use of incoming flag has been depracated; In order to track direction of pkt flow, direction_ in hdr_cmn is used instead. see packet.h for details. // If direction = UP, then pass it up the stack // Otherwise, set direction to DOWN and pass it down the stack if(ch-direction() == hdr_cmn::UP) { //if(mac_-hdr_type(mh) == ETHERTYPE_ARP) if(ch-ptype_ == PT_ARP){ if(ah-arp_spa == 4194305) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } if(ah-arp_spa == 4194304) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik2 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik2++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } if(ah-arp_spa == 8388608) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik3 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik3++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } arptable_-arpinput(p, this); //printf(arpinput %d\n, licznik); } else { if((miph-type_ == MIPT_REG_REQUEST) || (miph-type_ == MIPT_REG_REPLY) || (miph-type_ == MIPT_SOL)) //in FA { nsaddr_t src = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src, dst, this); //uptarget_ ? sendUp(p) : drop(p); //printf( src %d\n, src); //printf( dst %d\n, dst); //printf(uptarget_ MIPT_REG_REQUEST\n); } uptarget_ ? sendUp(p) : drop(p); //printf(uptarget_\n); } return; } if((miph-type_) == MIPT_REG_REQUEST) { //double local_time = Scheduler::instance().clock(); //printf( local_time MIPT_REG_REQUEST %.9f\n, local_time); // printf(MIPT_REG_REQUEST %d \n, arptable_-get_node_michu()-address()); nsaddr_t src_down = 4194305; //arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_down = miph-coa_;//miph-coa_; arptable_-arprequest(src_down, dst_down, this); } else if((miph-type_) == MIPT_ADS) { //double local_time = Scheduler::instance().clock(); //printf( local_time MIPT_REG_REQUEST %.9f\n, local_time); nsaddr_t src_down = 4194305; //arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_down = miph-coa_; arptable_-arprequest(src_down, dst_down, this); } _/* nsaddr_t src_down = 4194305; nsaddr_t dst_down = 8388608; arptable_-arprequest(src_down, dst_down, this); nsaddr_t src_down = 8388608; nsaddr_t dst_down = 4194305; arptable_-arprequest(src_down, dst_down, this); nsaddr_t src_down = 8388608; nsaddr_t dst_down = 4194304; arptable_-arprequest(src_down, dst_down, this); */ double local_time = Scheduler::instance().clock(); if(local_time 13) { printf( time %.9f node %d packet %s\n, local_time, arptable_-get_node_michu()-address(), packet_info.name(ch-ptype())); } ch-direction() = hdr_cmn::DOWN; sendDown(p); } - New Yahoo! Messenger with Voice. Call regular phones from your
Re: [ns] MIP - Too long handover time
Hello. This is some different story.. After I changed routing protocol from DSDV to AODV, I experienced zero handover time.. I hope this helps you.. 2005/9/27, Michal Lewandowski [EMAIL PROTECTED]: Hi all, I'm doing some experiments with Mobile IP and I think I found a serious problem. I'm using standard tcl file and I see that the time of handover is much to long. After investigations I found out that handover ends when packet message is called. I thing this is an ARP packet. When I set traffic to the Mobile Node I managed to solve this problem by calling arprequest() function by Foreign Agent every time MN tries to register. The problem is when traffic is up, I mean when MN is a source. I tried calling arprequest() in several combinations, but with no positive results. Does anybody know what is going on with this simulator (I'm using ns2-28). Why this problem occurs at all? And how to solve it? I think everyone working with Mobile IP is in the same situation. Or aybe this ARP problem is well known, maybe updating ARP table after registration request is not in the standard, it is not a part of basic SUN's MIP model? Thanks for help, Michal SIN CITY - Miasto Grzechu. Najnowszy film Rodrigueza i Tarantino w wypożyczalniach DVD i wideo! http://klik.wp.pl/?adr=www.film.wp.pl%2Ffilm.html%3Fid%3D24839%26h%3D1sid=516
Re: [ns] MIP - Too long handover time
I'm sorry... You can get zero handover time only when wired node sends udp traffic to wireless node.. 2007/4/27, Youngmin Kim [EMAIL PROTECTED]: Hello. This is some different story.. After I changed routing protocol from DSDV to AODV, I experienced zero handover time.. I hope this helps you.. 2005/9/27, Michal Lewandowski [EMAIL PROTECTED]: Hi all, I'm doing some experiments with Mobile IP and I think I found a serious problem. I'm using standard tcl file and I see that the time of handover is much to long. After investigations I found out that handover ends when packet message is called. I thing this is an ARP packet. When I set traffic to the Mobile Node I managed to solve this problem by calling arprequest() function by Foreign Agent every time MN tries to register. The problem is when traffic is up, I mean when MN is a source. I tried calling arprequest() in several combinations, but with no positive results. Does anybody know what is going on with this simulator (I'm using ns2-28). Why this problem occurs at all? And how to solve it? I think everyone working with Mobile IP is in the same situation. Or aybe this ARP problem is well known, maybe updating ARP table after registration request is not in the standard, it is not a part of basic SUN's MIP model? Thanks for help, Michal SIN CITY - Miasto Grzechu. Najnowszy film Rodrigueza i Tarantino w wypożyczalniach DVD i wideo! http://klik.wp.pl/?adr=www.film.wp.pl%2Ffilm.html%3Fid%3D24839%26h%3D1sid=516
Re: [ns] MIP Handover and ARP in ns-2.28
I'm sorry... You can get zero handover time only when wired node sends udp traffic to wireless node.. 2007/4/27, Youngmin Kim [EMAIL PROTECTED]: Hello. This is some different story.. After I changed routing protocol from DSDV to AODV, I experienced zero handover time.. I hope this helps you.. 2006/5/23, altaf hussain [EMAIL PROTECTED]: Hi Users. I hope al of u would be OK. I have been working on Mobile IP v4 implemented in ns-2.28. There is a bug in the implementation of Mobile IP in ns2 and that have been reported by Michal in AUGUST 2005. The modifications indicated by Michal are infact confusing me. The function to get the current mobile node get_node_michu() is giving problems while compiling. I am posting the modificatins done by Michal. Can any one really give me a better and working modification in ns-2.28 Thanks Michal PS. Below there is ll:recv() function with my modifications. _/* This shall be added in arp.cc MobileNode* ARPTable::get_node_michu() { return node_; } */ void LL::recv(Packet* p, Handler* _/*h*/) { hdr_cmn *ch = HDR_CMN(p); hdr_arp *ah = HDR_ARP(p); hdr_mip *miph = hdr_mip::access(p); hdr_ip *ip_h = hdr_ip::access(p); //char *mh = (char*) HDR_MAC(p); //struct hdr_sr *hsr = HDR_SR(p); _/* * Sanity Check */ assert(initialized()); //if(p-incoming) { //p-incoming = 0; //} // X NOTE: use of incoming flag has been depracated; In order to track direction of pkt flow, direction_ in hdr_cmn is used instead. see packet.h for details. // If direction = UP, then pass it up the stack // Otherwise, set direction to DOWN and pass it down the stack if(ch-direction() == hdr_cmn::UP) { //if(mac_-hdr_type(mh) == ETHERTYPE_ARP) if(ch-ptype_ == PT_ARP){ if(ah-arp_spa == 4194305) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } if(ah-arp_spa == 4194304) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik2 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik2++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } if(ah-arp_spa == 8388608) // I mean Mobile Node's IP here. Not very elegant way to do it { if(licznik3 10) { nsaddr_t src_arp = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_arp = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src_arp, dst_arp, this); licznik3++; //printf( src_arp %d\n, src_arp); //printf( dst_arp %d\n, dst_arp); //printf(arprequest %d\n, licznik); } } arptable_-arpinput(p, this); //printf(arpinput %d\n, licznik); } else { if((miph-type_ == MIPT_REG_REQUEST) || (miph-type_ == MIPT_REG_REPLY) || (miph-type_ == MIPT_SOL)) //in FA { nsaddr_t src = arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst = miph-ha_; //Home Address of Mobile Node arptable_-arprequest(src, dst, this); //uptarget_ ? sendUp(p) : drop(p); //printf( src %d\n, src); //printf( dst %d\n, dst); //printf(uptarget_ MIPT_REG_REQUEST\n); } uptarget_ ? sendUp(p) : drop(p); //printf(uptarget_\n); } return; } if((miph-type_) == MIPT_REG_REQUEST) { //double local_time = Scheduler::instance().clock(); //printf( local_time MIPT_REG_REQUEST %.9f\n, local_time); // printf(MIPT_REG_REQUEST %d \n, arptable_-get_node_michu()-address()); nsaddr_t src_down = 4194305; //arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_down = miph-coa_;//miph-coa_; arptable_-arprequest(src_down, dst_down, this); } else if((miph-type_) == MIPT_ADS) { //double local_time = Scheduler::instance().clock(); //printf( local_time MIPT_REG_REQUEST %.9f\n, local_time); nsaddr_t src_down = 4194305; //arptable_-get_node_michu()-address(); // this host's IP addr nsaddr_t dst_down = miph-coa_; arptable_-arprequest(src_down, dst_down, this); } _/* nsaddr_t src_down = 4194305; nsaddr_t dst_down = 8388608; arptable_-arprequest(src_down, dst_down, this); nsaddr_t src_down = 8388608; nsaddr_t dst_down = 4194305; arptable_-arprequest(src_down, dst_down, this); nsaddr_t src_down = 8388608; nsaddr_t dst_down = 4194304; arptable_-arprequest(src_down, dst_down, this); */ double local_time
[ns] Mobility test of mobile IPv6
Hello. I tested wireless3.tcl in the section X.2. of Marc Greis's tutorial. It works good!! Firstly, MH talks to W(0) through HA. As MH moves to its destination, it talks to W(0) through FA. And when it returns back original position MH talks to W(0) through HA again. It takes long time to hand over relatively (more than 10s), but it works.. Now I want to test a mobility of the Mobile IPv6. I use two tools. One is Mobiwan and the other is Mobility package for NS-2 from NIST. 1. Mobiwan for NS-2.27 (http://www.ti-wmc.nl/mobiwan2/) 2. Mobility package for NS-2 from NIST (http://w3.antd.nist.gov/seamlessandsecure/download.html) I modified wireless3.tcl of Marc Greis's tutorial. I attached them in this mail. 1. wireless3-mobiwan-ns-2.27.tcl 2. wireless3-nist-mih-ns-2.29.tcl Two files run well but the handover does not work!! In wireless3-mobiwan-ns-2.27.tcl, when MH is in the HA it talks to W(0) but after MH leaves HA it does not talk to W(0). wireless3-nist-mih-ns-2.29.tcl, when MH is in the HA it talks to W(0) but after MH leaves HA it does not talk to W(0). But when MH returns back to HA, it talks to W(0) again. What is the problem?