zigbee: Aggregated LrWpanMacBase support

In this MR, a ZigbeeStack (object similar in design to a Netdevice) uses an aggregated LrWpanMacBase to a NetDevice to obtain access to the primitives of an lr-wpan MAC layer. The change is significant because it will allow to use Zigbee not only with a LrWpanNetDevice but also with any NetDevice as long as it contains a LrWpanMacBase object.

This idea comes from suggestions made by @tomhenderson in the now closed !2233 (closed).

The change is straightforward and not very intrusive contrary to !2233 (closed).

If possible, I would like to hear suggestions about the order of initialization (LrWpanNetDevice constructor, DoInitialize) and if the current approach is acceptable. For instance, should the LrWpanMacBase object be aggregated in the constructor of LrWpanNetDevice? What does that mean for the order of initialization for the other objects that are not aggregated: LrWpanPhy and LrWpanCsmaCa ? Edit: All suggestions were taken and added to the code.

Note: A sixlowpan test (example as a test suite) was replaced by a unit test because the timing was no longer the same after the changes in this merge. This was causing the test to crash. I decided that it was easier to replace the test altogether to make it more robust to these changes. Examples as test suites can be kind of temperamental to small changes as you know.

Edited by Alberto Gallegos

Merge request reports

Loading