GSOC2013WAVE MAC/FinalReport

From Nsnam
Jump to: navigation, search

Abstract: This is the final set deliverables of the ns-3 GSoC 2013 project, named WAVE. The patch set is mainly divided to three patches and based on the current ns-3-dev.

The first patch was about removing deprecated 802.11p code in the wifi module, and fixing some wifi bugs. It has already been merged to ns-3-dev after review by Daniel and Tom (changesets 10200-10204).

The second patch [1] contains the base implementation of the IEEE 802.11p standard. This patch contains documentation, the new NetDevice model, a simple example, a test suite, and helpers. Besides that, this patch also made some slight modifications to the wifi module.

The model in this patch implements: a) a high MAC class named OcbWifiMac b) vendor specific frames operation, including management header, send and receive operations c) a new tag called HigherDataTxVectorTag, and a subclass WaveMacLow inheriting from MacLow, that supports higher layer control Tx parameters.

The test suite tests association times with different high Mac modes. The example is to show how to create and use 802.11p device.

The third patch [2] is about the implementation of the 1609.4 standard, where most of the WAVE functionality resides. This patch contains documentation, models, three simple examples, a test suite, and helpers. Besides that, this patch also needs additional modifications to the wifi module. The model provides service via a new WaveNetDevice inheriting from WifiNetDevice, in which the main work is done by several internal classes.

The four classes are ChannelManager, VsaRepeater, ChannelScheduler and ChannelCoordinator. ChannelManager stores the WAVE channel information. VsaRepeater sends VSAs repeatedly and stores VSA tx parameters. ChannelCoordinator coordinates channel interval operation including control channel (CCH) intervals, service channel (SCH) intervals, and Guard intervals. ChannelScheduler is to assign channel access with four mechanisms. Besides that, a new tag ExpireTimeTag is used to support control lifetime of packets, and a subclass WaveMacQueue inheriting from WifiMacQueue is used to support AlternatingAccess channel access mechanism. An example named MultipleChannelExperiment models the multiple channel environment. The test suite tests implemented methods and features. However, an item for future work is to include more test cases.