Index: address.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/address.cc,v retrieving revision 1.14 diff -r1.14 address.cc 155c155,159 < sprintf(temp, "%d.", a); --- > if (i < levels_) > sprintf(temp, "%d.", a); > else > sprintf(temp, "%d", a); > 162a167,214 > > char *Address::get_subnetaddr(int address) > { > int a; > char temp[SMALL_LEN]; > char str[SMALL_LEN]; > char *addrstr; > > if (levels_ > 1) { > str[0] = '\0'; > for (int i=1; i < levels_; i++) { > a = address >> NodeShift_[i]; > a = a & NodeMask_[i]; > if (i < (levels_-1)) > sprintf(temp, "%d.", a); > else > sprintf(temp, "%d", a); > strcat(str, temp); > } > addrstr = new char[strlen(str)+1]; > strcpy(addrstr, str); > printf("Subnet_addr - %s\n",addrstr); > return(addrstr); > } > return NULL; > > } > > > int Address::get_nodeaddr(int address) > { > int a; > char *temp; > > temp = print_nodeaddr(address); > a = str2addr(temp); > delete temp; > return a; > } > > > int Address::get_lastaddr(int address) > { > int a; > a = address >> NodeShift_[levels_]; > a = a & NodeMask_[levels_]; > return a; > } Index: address.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/address.h,v retrieving revision 1.8 diff -r1.8 address.h 49c49,57 < int str2addr(const char *str) const; --- > char *get_subnetaddr(int address); > int get_lastaddr(int address); > int get_nodeaddr(int address); > int str2addr(const char *str) const; > > inline int portshift() {return PortShift_;} > inline int portmask() {return PortMask_;} > inline int nodeshift() {return NodeShift_[levels_];} > inline int nodemask() {return NodeMask_[levels_];} Index: arp.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/arp.cc,v retrieving revision 1.4 diff -r1.4 arp.cc 56c56 < --- > #include 102c102 < --- > off_mac_ = hdr_mac::offset_; 104c104 < bind("off_mac_", &off_mac_); --- > //bind("off_mac_", &off_mac_); 133c133 < fprintf(stderr, "%d - %s\n", node_->index(), __FUNCTION__); --- > fprintf(stderr, "%d - %s\n", node_->address(), __FUNCTION__); 198c198 < int src = node_->index(); // this host's IP addr --- > int src = node_->address(); // this host's IP addr 266c266 < node_->index(), __FUNCTION__, ah->arp_op, --- > node_->address(), __FUNCTION__, ah->arp_op, 289a290,293 > // XXXHACK for now: > // Future work: separate port-id from IP address ?? > int dst = Address::instance().get_nodeaddr(ih->dst()); > 291c295 < ih->dst() == ah->arp_spa) || --- > dst == ah->arp_spa) || 308c312 < ah->arp_tpa == node_->index()) { --- > ah->arp_tpa == node_->address()) { 315a320 > ch->direction_ = -1; // send this pkt down Index: channel.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/channel.cc,v retrieving revision 1.27 diff -r1.27 channel.cc 55a56,59 > #include "ip.h" > #include "dsr/hdr_sr.h" > > 153c157,159 < --- > struct hdr_sr *srh = HDR_SR(p); > struct hdr_ip *iph = HDR_IP(p); > 166a173,175 > hdr_sr *newsrh = HDR_SR(newp); > hdr_ip *newiph = HDR_IP(newp); > 222c231 < tmnode->index(), rmnode->index(), s.clock()); --- > tmnode->address(), rmnode->address(), s.clock()); Index: cmu-trace.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/cmu-trace.cc,v retrieving revision 1.6 diff -r1.6 cmu-trace.cc 85,86c85,86 < < bind("off_mac_", &off_mac_); --- > off_mac_ = hdr_mac::offset_; > //bind("off_mac_", &off_mac_); Index: god.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/god.cc,v retrieving revision 1.3 diff -r1.3 god.cc 144,145c144,145 < assert(i > 0 && i < num_nodes); < assert(j > 0 && j < num_nodes); --- > assert(i >= 0 && i < num_nodes); > assert(j >= 0 && j < num_nodes); Index: ll.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/ll.cc,v retrieving revision 1.35 diff -r1.35 ll.cc 45a46 > #include 137a139,140 > //struct hdr_sr *hsr = HDR_SR(p); > 146c149,150 < if(mac_->hdr_type(mh) == ETHERTYPE_ARP) --- > //if(mac_->hdr_type(mh) == ETHERTYPE_ARP) > if(ch->ptype_ == PT_ARP) 162c166,168 < nsaddr_t dst = ih->dst(); --- > // XXX HACK for now - Padma, 03/99. > nsaddr_t dst = (nsaddr_t)Address::instance().get_nodeaddr(ih->dst()); > //nsaddr_t dst = ih->dst(); Index: mac-802_11.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mac-802_11.cc,v retrieving revision 1.26 diff -r1.26 mac-802_11.cc 52,54d51 < /* ====================================================================== < Macros < ====================================================================== */ 73,74c70,73 < assert(HDR_MAC802_11(p)->dh_fc.fc_type == MAC_Type_Control); \ < assert(HDR_MAC802_11(p)->dh_fc.fc_subtype == MAC_Subtype_ACK);\ --- > struct hdr_mac802_11 *dh = HDR_MAC802_11(p); \ > \ > assert(dh->dh_fc.fc_type == MAC_Type_Control); \ > assert(dh->dh_fc.fc_subtype == MAC_Subtype_ACK); \ 90c89 < downtarget_->recv(p, this); \ --- > downtarget_->recv(p->copy(), this); \ 111a111,112 > > 525a527,531 > //if (mhBackoff_.busy() != 0) > //{ > // printf("deferHandler:mhBackoff_ busy!\n"); > // return; > //} 631c637 < --- > 661c667 < fprintf(stderr, "Invalid MAC Control subtype\n"); --- > fprintf(stderr, "check_pktCTRL:Invalid MAC Control subtype\n"); 674a681,682 > > 680a689 > //struct hdr_cmn *ch = HDR_CMN(pktRTS_); 698c707 < fprintf(stderr, "Invalid MAC Control subtype\n"); --- > fprintf(stderr, "check_pktRTS:Invalid MAC Control subtype\n"); 713c722 < --- > 720c729 < //int len = HDR_CMN(pktTx_)->size(); --- > int len = HDR_CMN(pktTx_)->size(); 737c746,747 < timeout = ACKTimeout(netif_->txtime(pktTx_)); --- > //timeout = ACKTimeout(netif_->txtime(pktTx_))+5; > timeout = ACKTimeout(len) + 10; 744c754,756 < fprintf(stderr, "Invalid MAC Control subtype\n"); --- > fprintf(stderr, "check_pktTx:Invalid MAC Control subtype\n"); > //printf("pktRTS:%x, pktCTS/ACK:%x, pktTx:%x\n",pktRTS_, pktCTRL_,pktTx_); > 763a776 > //struct hdr_mac802_11 *mh = HDR_MAC802_11(p); 786c799 < ch->direction() = -1; --- > //ch->direction() = -1; 791,800c804,824 < rf->rf_fc.fc_type = MAC_Type_Control; < rf->rf_fc.fc_subtype = MAC_Subtype_RTS; < rf->rf_fc.fc_to_ds = 0; < rf->rf_fc.fc_from_ds = 0; < rf->rf_fc.fc_more_frag = 0; < rf->rf_fc.fc_retry = 0; < rf->rf_fc.fc_pwr_mgt = 0; < rf->rf_fc.fc_more_data = 0; < rf->rf_fc.fc_wep = 0; < rf->rf_fc.fc_order = 0; --- > rf->rf_fc.fc_type = MAC_Type_Control; > rf->rf_fc.fc_subtype = MAC_Subtype_RTS; > rf->rf_fc.fc_to_ds = 0; > rf->rf_fc.fc_from_ds = 0; > rf->rf_fc.fc_more_frag = 0; > rf->rf_fc.fc_retry = 0; > rf->rf_fc.fc_pwr_mgt = 0; > rf->rf_fc.fc_more_data = 0; > rf->rf_fc.fc_wep = 0; > rf->rf_fc.fc_order = 0; > // mh->dh_fc.fc_protocol_version = MAC_ProtocolVersion; > // mh->dh_fc.fc_type = MAC_Type_Control; > // mh->dh_fc.fc_subtype = MAC_Subtype_RTS; > // mh->dh_fc.fc_to_ds = 0; > // mh->dh_fc.fc_from_ds = 0; > // mh->dh_fc.fc_more_frag = 0; > // mh->dh_fc.fc_retry = 0; > // mh->dh_fc.fc_pwr_mgt = 0; > // mh->dh_fc.fc_more_data = 0; > // mh->dh_fc.fc_wep = 0; > // mh->dh_fc.fc_order = 0; 820a845 > //struct hdr_mac802_11 *mh = HDR_MAC802_11(p); 829c854 < ch->direction() = -1; --- > //ch->direction() = -1; 835,842c860,868 < cf->cf_fc.fc_to_ds = 0; < cf->cf_fc.fc_from_ds = 0; < cf->cf_fc.fc_more_frag = 0; < cf->cf_fc.fc_retry = 0; < cf->cf_fc.fc_pwr_mgt = 0; < cf->cf_fc.fc_more_data = 0; < cf->cf_fc.fc_wep = 0; < cf->cf_fc.fc_order = 0; --- > cf->cf_fc.fc_to_ds = 0; > cf->cf_fc.fc_from_ds = 0; > cf->cf_fc.fc_more_frag = 0; > cf->cf_fc.fc_retry = 0; > cf->cf_fc.fc_pwr_mgt = 0; > cf->cf_fc.fc_more_data = 0; > cf->cf_fc.fc_wep = 0; > cf->cf_fc.fc_order = 0; > 846a873 > //STORE4BYTE(&dst, (mh->dh_da)); 851a879 > 859a888 > //struct hdr_mac802_11 *mh = HDR_MAC802_11(p); 868c897 < ch->direction() = -1; --- > //ch->direction() = -1; 873,882c902,911 < af->af_fc.fc_type = MAC_Type_Control; < af->af_fc.fc_subtype = MAC_Subtype_ACK; < af->af_fc.fc_to_ds = 0; < af->af_fc.fc_from_ds = 0; < af->af_fc.fc_more_frag = 0; < af->af_fc.fc_retry = 0; < af->af_fc.fc_pwr_mgt = 0; < af->af_fc.fc_more_data = 0; < af->af_fc.fc_wep = 0; < af->af_fc.fc_order = 0; --- > af->af_fc.fc_type = MAC_Type_Control; > af->af_fc.fc_subtype = MAC_Subtype_ACK; > af->af_fc.fc_to_ds = 0; > af->af_fc.fc_from_ds = 0; > af->af_fc.fc_more_frag = 0; > af->af_fc.fc_retry = 0; > af->af_fc.fc_pwr_mgt = 0; > af->af_fc.fc_more_data = 0; > af->af_fc.fc_wep = 0; > af->af_fc.fc_order = 0; 907a937,938 > //printf(".....p = %x, mac-subtype-%d\n",p,dh->dh_fc.fc_subtype); > 922a954 > 931a964 > 959c992 < --- > //printf("(%d)....discarding RTS:%x\n",index_,pktRTS_); 965a999 > //printf("(%d)...retxing RTS:%x\n",index_,pktRTS_); 967,968c1001,1002 < < rf = (struct rts_frame*)pktRTS_->access(off_mac_); --- > > rf = (struct rts_frame*)pktRTS_->access(hdr_mac::offset_); 979a1014 > 1036c1071 < --- > //printf("(%d)DATA discarded: count exceeded\n",index_); 1046a1082 > //printf("(%d)retxing data:%x..sendRTS..\n",index_,pktTx_); 1099c1135,1137 < --- > //hdr_mac802_11 *mh = HDR_MAC802_11(p); > //u_int32_t dst = ETHER_ADDR(mh->dh_da); > //u_int32_t src = ETHER_ADDR(mh->dh_sa); 1169a1208,1211 > // XXX debug > //struct cts_frame *cf = (struct cts_frame*)pktRx_->access(hdr_mac::offset_); > //u_int32_t src = ETHER_ADDR(mh->dh_sa); > 1215c1257 < /* tap out */ --- > /* tap out - */ 1217c1259,1260 < MAC_Subtype_Data == subtype) tap_->tap(pktRx_); --- > MAC_Subtype_Data == subtype ) > tap_->tap(pktRx_); 1255c1298 < fprintf(stderr, "Invalid MAC Control Subtype %x\n", --- > fprintf(stderr,"recvTimer1:Invalid MAC Control Subtype %x\n", 1270c1313 < fprintf(stderr, "Invalid MAC Data Subtype %x\n", --- > fprintf(stderr, "recv_timer2:Invalid MAC Data Subtype %x\n", 1277c1320 < fprintf(stderr, "Invalid MAC Type %x\n", subtype); --- > fprintf(stderr, "recv_timer3:Invalid MAC Type %x\n", subtype); 1331c1374,1377 < --- > // debug > //struct hdr_mac802_11 *mh = HDR_MAC802_11(pktTx_); > //printf("(%d):recvCTS:pktTx_-%x,mac-subtype-%d & pktCTS_:%x\n",index_,pktTx_,mh->dh_fc.fc_subtype,p); > 1380a1427 > //printf("(%d): RECVING DATA!\n",index_); 1385a1433 > //printf("(%d)..discard DATA\n",index_); 1431a1480 > 1435,1436c1484,1485 < discard(p, DROP_MAC_INVALID_STATE); < return; --- > discard(p, DROP_MAC_INVALID_STATE); > return; 1438c1487 < --- > //printf("(%d)...................recving ACK:%x\n",index_,p); Index: mac-802_11.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mac-802_11.h,v retrieving revision 1.13 diff -r1.13 mac-802_11.h 41a42 > #include "marshall.h" Index: mac-timers.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mac-timers.cc,v retrieving revision 1.3 diff -r1.3 mac-timers.cc 74c74,75 < --- > if (busy_ != 0) > { printf("busy is not zero!");} Index: mac.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mac.cc,v retrieving revision 1.32 diff -r1.32 mac.cc 86c86 < static int MacIndex = 1; --- > static int MacIndex = 0; 91a92 > off_mac_ = hdr_mac::offset_; 93c94 < bind("off_mac_", &off_mac_); --- > //bind("off_mac_", &off_mac_); Index: mobilenode.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mobilenode.cc,v retrieving revision 1.5 diff -r1.5 mobilenode.cc 60c60 < static int MobileNodeIndex = 1; --- > //static int MobileNodeIndex = 0; 86c86 < node->index(), s.clock()); --- > node->address(), s.clock()); 98c98 < node->index_, __PRETTY_FUNCTION__); --- > node->address_, __PRETTY_FUNCTION__); 117c117 < index_ = MobileNodeIndex++; --- > // address_ = MobileNodeIndex++; 139c139 < Tcl& tcl = Tcl::instance(); --- > //Tcl& tcl = Tcl::instance(); 141,144c141,144 < if(strcmp(argv[1], "id") == 0) { < tcl.resultf("%d", index_); < return TCL_OK; < } --- > // if(strcmp(argv[1], "id") == 0) { > // tcl.resultf("%d", address_); > // return TCL_OK; > // } 153c153 < index_, __PRETTY_FUNCTION__); --- > address_, __PRETTY_FUNCTION__); 192c192 < index_, __FUNCTION__); --- > address_, __FUNCTION__); 212c212 < fprintf(stdout, "Index: %d\n", index_); --- > fprintf(stdout, "Index: %d\n", address_); 238c238 < index_, __PRETTY_FUNCTION__); --- > address_, __PRETTY_FUNCTION__); 255c255 < s.clock(), index_, X, Y, Z, destX, destY, speed); --- > s.clock(), address_, X, Y, Z, destX, destY, speed); 297c297 < fprintf(stderr, "Adjust position of node %d\n",index_); --- > fprintf(stderr, "Adjust position of node %d\n",address_); 332c332 < fprintf(stderr, "%d - %s: calling log_movement()\n", index_, __FUNCTION__); --- > fprintf(stderr, "%d - %s: calling log_movement()\n", address_, __FUNCTION__); 361c361 < index_, X, Y, Z, now); --- > address_, X, Y, Z, now); 394c394 < index_, __FUNCTION__); --- > address_, __FUNCTION__); Index: mobilenode.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/mobilenode.h,v retrieving revision 1.3 diff -r1.3 mobilenode.h 92c92 < inline int index() { return index_; } --- > //inline int index() { return index_; } 134c134 < int index_; // unique identifier --- > //int index_; // unique identifier Index: node.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/node.cc,v retrieving revision 1.6 diff -r1.6 node.cc 40a41 > #include 53c54 < Node::Node(void) --- > Node::Node(void) : address_(-1) 60a62,68 > if (argc == 2) { > Tcl& tcl = Tcl::instance(); > if(strcmp(argv[1], "address?") == 0) { > tcl.resultf("%d", address_); > return TCL_OK; > } > } 67a76,79 > return TCL_OK; > }else if (strcmp(argv[1], "addr") == 0) { > address_ = Address::instance().\ > str2addr(argv[2]); Index: node.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/node.h,v retrieving revision 1.5 diff -r1.5 node.h 59c59,61 < //apparently the subclasses cannot access private variable of the superclass --- > inline int address() { return address_;} > > protected: 61,62c63 < private: < //struct if_head ifhead_; --- > int address_; Index: packet.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/packet.h,v retrieving revision 1.59 diff -r1.59 packet.h 48c48 < --- > #include "dsr/hdr_sr.h" 58a59,60 > #define HDR_SR(p) ((struct hdr_sr*)(p)->access(hdr_sr::offset_)) > 195c197 < //void init(); // initialize pkts getting freed. --- > static void init(Packet*); // initialize pkt hdr 353c355 < bzero(p->bits_, hdrlen_); --- > //bzero(p->bits_, hdrlen_); 354a357 > init(p); 355a359,361 > (HDR_CMN(p))->direction() = -1; > /* setting all direction of pkts to be downward as default; > until channel changes it to +1 (upward) */ 380a387,392 > inline void Packet::init(Packet* p) > { > bzero(p->bits_, hdrlen_); > } > > 391a404 > init(p); 394d406 < //init(); Index: phy.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/phy.cc,v retrieving revision 1.5 diff -r1.5 phy.cc 45a46 > #include 100a102,103 > struct hdr_sr *hsr = HDR_SR(p); > Index: wireless-phy.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/wireless-phy.h,v retrieving revision 1.2 diff -r1.2 wireless-phy.h 82,83c82,83 < Modulation *modulation_; // Modulation Scheme < MobileNode* node_; --- > Modulation *modulation_; // Modulation Schem > MobileNode* node_; // Mobile Node to which interface is attached . Index: dsr/cache_stats.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/cache_stats.h,v retrieving revision 1.1 diff -r1.1 cache_stats.h 4c4 < #include --- > #include Index: dsr/dsragent.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/dsragent.cc,v retrieving revision 1.5 diff -r1.5 dsragent.cc 62a63 > #include 414c415 < if (strcasecmp(argv[1], "ip-addr") == 0) --- > if (strcasecmp(argv[1], "addr") == 0) 416c417,419 < net_id = ID(atoi(argv[2]), ::IP); --- > int temp; > temp = Address::instance().str2addr(argv[2]); > net_id = ID(temp, ::IP); 484,485c487,488 < p.dest = ID(iph->dst(),::IP); < p.src = ID(iph->src(),::IP); --- > p.dest = ID((Address::instance().get_nodeaddr(iph->dst())),::IP); > p.src = ID((Address::instance().get_nodeaddr(iph->src())),::IP); 489c492 < if (!srh->valid()) --- > if (srh->valid() != 1) 500,504c503,509 < else if (p.dest == net_id || p.dest == IP_broadcast) < { // this packet is intended for us < handlePacketReceipt(p); < goto done; < } --- > else if (srh->valid() == 1) > { > if (p.dest == net_id || p.dest == IP_broadcast) > { // this packet is intended for us > handlePacketReceipt(p); > goto done; > } 521,522c526,532 < < --- > } > else { > // some invalid pkt has reached here > fprintf(stderr,"dsragent: Error-received Invalid pkt!\n"); > Packet::free(p.pkt); > p.pkt =0; // drop silently > } 574c584,585 < --- > hdr_ip *iph = HDR_IP(p.pkt); > 605a617,621 > // set pkt address format as the dmux expects > int mask = Address::instance().portmask(); > int shift = Address::instance().portshift(); > iph->dst() = ((iph->dport() & mask) << shift) | ((~(mask) << shift) & \ > iph->dst()); 655,656c671,673 < hdr_sr *srh = (hdr_sr*)p.pkt->access(off_sr_); < assert (srh->route_request()); --- > > hdr_sr *srh = (hdr_sr*)p.pkt->access(off_sr_); > assert (srh->route_request()); 833c850 < iph->src() = p.src.addr; --- > iph->src() = p.src.addr << Address::instance().nodeshift(); 835c852 < iph->dst() = p.dest.addr; --- > iph->dst() = p.dest.addr << Address::instance().nodeshift(); 895c912,914 < --- > // set direction of pkt to -1 , i.e downward > cmnh->direction_ = -1; > 916c935 < assert(cmnh->direction() == -1); --- > //assert(cmnh->direction() == -1); 967c986 < iph->dst() = p.dest.getNSAddr_t(); --- > iph->dst() = (p.dest.getNSAddr_t()) << Address::instance().nodeshift(); 969c988 < iph->src() = net_id.getNSAddr_t(); --- > iph->src() = (net_id.getNSAddr_t()) << Address::instance().nodeshift(); 984c1003,1004 < iph->dst() = p.dest.getNSAddr_t(); --- > iph->dst() = (p.dest.getNSAddr_t()) << \ > Address::instance().nodeshift(); 986c1006,1007 < iph->src() = net_id.getNSAddr_t(); --- > iph->src() = (net_id.getNSAddr_t()) << \ > Address::instance().nodeshift(); 991c1012 < --- > 1083c1104 < new_iph->dst() = p_copy.dest.addr; --- > new_iph->dst() = (p_copy.dest.addr) << Address::instance().nodeshift(); 1085c1106 < new_iph->src() = p_copy.src.addr; --- > new_iph->src() = (p_copy.src.addr) << Address::instance().nodeshift(); 1273c1294 < new_iph->dst() = p_copy.dest.addr; --- > new_iph->dst() = (p_copy.dest.addr) << Address::instance().nodeshift(); 1275c1296 < new_iph->src() = p_copy.src.addr; --- > new_iph->src() = (p_copy.src.addr) << Address::instance().nodeshift(); 1295c1316 < if (!srh->valid()) return; // can't do anything with it --- > if (srh->valid() != 1) return; // can't do anything with it 1303,1304c1324,1325 < p.dest = ID(iph->dst(),::IP); < p.src = ID(iph->src(),::IP); --- > p.dest = ID((Address::instance().get_nodeaddr(iph->dst())),::IP); > p.src = ID((Address::instance().get_nodeaddr(iph->src())),::IP); 1451c1472 < new_iph->dst() = p_copy.dest.addr; --- > new_iph->dst() = (p_copy.dest.addr) << Address::instance().nodeshift(); 1453c1474 < new_iph->src() = p_copy.src.addr; --- > new_iph->src() = (p_copy.src.addr) << Address::instance().nodeshift(); 1528,1529c1549,1550 < p.dest = ID(iph->dst(),::IP); < p.src = ID(iph->src(),::IP); --- > p.dest = ID((Address::instance().get_nodeaddr(iph->dst())),::IP); > p.src = ID((Address::instance().get_nodeaddr(iph->src())),::IP); 1536c1557 < if (ID(iph->src(),::IP) == net_id) --- > if (p.src == net_id) 1762c1783 < iph->dst() = deadlink->tell_addr; --- > iph->dst() = (deadlink->tell_addr) << Address::instance().nodeshift(); 1764c1785 < iph->src() = net_id.addr; --- > iph->src() = (net_id.addr) << Address::instance().nodeshift(); Index: dsr/mobicache.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/mobicache.cc,v retrieving revision 1.2 diff -r1.2 mobicache.cc 53c53 < #include --- > #include Index: dsr/path.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/path.cc,v retrieving revision 1.3 diff -r1.3 path.cc 142c142 < if (!srh->valid_) --- > if (srh->valid_ != 1) 151a152,154 > // debug > if (len > MAX_SR_LEN) { > printf("len - %d, MAX_SR_LEN - %d\n",len, MAX_SR_LEN); 152a156 > } Index: dsr/path.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/path.h,v retrieving revision 1.3 diff -r1.3 path.h 113,131c113,136 < ~Path(); < < void fillSR(struct hdr_sr *srh); < < inline ID& next() {assert(cur_index < len); return path[cur_index++];} < inline void resetIterator() { cur_index = 0;} < inline void reset() {len = 0; cur_index = 0;} < < inline void setIterator(int i) {assert(i>=0 && i=0 && l<=MAX_SR_LEN); len = l;} < inline ID& operator[] (int n) const { < assert(n < len && n >= 0); < return path[n];} < void operator=(const Path& rhs); < bool operator==(const Path& rhs); < inline void appendToPath(const ID& id) { < assert(len < MAX_SR_LEN); < path[len++] = id;} < void appendPath(Path& p); --- > ~Path(); > > void fillSR(struct hdr_sr *srh); > > inline ID& next() {assert(cur_index < len); return path[cur_index++];} > inline void resetIterator() { cur_index = 0;} > inline void reset() {len = 0; cur_index = 0;} > > inline void setIterator(int i) {assert(i>=0 && i inline void setLength(int l) {assert(l>=0 && l<=MAX_SR_LEN); len = l;} > ID& operator[] (int n) const { > //debug > if (n >= len || n < 0) { > printf("..........n-%d,len-%d\n",n,len); > } > //assert(n < len && n >= 0); > return path[n]; > } > void operator=(const Path& rhs); > bool operator==(const Path& rhs); > inline void appendToPath(const ID& id) { > assert(len < MAX_SR_LEN); > path[len++] = id;} > void appendPath(Path& p); Index: dsr/routecache.h =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/dsr/routecache.h,v retrieving revision 1.2 diff -r1.2 routecache.h 58c58 < #include --- > #include Index: indep-utils/cmu-scen-gen/setdest/setdest.cc =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/indep-utils/cmu-scen-gen/setdest/setdest.cc,v retrieving revision 1.3 diff -r1.3 setdest.cc 180,181c180 < //NODES = atoi(optarg) + 1; < NODES = atoi(optarg) ; --- > NODES = atoi(optarg) + 1; 216c215 < NODES , PAUSE, MAXSPEED, MAXX, MAXY); --- > NODES - 1, PAUSE, MAXSPEED, MAXX, MAXY); 224c223 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 228c227 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 232c231 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 294,295c293,294 < //if(index == 0) < //return; --- > if(index == 0) > return; 325c324 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 563c562 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 580c579 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 593,594c592,593 < for(i = 0; i < NODES; i++) { < for(j = 0; j < NODES; j++) { --- > for(i = 1; i < NODES; i++) { > for(j = i; j < NODES; j++) { 611,613c610,612 < for(i = 0; i < NODES; i++) { < for(j = 0; j < NODES; j++) { < for(k = 0; k < NODES; k++) { --- > for(i = 1; i < NODES; i++) { > for(j = 1; j < NODES; j++) { > for(k = 1; k < NODES; k++) { 620,621c619,620 < for(i = 0; i < NODES; i++) < for(j = 0; j < NODES; j++) { --- > for(i = 1; i < NODES; i++) > for(j = 1; j < NODES; j++) { 637c636 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 680c679 < for(i = 0; i < NODES; i++) { --- > for(i = 1; i < NODES; i++) { 682c681 < for(j = 0; j < NODES; j++) --- > for(j = 1; j < NODES; j++) 699c698 < for(i = 0; i < NODES; i++) --- > for(i = 1; i < NODES; i++) Index: tcl/ex/wireless.tcl =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/tcl/ex/wireless.tcl,v retrieving revision 1.2 diff -r1.2 wireless.tcl 49,52c49,52 < set opt(x) 0 ;# X dimension of the topography < set opt(y) 0 ;# Y dimension of the topography < set opt(cp) "../mobility/scene/cbr-50-20-4-512" ;# connection pattern file < set opt(sc) "../mobility/scene/scen-670x670-50-600-20-2" ;# scenario file --- > set opt(x) 670 ;# X dimension of the topography > set opt(y) 670 ;# Y dimension of the topography > set opt(cp) "../mobility/scene/cbr-50-10-4-512" > set opt(sc) "../mobility/scene/scen-670X670-50-600-20-0" 57c57 < set opt(stop) 10.0 ;# simulation time --- > set opt(stop) 1000.0 ;# simulation time 59c59 < set opt(rp) dsdv ;# routing protocol script --- > set opt(rp) dsr ;# routing protocol script 165c165 < for {set i 1} {$i <= $opt(nn)} {incr i} { --- > for {set i 0} {$i < $opt(nn)} {incr i} { 245c245 < for {set i 1} {$i <= $opt(nn) } {incr i} { --- > for {set i 0} {$i < $opt(nn) } {incr i} { 249c249 < for {set i 1} {$i <= $opt(nn) } {incr i} { --- > for {set i 0} {$i < $opt(nn) } {incr i} { 271c271 < for {set i 1} {$i <= $opt(nn) } {incr i} { --- > for {set i 0} {$i < $opt(nn) } {incr i} { Index: tcl/mobility/dsr.tcl =================================================================== RCS file: /usr/src/mash/repository/vint/ns-2/tcl/mobility/dsr.tcl,v retrieving revision 1.4 diff -r1.4 dsr.tcl 91,92c91,95 < $dsr_agent_ ip-addr [$self id] < --- > # setup address (supports hier-address) for dsragent > $dsr_agent_ addr $address_ > # set up IP address > $self addr $address_ >