Skip to content

FSO Ns-2 Extention – Will it really work as per your expectation?

If you are a researcher and doing research on Free Space Optical Network, and trying to do it using an ns2 simulator, you may see an FSO extension available for ns-2.  But, if you try to do your research seriously using that extension, then I think, probably you will be having trouble in patching ns2 with this FSO extension and making it work.

As a net result,  you may not able to make it run on any ns2 version.

After a little bit of effort, I managed to patch ns2.34 with the FSO extension. But facing some problems while running the example scripts.

 

Experiment 1:

While testing the installation with the given example single.tcl, there was an error.
The function get-power-for-xmit-range is not at all declared anywhere.

So, I used the function get-power-for-rf-xmit-range

If I simulate for 500 seconds, as follows :

$ns single.tcl 500
num_nodes is set 2
INITIALIZE THE LIST xListHead
Starting Simulation…
channel.cc:sendUp – Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 0.0, distCST_ = 0.0
SORTING LISTS …DONE!
60
120
180
240
300
360
420
480
NS EXITING…

then it is creating a trace file
trace_N2_T500_IF10.txt

 

s 0.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 0.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 0.500635000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 1 [1 0] [0 4]] (REQUEST)
s 1.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 1.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 1.500395000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 1 [0 0] [1 4]] (REQUEST)
s 2.500235000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 2 [1 0] [0 6]] (REQUEST)
E 3.5 0 1 TCP TIMEOUT 2 1 1
E 3.5 0 1 TCP SLOW_START 2 1 1
s 3.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 3.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 3.500315000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 2 [0 0] [1 6]] (REQUEST)
E 4.5 1 0 TCP TIMEOUT 2 1 1
E 4.5 1 0 TCP SLOW_START 2 1 1
s 4.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 4.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 6.500335000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 3 [1 0] [0 8]] (REQUEST)
s 7.500115000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 3 [0 0] [1 8]] (REQUEST)
E 9.5 0 1 TCP TIMEOUT 2 1 1
E 9.5 0 1 TCP SLOW_START 2 1 1
s 9.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 9.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
E 10.5 1 0 TCP TIMEOUT 2 1 1
E 10.5 1 0 TCP SLOW_START 2 1 1
s 10.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 10.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 12.000235000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 4 [1 0] [0 10]] (REQUEST)
s 13.000315000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 4 [0 0] [1 10]] (REQUEST)
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 21.5 0 1 TCP TIMEOUT 2 1 1
E 21.5 0 1 TCP SLOW_START 2 1 1
s 21.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 21.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
E 22.5 1 0 TCP TIMEOUT 2 1 1
E 22.5 1 0 TCP SLOW_START 2 1 1
s 22.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 22.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 29.500555000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 5 [1 0] [0 12]] (REQUEST)
s 30.500395000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 5 [0 0] [1 12]] (REQUEST)
s 31.500295000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 6 [1 0] [0 14]] (REQUEST)
s 32.500315000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 6 [0 0] [1 14]] (REQUEST)
s 35.500255000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 7 [1 0] [0 16]] (REQUEST)
s 36.500475000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 7 [0 0] [1 16]] (REQUEST)
s 41.000435000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 8 [1 0] [0 18]] (REQUEST)
s 42.000375000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 8 [0 0] [1 18]] (REQUEST)
E 45.5 0 1 TCP TIMEOUT 2 1 1
E 45.5 0 1 TCP SLOW_START 2 1 1
s 45.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 45.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
E 46.5 1 0 TCP TIMEOUT 2 1 1
E 46.5 1 0 TCP SLOW_START 2 1 1
s 46.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 46.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
D 48.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 48.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 49.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 49.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 93.5 0 1 TCP TIMEOUT 2 1 1
E 93.5 0 1 TCP SLOW_START 2 1 1
s 93.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 93.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 93.500215000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 9 [1 0] [0 20]] (REQUEST)
E 94.5 1 0 TCP TIMEOUT 2 1 1
E 94.5 1 0 TCP SLOW_START 2 1 1
s 94.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 94.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 94.500355000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 9 [0 0] [1 20]] (REQUEST)
s 95.500175000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 10 [1 0] [0 22]] (REQUEST)
s 96.500295000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 10 [0 0] [1 22]] (REQUEST)
s 99.500655000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 11 [1 0] [0 24]] (REQUEST)
s 100.500195000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 11 [0 0] [1 24]] (REQUEST)
s 105.000575000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 12 [1 0] [0 26]] (REQUEST)
s 106.000255000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 12 [0 0] [1 26]] (REQUEST)
D 112.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 113.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 153.5 0 1 TCP TIMEOUT 2 1 1
E 153.5 0 1 TCP SLOW_START 2 1 1
s 153.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 153.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 153.500555000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 13 [1 0] [0 28]] (REQUEST)
E 154.5 1 0 TCP TIMEOUT 2 1 1
E 154.5 1 0 TCP SLOW_START 2 1 1
s 154.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 154.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 154.500295000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 13 [0 0] [1 28]] (REQUEST)
s 155.500235000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 14 [1 0] [0 30]] (REQUEST)
s 156.500155000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 14 [0 0] [1 30]] (REQUEST)
s 159.500075000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 15 [1 0] [0 32]] (REQUEST)
s 160.500375000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 15 [0 0] [1 32]] (REQUEST)
s 165.000095000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 16 [1 0] [0 34]] (REQUEST)
s 166.000315000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 16 [0 0] [1 34]] (REQUEST)
D 172.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 173.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 213.5 0 1 TCP TIMEOUT 2 1 1
E 213.5 0 1 TCP SLOW_START 2 1 1
s 213.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 213.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 213.500375000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 17 [1 0] [0 36]] (REQUEST)
E 214.5 1 0 TCP TIMEOUT 2 1 1
E 214.5 1 0 TCP SLOW_START 2 1 1
s 214.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 214.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 214.500535000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 17 [0 0] [1 36]] (REQUEST)
s 215.500275000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 18 [1 0] [0 38]] (REQUEST)
s 216.500155000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 18 [0 0] [1 38]] (REQUEST)
s 219.500275000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 19 [1 0] [0 40]] (REQUEST)
s 220.500415000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 19 [0 0] [1 40]] (REQUEST)
s 225.000195000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 20 [1 0] [0 42]] (REQUEST)
s 226.000655000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 20 [0 0] [1 42]] (REQUEST)
D 232.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 233.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 273.5 0 1 TCP TIMEOUT 2 1 1
E 273.5 0 1 TCP SLOW_START 2 1 1
s 273.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 273.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 273.500675000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 21 [1 0] [0 44]] (REQUEST)
E 274.5 1 0 TCP TIMEOUT 2 1 1
E 274.5 1 0 TCP SLOW_START 2 1 1
s 274.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 274.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 274.500615000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 21 [0 0] [1 44]] (REQUEST)
s 275.500375000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 22 [1 0] [0 46]] (REQUEST)
s 276.500415000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 22 [0 0] [1 46]] (REQUEST)
s 279.500655000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 23 [1 0] [0 48]] (REQUEST)
s 280.500255000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 23 [0 0] [1 48]] (REQUEST)
s 285.000515000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 24 [1 0] [0 50]] (REQUEST)
s 286.000195000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 24 [0 0] [1 50]] (REQUEST)
D 292.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 293.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 333.5 0 1 TCP TIMEOUT 2 1 1
E 333.5 0 1 TCP SLOW_START 2 1 1
s 333.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 333.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 333.500295000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 25 [1 0] [0 52]] (REQUEST)
E 334.5 1 0 TCP TIMEOUT 2 1 1
E 334.5 1 0 TCP SLOW_START 2 1 1
s 334.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 334.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 334.500215000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 25 [0 0] [1 52]] (REQUEST)
s 335.500395000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 26 [1 0] [0 54]] (REQUEST)
s 336.500575000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 26 [0 0] [1 54]] (REQUEST)
s 339.500235000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 27 [1 0] [0 56]] (REQUEST)
s 340.500335000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 27 [0 0] [1 56]] (REQUEST)
s 345.000075000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 28 [1 0] [0 58]] (REQUEST)
s 346.000595000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 28 [0 0] [1 58]] (REQUEST)
D 352.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 353.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 393.5 0 1 TCP TIMEOUT 2 1 1
E 393.5 0 1 TCP SLOW_START 2 1 1
s 393.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 393.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 393.500495000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 29 [1 0] [0 60]] (REQUEST)
E 394.5 1 0 TCP TIMEOUT 2 1 1
E 394.5 1 0 TCP SLOW_START 2 1 1
s 394.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 394.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 394.500095000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 29 [0 0] [1 60]] (REQUEST)
s 395.500335000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 30 [1 0] [0 62]] (REQUEST)
s 396.500095000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 30 [0 0] [1 62]] (REQUEST)
s 399.500515000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 31 [1 0] [0 64]] (REQUEST)
s 400.500555000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 31 [0 0] [1 64]] (REQUEST)
s 405.000255000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 32 [1 0] [0 66]] (REQUEST)
s 406.000255000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 32 [0 0] [1 66]] (REQUEST)
D 412.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 413.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
E 453.5 0 1 TCP TIMEOUT 2 1 1
E 453.5 0 1 TCP SLOW_START 2 1 1
s 453.500000000 _0_ AGT — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
r 453.500000000 _0_ RTR — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 453.500315000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 33 [1 0] [0 68]] (REQUEST)
E 454.5 1 0 TCP TIMEOUT 2 1 1
E 454.5 1 0 TCP SLOW_START 2 1 1
s 454.500000000 _1_ AGT — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
r 454.500000000 _1_ RTR — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 454.500175000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 33 [0 0] [1 68]] (REQUEST)
s 455.500615000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 34 [1 0] [0 70]] (REQUEST)
s 456.500655000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 34 [0 0] [1 70]] (REQUEST)
s 459.500295000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 35 [1 0] [0 72]] (REQUEST)
s 460.500215000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 35 [0 0] [1 72]] (REQUEST)
s 465.000595000 _0_ MAC — 0 AODV 106 [0 ffffffff 0 800] ——- [0:255 -1:255 30 0] [0x2 1 36 [1 0] [0 74]] (REQUEST)
s 466.000255000 _1_ MAC — 0 AODV 106 [0 ffffffff 1 800] ——- [1:255 -1:255 30 0] [0x2 1 36 [0 0] [1 74]] (REQUEST)
D 472.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 473.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]

The trace shows that the packets are sent successfully. but there is no packet received at application layer of the destination node or any other neighbor node.

The packets are getting generated at the Application layer (AGT).
The packets are arriving the  routing layer of the same node
The packets are getting transmitted at the MAC layer.
 
But the other node is not at all able to receive it.
 
Why? this is the big question.
 
If one can solve the problem then only he can use this FSO extension for his research.

Experiment 2:

While testing the installation with the given example scen_2_circular_tcp.tcl, there is no packets received at all.

I am setting the parameters as follows :

set channelType Channel/WirelessChannel
set propagationModel Propagation/FreeSpaceOptical
set interfaceType Phy/WirelessPhy
set macType Mac/802_11
set ifqType Queue/DropTail/PriQueue
set linkLayerType LL
set antennaType Antenna/FSOAntenna
set queueLength 50
set routingProtocol AODV
set modulationType Modulation/BPSK/FSO
set traceFilePath “~/output.tr”
set presetSeed 0
set numberOfNodes 50
set mobile 0
set numberOfInterfaces 8
set duration 100
set xmitRange 100
set xMax 1000
set yMax 1000
set nodeRadiusCm 20
set visibility 60000
set theta 0.1
set rxDia 8
set txDia 3
set recalcPower 0
set calculatedPower 10
set randomMobile 0
set mobilityFile “$env(NS)/tcl/mobility/scene/scen-670×670-50-600-20-0”
set alignmentInterval 0.5
set useFsoBuffering 1
# 0=node-wide, 1=per-flow
set bufferingType 0
set fathomTimeout 1
set nodeWideBufferSize 50
set perFlowBufferSize 10

Further, at the end of the trace file the logged statistics are also meaningless (total_useful_bytes_ = -40 ?).

 

……………..
…………
s 93.500000000 _49_ AGT — 14592 udp 40 [0 0 0 0] ——- [49:93 44:97 32 0]
s 93.500000000 _49_ AGT — 14592 udp 40 [0 0 0 0] ——- [49:94 45:97 32 0]
s 93.500000000 _49_ AGT — 14592 udp 40 [0 0 0 0] ——- [49:95 46:97 32 0]
s 93.500000000 _49_ AGT — 14592 udp 40 [0 0 0 0] ——- [49:96 47:97 32 0]
s 93.500000000 _49_ AGT — 14592 udp 40 [0 0 0 0] ——- [49:97 48:97 32 0]
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
STATS: 6.0 5.0 -40
……………..
…………

According to me, the cause of this error is:
The packets are transmitted from the senders but not at all received at the receiving ends – it may be because of some wrong assumption that I made on any of the parameters that I mentioned above or that extension is not at all working as it should be.

 

What will be the correct set of parameters that we have to use – so that the receiving end will be able to receive the sent packets?

Is there any new version of the FSO extension available for ns2.35?

 

Even though I can compile the code without any errors, even the simple example script that came with the software is not producing any results.

Simply the  FSO Antenna were not at all able to receive any packets that were transmitted from any other node.
 
In fact, I contacted the original contributors of the code and asked some questions to rectify the issue.
 

The following is my mail content that I sent the original contributors of that project:

 
 
Dear Dr..
 
Thank you for sending the download link of FSO Extention.
Of course, I can understand that asking a query on a very old project will require considerable time to think and answer.
 
If you can spare some time, kindly help me to resolve the following  :
 
1. This version for FSO seems to be an incomplete or lower version (is there any new version of this fso extension available -in that case kindly send the link to get the recent version)
2. And most importantly, it is not at all working. The nodes with FSOAntennawere not at all able to receive even a RREQ packet as well as data packets (If we need to change any parameter in single .tcl to make it work, then kindly mention it)
 
The following text explains the error that I am facing:
 
I have successfully integrated fso extension with ns2.34 and compiled it without any errors.
 
But the fact is it is not at all working good.
 
If we test the installation with the simplest simulation script single.tcl provided under the folder/sim,  the data packets that were generated were not at all arriving the destination. Even the RREQ packets were not at all  recieved by any neighbors. (I hereby attach my version of single2.tcl file for your reference)
 
See the trace file output (of single.tcl for 100 seconds) :
 
s 0.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 1.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 3.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 4.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 9.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 10.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 19.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 20.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
s 21.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 22.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
s 45.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 46.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
D 48.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 48.500000000 _0_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [0:0 1:0 30 0]
D 49.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
D 49.500000000 _1_ RTR NRTE 0 udp 60 [0 0 0 0] ——- [1:1 0:1 30 0]
s 93.500000000 _0_ AGT  — 0 udp 40 [0 0 0 0] ——- [0:0 1:0 32 0]
s 94.500000000 _1_ AGT  — 0 udp 40 [0 0 0 0] ——- [1:1 0:1 32 0]
 
 
Further, this particular version seems to be incomplete because, som of the files under fso folder were not at all compiled (or included).
 
If you see the following screenshot, you can see that some of the important files localization*.cc were not at all getting compiled (you will not see any corresponding .o file)
 
Inline image 1
 

The following is the reply from a key person of that original project.

Charles,

 
The code is obviously old. We have not been maintaining it.   …………   …………….. …………….. …………….. . The problems you are seeing may be due to many different things. Unfortunately, I cannot help any further at this time. We have moved our work to prototypes and are rarely using simulations in our FSO work.
 
Cheers,
 

My final comments on this FSO extension (after a lot of experiments made on this):

 

According to my exploration of this FSO code, I can say that “it is not a complete or very accurate implementation of an ideal FSO”.

But as far as I know, this is the only available and somewhat meaningful extension.

So, if you need to research FSO under ns2, then there is no other go.

You have to fix your research constraints within the capability of this extension.

(In case if you will be having any hope of making this extension work correctly).

WhatsApp Discuss Through WhatsApp