I'd like to share some of my observations regarding the implementation of IEEE 802.15.4 in ns-2. These observations are based on the results of running the script wpan_demo3.tcl in the directory ns-allinone-2.33/ns-2.33/tcl/ex/wpan.
1. The effect of beacon order (BO) wpan_demo3.tcl implicitly sets the beacon order to be the same as the superframe order (SO), i.e., BO = SO = 3, thus resulting in only one beacon slot in a superframe. Before the script is modified, all FFD nodes are somehow able to broadcast their beacons. When BO is set to 6 or above, no FFD nodes are able to broadcast their beacons. I expected that when the number of beacon slots is increased, the chance of the FFDs broadcasting their beacons increases, but this was not observed. 2. Sleeping in the inactive period/portion of a superframe No sleeping by any node has been observed due to this conditional in the file p802_15_4mac.cc: if ((backoffStatus!=99) && ((!capability.FFD)||(numberDeviceLink(&deviceLink1) == 0)) && (NOW>phy->T_sleep_)) { phy->putNodeToSleep(); ... because T_sleep_ is only initialized once to 10000. It seems like the implementation does not make nodes sleep during inactive periods at all.