Make "hyacinth" run on Debian NS-2.29.2
Friday, 31. March 2006, 03:28:25

Hyacinth: An IEEE 802.11-based Multi-channel Wireless Mesh Network is a project, which mainly covers multi-interface & multi-channel wireless mesh network. I have not read the papers that author publised, but I am interested in the extension mobule of NS2. I made it work on Debian-NS2.29.2-Box. And you can download all the files needed for building it in NS2.29.2.
Download: hyacinth-Debian-ns2.29.tar
First, you need to install ns2.29.2 successfully on your Debian box. (You can find it from the architecle publised severs days ago, on my blog).
Second, extract the tar ball, hyacinth-Debian-ns2.29.tar:
>$tar xf hyacinth-Debian-ns2.29.tar
Third, do as the following intructions:
>$cp hyacinth-Debian-ns2.29/udp.cc hyacinth-Debian-ns2.29/udp.h ~/ns-2.29/apps/
>$cp hyacinth-Debian-ns2.29/tcp.cc hyacinth-Debian-ns2.29/tcp.h hyacinth-Debian-ns2.29/tcp-sink.h hyacinth-Debian-ns2.29/tcp-sink.cc ~/ns-2.29/tcp/
>$cp hyacinth-Debian-ns2.29/packet.h ~/ns-2.29/common/
>$cp hyacinth-Debian-ns2.29/ns-lib.tcl hyacinth-Debian-ns2.29/ns-mobilenode.tcl ~/ns-2.29/tcl/lib
>$cp -r hyacinth-Debian-ns2.29/manual hyacinth-Debian-ns2.29/hyacinth ~/ns-2.29/
Fourth, modify the Makefile in ~/ns-2.29:
Add "manual/manual.o manual/fixedrtable.o manual/tagtable.o \" in the OBJ_CC part.
Add "manual/*.cc manual/*.h" in the "tag:" and "TAG:" parts.
Fithth,run "make clean;make;make install". It should be noted that "make clean" and "make install" will be a must, or ns will not work well.
Sixth, now you can run "ns multich-tag.tcl".
Acknowledgement: This work is based on geajy's effort, I also get some useful advice from melody.









xingflying # 26. April 2006, 03:42
首先,非常感谢您对Hyacingh的总结!
我按照你给出的步骤决无差错地做了一遍,结果在运行"ns multich-tag.tcl"时发现数据只能传输一跳,而且大部份的数据都在发送端已经丢失。不解其意,特想您请教,谢谢!
我的email:xingsparkling@hotmail.com
swt556 # 24. May 2006, 01:43
>>
我按照你给出的步骤决无差错地做了一遍,结果在运行"ns multich-tag.tcl"时发现数据只能传输一跳,而且大部份的数据都在发送端已经丢失。不解其意
i think the reason is that the hyacinth impl. is conflicting with the ARP impl. in NS. Particularly, the ARP mapping is only based on "dst" & "mac addr" pair. With certain configuration (channel assignment & routing), some ARP entries may be overwritten - causing some nodes couldn't send message to the neighbour, and thus, message lost!
and, i thought the original hyacinth (for ns2.1xx) will not work without modification with ns2.29, due to the list improvement implementation in the WirelessChannel? But seem you don't have to do any modification to channel.cc, so maybe I was wrong.
cheers,
sw.
kkrone # 13. September 2006, 15:34
請問不能在win xp底下安裝嗎?
謝謝
Morena81 # 9. October 2006, 14:32
At the end, it compiles without any error. When I use your tests (I tried "ns twoflows-1channel.tcl"),
it ends without error, but the result isn't what I expect because executing "nam twoflows.nam" and
click on play, it shows only the four nodes and do nothing for all the time of the simulation.
Moreover when I do "ns multich-tag.tcl" for testing with hyacint
(I take the files from http://my.opera.com/HenryFD/blog/show.dml/202861 and from http://www.ecsl.cs.sunysb.edu/multichannel/)
ns2 crashes with a "Segmentation fault" error when "Searching destination 3 tag 38"...
Have you an idea of what it can happened? I'm desperate!!!!!
Can you help me???
Please please please!!! :-)
Thanks for all
Alessandra
Annous # 12. October 2006, 08:59
I faced the same problem.
But to make sure it's really working;
I puted some "printf" messages into "manual.cc" or in "mac-802_11.cc" when the protocol sends packets like CTS or RTS (see "int Mac802_11::check_pktCTRL()")
and it works.
Regards;
Anis.
INA Lyon;
France.
Morena81 # 20. October 2006, 19:31
You have tried multich-tag.tcl of Hyacint? I have found the error with the debug but I haven't still understood like correcting it. Hyacint doesn't work(Segmentation fault). You can help me? thanks
Best Regards
Alessandra.
new_user # 7. December 2006, 09:50
how can extend ns-2.28 to support multi-channel.
with Windows XP under Cygwin.
I need this for my work in 802.11s (Mesh Networking)
thanks
axiomer # 21. March 2007, 03:49
After make install, it shows 'error' message like below.
for d in /usr/local/man/man1; do \
if [ ! -d $d ] ; then \
mkdir -p %d ; \
fi;\
done
/usr/bin/install -c -m 755 ns /usr/local/bin
/usr/bin/install: cannot create regular file '/usr/local/bin/ns': Permission denied
make: *** [install-ns] Error1
How can I deal with it?
Thank you in advance
E-mail: axiomerian@gmail.com
jinchuan # 22. March 2007, 14:57
I have succeeded all of the steps that hyacint requires.
I also can run multich-tag.tcl and twoflows-1channel.tcl.
However, after running the nam file , I found the packet can only
be transmmited on hoc and there is no manual routing. I can not figure out the commands "add-route-tag" and "add-next-hop"(what are the args' meaning). I tested many different agrs but the packets seems only to be transmitted one hoc. So I donnot know if you can show some muti-hoc examples to me. I would be very glad if you can help me. Thank you!
E-mail: M9415049@mail.ntust.edu.tw
JUI-CHEN # 9. April 2007, 10:32
carln # 17. September 2009, 16:43
carln # 17. September 2009, 17:57
thangnd123 # 11. November 2009, 03:29
I made hyacinth on Ns-2.29 and test with twoflows-2channel.tcl and run well. Now i have some nodes 0---->1---->(4)<---3<---2.There are 2 channels: 1-->2-->4 and 2--->3--->4. How to transfer a packet from 1 to 4 and 2 to 4. I tried
####################
# Add routing tag
$node_(0) add-route-tag 1 999
$node_(1) add-route-tag 4 88
$node_(2) add-route-tag 3 8
$node_(3) add-route-tag 4 99
#$ragent add-next-hop $dst $tag $hop $nic
# Add next hop
$node_(0) add-next-hop 1 999 1 2
$node_(1) add-next-hop 4 88 4 5
$node_(2) add-next-hop 3 8 3 3
$node_(3) add-next-hop 4 99 4 1
******--------------------*******
set null0 [new Agent/Null]
$ns_ attach-agent $node_(1) $null0
set cbr0 [attach-cbr-traffic $node_(0) $null0 500 0.005]
$ns_ at 0.001 "$cbr0 start"
$ns_ at 4.9 "$cbr0 stop"
set null1 [new Agent/Null]
$ns_ attach-agent $node_(3) $null1
set cbr1 [attach-cbr-traffic $node_(2) $null1 500 0.005]
$ns_ at 0.001 "$cbr1 start"
$ns_ at 4.9 "$cbr1 stop"
==> result is only packets transfer from 0 to 1, 2 to 3, packets can't reach to 4.
Please, please help me soon.
Thank you very much.
thangnd123 # 11. November 2009, 03:32
Originally posted by thangnd123:
My email:thangnd@joomservices.com
Thanks in advance.