显示标签为“Hyacinth”的博文。显示所有博文
显示标签为“Hyacinth”的博文。显示所有博文

2008年7月5日星期六

Multi-Channel & Multi-Interface Extension in NS2 and NOAH routing - Hyacinth

I modified some codes to extend NS2 to supportMulti-channel Multi-interface for Wireless Mesh Networks.(key word: MCMR, Static Channel Assignment Mesh Neworks)My work is based on Hyacinth NS2 code and following tutorials:

1. NS2.Notebook: Multi-channel Multi-interface Simulation in NS2 (2.29)
2. A new one for hyacinth for NS-2.29
3. Extend NS2 to support multi-channel multi-interface for wireless networks

=================================================================
This work is divided into two partition.

First, we must add "interfaces" into MAC layer andChannel module and modify "arp.cc" to avoid errorupdating neighbor nodes' arp table.

Second, we must modify (or add) routing protocolto choose correct "interface" to send out packets.

In first partition, I followed the steps in"Multi-channel Multi-interface Extension" sectionin the first tutorial.

In second partition, I used the "manual routing"in the first tutorial at the beginning.

And then, I modify "NOAH" protocol to supportMulti-interface MAC by the steps of how to modify"AODV" protocol in the third tutorial .

The next document will show the following:
(i) the concept about extending Multi-interface in NS2 by the first tutorial;
(ii) my code of a modified "NOAH" protocol.


In the following,I will describe some concepts of the multi-interface extending in the first tutorial.

1. The point in tcl/lib/ns-lib.tcl

The modification of "create-wireless-node" is adding 5 (or more)interface in a wireless node.And we can easily find that a wireless node have 5 copies of MAC-layer (Figure1).



(Figure 1)
So, there are five LL, ARP, IFq, MAC and NetIF in a wireless node,and the range of their number is 0 to 4. (ex: ll_(0) ~ ll_(4), ifq_(0) ~ ifq_(4))

Also, we must know that each node has five node ID.(ex: id of node(0) is 0 to 4; id of node(5) is 25 to 29.)

2. tcl/lib/ns-mobilenode.tcl

Let the pkt path in "MAC Layer" (Figure 1) find the right interface.(especially down-link)

6. mac/mac-802_11.ccThe reason of "(dst/NUM_NICS) and (index_/NUM_NICS)"is that each node has five node id.
============================================================
By the way,if you want to disable ARP protocol in 5-interface node, just do like the following:
modify mac/arp.cc

intARPTable::arpresolve(nsaddr_t dst, Packet *p, LL *ll)
{ //disable ARP
hdr_cmn *ch = HDR_CMN(p);
mac_->hdr_dst((char*) HDR_MAC(p), 5*ch->next_hop());
return 0; ARPEntry *llinfo; assert(initialized());
.........
}

If ns2 you use is not multi-interface, you don't need multiply 5 and only "ch->next_hop()."
==========================================================
Finally, I have a modified NOAH routing protocol. (download)

All I do is following the steps of how to modify "AODV" protocolin the third tutorial.

Basically, I think "manual routing" is OK, but there is another choice which is"modified NOAH routing."

You can use it as the following:

set cmd "[$node_($i) set ragent_] routing $val(nn)"set cmd "$cmd $to $hop $NIC"

"$to" is the destination.
"$hop" is the next hop.
"$NIC" is the interface which you assign between this nodeto the next hop.(channel of this interface is assigned at "$ns_ node-config")


转自
http://blog.pixnet.net/zayrowz/post/9922095
源自
http://www.ecsl.cs.sunysb.edu/multichannel/
......

[Read More...]

2008年7月4日星期五

"Hyacinth"的Multi-Channel & Multi-Interface 方法 for ns2.29

This document is based on Hyacinth NS2 code and is inspired from the following tutorials:

1. Make "hyacinth" run on Debian NS-2.29.2
2. A new one for hyacinth for NS-2.29
3. Extend NS2 to support multi-channel multi-interface for wireless networks

The purpose of this document is to show how to make "Multi-channel Multi-interface" work in NS-2.29. All the code is from Hyacinth implementation and the above tutorials. Simulation results for validating the extension are also provided.

=============Table of Contents=============

Multi-channel Multi-interface Extension

1. Modifications in tcl/lib/ns-lib.tcl
2. Modifications in tcl/lib/ns-mobilenode.tcl
3. Modifications in mac/arp.cc
4. Modifications in mac/channel.h
5. Modifications in mac/channel.cc
6. Modifications in mac/mac-802_11.cc

Use Multi-channel Multi-interface -- Manual Routing Protocol (proposed in Hyacinth)

7. Modifications in tcl/lib/ns-lib.tcl
8. Modifications in tcl/lib/ns-mobilenode.tcl
9. Modifications in common/packet.h
10. Modifications in apps/udp.h
11. Modifications in apps/udp.cc
12. Modifications in tcp/tcp.h
13. Modifications in tcp/tcp.cc
14. Modifications in tcp/tcp-sink.h
15. Modifications in tcp/tcp-sink.cc
16. Manual routing protocol implmentation and NS2 configuration

Simuilation Results

17. Simulation results for validating the extension

转自

http://www.cse.msu.edu/~wangbo1/ns2/nshowto8.html

......

[Read More...]