<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.nsnam.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Junling</id>
	<title>Nsnam - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.nsnam.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Junling"/>
	<link rel="alternate" type="text/html" href="https://www.nsnam.org/wiki/Special:Contributions/Junling"/>
	<updated>2026-04-11T08:57:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8023</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8023"/>
		<updated>2013-10-02T05:30:31Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* Final report: [[GSOC2013WAVE MAC/FinalReport]]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler &lt;br /&gt;
  a) complete SchChannelScheduler &lt;br /&gt;
  b) support continuous access, extended access, and immediate access. (not support alternating access yet)&lt;br /&gt;
* mid-term report [status: completed]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
  a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
  b) implement ChannelCoordinator&lt;br /&gt;
  c) complete a test cast about channel coordination &lt;br /&gt;
  d) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, &lt;br /&gt;
instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, &lt;br /&gt;
the current queue will not be flushed and just switch to another queue for next channel.&lt;br /&gt;
  a) define WaveEdcaTxopN to support alternating access&lt;br /&gt;
  b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
  a) implement VSA transmission method and receive callback of WaveNetDevice.&lt;br /&gt;
  b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
  c) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
  a) update documents&lt;br /&gt;
  b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: completed]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
  a) update WAVE examples&lt;br /&gt;
  b) System test has not been completed which will be done in the future.&lt;br /&gt;
* Final [status: completed]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
  a) update documentation and doxygen&lt;br /&gt;
  b) divide my implementation into three patches&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/FinalReport&amp;diff=8022</id>
		<title>GSOC2013WAVE MAC/FinalReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/FinalReport&amp;diff=8022"/>
		<updated>2013-10-02T05:23:00Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abstract:&lt;br /&gt;
This is the final set deliverables of the ns-3 GSoC 2013 project, named&lt;br /&gt;
WAVE.  The patch set is mainly divided to three patches and based on the&lt;br /&gt;
current ns-3-dev.&lt;br /&gt;
&lt;br /&gt;
The first patch was about removing deprecated 802.11p code in the wifi&lt;br /&gt;
module, and fixing some wifi bugs.  It has already been merged to&lt;br /&gt;
ns-3-dev after review by Daniel and Tom (changesets 10200-10204).&lt;br /&gt;
&lt;br /&gt;
The second patch [1] contains the base implementation of the IEEE&lt;br /&gt;
802.11p standard. This patch contains documentation, the new NetDevice&lt;br /&gt;
model, a simple example, a test suite, and helpers.  Besides that, this&lt;br /&gt;
patch also made some slight modifications to the wifi module.&lt;br /&gt;
&lt;br /&gt;
The model in this patch implements:&lt;br /&gt;
a) a high MAC class named OcbWifiMac&lt;br /&gt;
b) vendor specific frames operation, including management header, send&lt;br /&gt;
and receive operations&lt;br /&gt;
c) a new tag called HigherDataTxVectorTag, and a subclass WaveMacLow&lt;br /&gt;
inheriting from MacLow, that supports higher layer control Tx parameters.&lt;br /&gt;
&lt;br /&gt;
The test suite tests association times with different high Mac&lt;br /&gt;
modes.  The example is to show how to create and use 802.11p device.&lt;br /&gt;
&lt;br /&gt;
The third patch [2] is about the implementation of the 1609.4 standard,&lt;br /&gt;
where most of the WAVE functionality resides.  This patch contains&lt;br /&gt;
documentation, models, three simple examples, a test suite, and helpers.&lt;br /&gt;
Besides that, this patch also needs additional modifications to the&lt;br /&gt;
wifi module.  The model provides service via a new WaveNetDevice&lt;br /&gt;
inheriting from WifiNetDevice, in which the main work is done by several&lt;br /&gt;
internal classes.&lt;br /&gt;
&lt;br /&gt;
The four classes are ChannelManager, VsaRepeater, ChannelScheduler and&lt;br /&gt;
ChannelCoordinator. ChannelManager stores the WAVE channel information.&lt;br /&gt;
VsaRepeater sends VSAs repeatedly and stores VSA tx parameters.&lt;br /&gt;
ChannelCoordinator coordinates channel interval operation including&lt;br /&gt;
control channel (CCH) intervals, service channel (SCH) intervals, and&lt;br /&gt;
Guard intervals.  ChannelScheduler is to assign channel access with four&lt;br /&gt;
mechanisms.  Besides that, a new tag ExpireTimeTag is used to support&lt;br /&gt;
control lifetime of packets, and a subclass WaveMacQueue inheriting from&lt;br /&gt;
WifiMacQueue is used to support AlternatingAccess channel access&lt;br /&gt;
mechanism.  An example named MultipleChannelExperiment models the&lt;br /&gt;
multiple channel environment.  The test suite tests implemented methods&lt;br /&gt;
and features. However, an item for future work is to include more test&lt;br /&gt;
cases.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/13880043/&lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/14013044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git&lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8021</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8021"/>
		<updated>2013-10-02T05:21:59Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* Final report: [[GSOC2013WAVE MAC/FinalReport]]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler &lt;br /&gt;
  a) complete SchChannelScheduler &lt;br /&gt;
  b) support continuous access, extended access, and immediate access. (not support alternating access yet)&lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
  a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
  b) implement ChannelCoordinator&lt;br /&gt;
  c) complete a test cast about channel coordination &lt;br /&gt;
  d) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, &lt;br /&gt;
instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, &lt;br /&gt;
the current queue will not be flushed and just switch to another queue for next channel.&lt;br /&gt;
  a) define WaveEdcaTxopN to support alternating access&lt;br /&gt;
  b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
  a) implement VSA transmission method and receive callback of WaveNetDevice.&lt;br /&gt;
  b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
  c) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
  a) update documents&lt;br /&gt;
  b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/FinalReport&amp;diff=8020</id>
		<title>GSOC2013WAVE MAC/FinalReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/FinalReport&amp;diff=8020"/>
		<updated>2013-10-02T05:20:50Z</updated>

		<summary type="html">&lt;p&gt;Junling: Created page with &amp;quot;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.  T...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Abstract:&lt;br /&gt;
This is the final set deliverables of the ns-3 GSoC 2013 project, named&lt;br /&gt;
WAVE.  The patch set is mainly divided to three patches and based on the&lt;br /&gt;
current ns-3-dev.&lt;br /&gt;
&lt;br /&gt;
The first patch was about removing deprecated 802.11p code in the wifi&lt;br /&gt;
module, and fixing some wifi bugs.  It has already been merged to&lt;br /&gt;
ns-3-dev after review by Daniel and Tom (changesets 10200-10204).&lt;br /&gt;
&lt;br /&gt;
The second patch [1] contains the base implementation of the IEEE&lt;br /&gt;
802.11p standard. This patch contains documentation, the new NetDevice&lt;br /&gt;
model, a simple example, a test suite, and helpers.  Besides that, this&lt;br /&gt;
patch also made some slight modifications to the wifi module.&lt;br /&gt;
&lt;br /&gt;
The model in this patch implements:&lt;br /&gt;
a) a high MAC class named OcbWifiMac&lt;br /&gt;
b) vendor specific frames operation, including management header, send&lt;br /&gt;
and receive operations&lt;br /&gt;
c) a new tag called HigherDataTxVectorTag, and a subclass WaveMacLow&lt;br /&gt;
inheriting from MacLow, that supports higher layer control Tx parameters.&lt;br /&gt;
&lt;br /&gt;
The test suite tests association times with different high Mac&lt;br /&gt;
modes.  The example is to show how to create and use 802.11p device.&lt;br /&gt;
&lt;br /&gt;
The third patch [2] is about the implementation of the 1609.4 standard,&lt;br /&gt;
where most of the WAVE functionality resides.  This patch contains&lt;br /&gt;
documentation, models, three simple examples, a test suite, and helpers.&lt;br /&gt;
Besides that, this patch also needs additional modifications to the&lt;br /&gt;
wifi module.  The model provides service via a new WaveNetDevice&lt;br /&gt;
inheriting from WifiNetDevice, in which the main work is done by several&lt;br /&gt;
internal classes.&lt;br /&gt;
&lt;br /&gt;
The four classes are ChannelManager, VsaRepeater, ChannelScheduler and&lt;br /&gt;
ChannelCoordinator. ChannelManager stores the WAVE channel information.&lt;br /&gt;
VsaRepeater sends VSAs repeatedly and stores VSA tx parameters.&lt;br /&gt;
ChannelCoordinator coordinates channel interval operation including&lt;br /&gt;
control channel (CCH) intervals, service channel (SCH) intervals, and&lt;br /&gt;
Guard intervals.  ChannelScheduler is to assign channel access with four&lt;br /&gt;
mechanisms.  Besides that, a new tag ExpireTimeTag is used to support&lt;br /&gt;
control lifetime of packets, and a subclass WaveMacQueue inheriting from&lt;br /&gt;
WifiMacQueue is used to support AlternatingAccess channel access&lt;br /&gt;
mechanism.  An example named MultipleChannelExperiment models the&lt;br /&gt;
multiple channel environment.  The test suite tests implemented methods&lt;br /&gt;
and features. However, an item for future work is to include more test&lt;br /&gt;
cases.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/13880043/&lt;br /&gt;
[2] http://codereview.appspot.com/14013044/&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8019</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=8019"/>
		<updated>2013-10-02T05:19:13Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* Final report:&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler &lt;br /&gt;
  a) complete SchChannelScheduler &lt;br /&gt;
  b) support continuous access, extended access, and immediate access. (not support alternating access yet)&lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
  a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
  b) implement ChannelCoordinator&lt;br /&gt;
  c) complete a test cast about channel coordination &lt;br /&gt;
  d) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, &lt;br /&gt;
instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, &lt;br /&gt;
the current queue will not be flushed and just switch to another queue for next channel.&lt;br /&gt;
  a) define WaveEdcaTxopN to support alternating access&lt;br /&gt;
  b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
  a) implement VSA transmission method and receive callback of WaveNetDevice.&lt;br /&gt;
  b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
  c) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
  a) update documents&lt;br /&gt;
  b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7888</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7888"/>
		<updated>2013-09-09T13:19:16Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler &lt;br /&gt;
  a) complete SchChannelScheduler &lt;br /&gt;
  b) support continuous access, extended access, and immediate access. (not support alternating access yet)&lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
  a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
  b) implement ChannelCoordinator&lt;br /&gt;
  c) complete a test cast about channel coordination &lt;br /&gt;
  d) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, &lt;br /&gt;
instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, &lt;br /&gt;
the current queue will not be flushed and just switch to another queue for next channel.&lt;br /&gt;
  a) define WaveEdcaTxopN to support alternating access&lt;br /&gt;
  b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
  a) implement VSA transmission method and receive callback of WaveNetDevice.&lt;br /&gt;
  b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
  c) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
  a) update documents&lt;br /&gt;
  b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7887</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7887"/>
		<updated>2013-09-09T13:05:01Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
  a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
  b) implement ChannelCoordinator&lt;br /&gt;
  c) complete a test cast about channel coordination c) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
  a) My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, &lt;br /&gt;
instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, &lt;br /&gt;
the current queue will not be flushed and just switch to another queue for next channel.&lt;br /&gt;
  b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
  a) implement VSA transmission method and receive callback of WaveNetDevice. b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
  b) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
  a) update documents&lt;br /&gt;
  b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7886</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7886"/>
		<updated>2013-09-09T13:03:14Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report: [[GSOC2013WAVE MAC/MidTermReport]]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: completed]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: completed]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
 a) modify some implementation code according to comments from ns-3 developer &lt;br /&gt;
 b) implement ChannelCoordinator&lt;br /&gt;
 c) complete a test cast about channel coordination c) add expire-time-tag to support control the packet's lifetime.&lt;br /&gt;
*Week 8 [status: completed]&lt;br /&gt;
August 12 – August 18: implement ChannelManager&lt;br /&gt;
 a) My initial proposal that use 7 mac entities and single phy entity to support channel alternating access seems not easy, instead I try to implement ns3::WaveEdcaTxopN inheriting from ns3::EdcaxopN which uses multiple internal queues instead of single queue, when channel switches, the current queue will not be flushed and just switch to another queue for next channel. b) implement ChannelManager which contains channel information and state.&lt;br /&gt;
* Week 9/10 [status: completed]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
 a) implement VSA transmission method and receive callback of WaveNetDevice. b) complete VsaRepeater to support send VSAs repeatedly.&lt;br /&gt;
 c) finish an example to show usage.&lt;br /&gt;
* Week 11 [status: completed]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
 a) update documents&lt;br /&gt;
 b) complete wave-multiple-channel to model a VANET environment to show the impact of WAVE 1609.4&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7783</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7783"/>
		<updated>2013-08-01T16:10:31Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Helpers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== Helpers ==&lt;br /&gt;
In wave module, the helpers include QosWaveMacHelper, NqosWaveHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and NqosWaveMacHelper are used to create MAC entities of WAVE. Wifi80211pHelper is used to create 802.11p devices that follow the 802.11p-2010 standard. WaveHelper is used to create WAVE devices that follow the 802.11p-2010 and 1609.4-2010 standards which are the MAC and PHY layers of the WAVE architecture.&lt;br /&gt;
The relation of them is described as below.&lt;br /&gt;
               &lt;br /&gt;
     WifiHelper ----------use----------&amp;gt;  WifiMacHelper&lt;br /&gt;
      ^      ^                             ^       ^&lt;br /&gt;
      |      |                             |       |&lt;br /&gt;
      |      |                          inherit  inherit&lt;br /&gt;
      |      |                             |       |&lt;br /&gt;
      |      |                 QosWifiMacHelper  NqosWifiMacHelper&lt;br /&gt;
      |      |                             ^       ^&lt;br /&gt;
      |      |                             |       |&lt;br /&gt;
  inherit    inherit                     inherit  inherit&lt;br /&gt;
      |      |                             |       |&lt;br /&gt;
 WaveHelper Wifi80211pHelper     QosWaveMacHelper  NqosWaveHelper&lt;br /&gt;
&lt;br /&gt;
Although Wifi80211Helper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper or NqosWaveHelper.&lt;br /&gt;
&lt;br /&gt;
Although WaveHelper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper. NqosWaveHelper is also not permitted, because 1609.4 standard requires the support for priority.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
Because some details are not define in the standard, the implementation is partially based on my personal knowledge. Some of the code needs modification or refactoring.&lt;br /&gt;
 (1) WaveNetDevice inherits from NetDevice rather than WifiNetDevice which causes duplicated code.&lt;br /&gt;
 (2) 802.11p device supports 802.11a with 10MHz or 20MHz. But wave devices do not support 802.11a 20MHz.&lt;br /&gt;
 (3) The immediate access defined in 1609.4 is implemented simply, not considering channel guard interval.&lt;br /&gt;
 (4) The current test suite is not extensive enough, which should be refactored.&lt;br /&gt;
== Next Goal ==&lt;br /&gt;
Besides some code that is not implemented well described in open issues, there are some important features are not implement yet which will be finished after midterm.&lt;br /&gt;
 (1) implement vsa-repeater class. &lt;br /&gt;
 (2) add support for transmit parameter control. &lt;br /&gt;
 (3) support AlternatingAccess.&lt;br /&gt;
 (4) complete some examples to show performance.&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7782</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7782"/>
		<updated>2013-08-01T16:08:23Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Helpers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== Helpers ==&lt;br /&gt;
In wave module, the helpers include QosWaveMacHelper, NqosWaveHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and NqosWaveMacHelper are used to create MAC entities of WAVE. Wifi80211pHelper is used to create 802.11p devices that follow the 802.11p-2010 standard. WaveHelper is used to create WAVE devices that follow the 802.11p-2010 and 1609.4-2010 standards which are the MAC and PHY layers of the WAVE architecture.&lt;br /&gt;
The relation of them is described as below.&lt;br /&gt;
               &lt;br /&gt;
 WifiHelper ----------use---------&amp;gt; WifiMacHelper&lt;br /&gt;
  ^     ^                             ^       ^&lt;br /&gt;
  |     |                             |       |&lt;br /&gt;
  |     |                          inherit  inherit&lt;br /&gt;
  |     |                             |       |&lt;br /&gt;
  |     |                 QosWifiMacHelper  NqosWifiMacHelper&lt;br /&gt;
  |     |                             ^       ^&lt;br /&gt;
 inherit|                             |       |&lt;br /&gt;
  |    inherit                     inherit  inherit&lt;br /&gt;
  |     |                             |       |&lt;br /&gt;
  |  Wifi80211pHelper     QosWaveMacHelper  NqosWaveHelper&lt;br /&gt;
 WaveHelper&lt;br /&gt;
&lt;br /&gt;
Although Wifi80211Helper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper or NqosWaveHelper.&lt;br /&gt;
&lt;br /&gt;
Although WaveHelper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper. NqosWaveHelper is also not permitted, because 1609.4 standard requires the support for priority.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
Because some details are not define in the standard, the implementation is partially based on my personal knowledge. Some of the code needs modification or refactoring.&lt;br /&gt;
 (1) WaveNetDevice inherits from NetDevice rather than WifiNetDevice which causes duplicated code.&lt;br /&gt;
 (2) 802.11p device supports 802.11a with 10MHz or 20MHz. But wave devices do not support 802.11a 20MHz.&lt;br /&gt;
 (3) The immediate access defined in 1609.4 is implemented simply, not considering channel guard interval.&lt;br /&gt;
 (4) The current test suite is not extensive enough, which should be refactored.&lt;br /&gt;
== Next Goal ==&lt;br /&gt;
Besides some code that is not implemented well described in open issues, there are some important features are not implement yet which will be finished after midterm.&lt;br /&gt;
 (1) implement vsa-repeater class. &lt;br /&gt;
 (2) add support for transmit parameter control. &lt;br /&gt;
 (3) support AlternatingAccess.&lt;br /&gt;
 (4) complete some examples to show performance.&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7781</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7781"/>
		<updated>2013-08-01T16:07:27Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== Helpers ==&lt;br /&gt;
In wave module, the helpers include QosWaveMacHelper, NqosWaveHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and NqosWaveMacHelper are used to create MAC entities of WAVE. Wifi80211pHelper is used to create 802.11p devices that follow the 802.11p-2010 standard. WaveHelper is used to create WAVE devices that follow the 802.11p-2010 and 1609.4-2010 standards which are the MAC and PHY layers of the WAVE architecture.&lt;br /&gt;
The relation of them is described as below.&lt;br /&gt;
               &lt;br /&gt;
WifiHelper ----------use---------&amp;gt; WifiMacHelper&lt;br /&gt;
 ^     ^                             ^       ^&lt;br /&gt;
 |     |                             |       |&lt;br /&gt;
 |     |                          inherit  inherit&lt;br /&gt;
 |     |                             |       |&lt;br /&gt;
 |     |                 QosWifiMacHelper  NqosWifiMacHelper&lt;br /&gt;
 |     |                             ^       ^&lt;br /&gt;
inherit|                             |       |&lt;br /&gt;
 |    inherit                     inherit  inherit&lt;br /&gt;
 |     |                             |       |&lt;br /&gt;
 |  Wifi80211pHelper     QosWaveMacHelper  NqosWaveHelper&lt;br /&gt;
WaveHelper&lt;br /&gt;
&lt;br /&gt;
Although Wifi80211Helper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper or NqosWaveHelper.&lt;br /&gt;
&lt;br /&gt;
Although WaveHelper can use any subclasses inheriting from WifiMacHelper, we force user shall use subclasses inheriting from QosWaveMacHelper. NqosWaveHelper is also not permitted, because 1609.4 standard requires the support for priority.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
Because some details are not define in the standard, the implementation is partially based on my personal knowledge. Some of the code needs modification or refactoring.&lt;br /&gt;
 (1) WaveNetDevice inherits from NetDevice rather than WifiNetDevice which causes duplicated code.&lt;br /&gt;
 (2) 802.11p device supports 802.11a with 10MHz or 20MHz. But wave devices do not support 802.11a 20MHz.&lt;br /&gt;
 (3) The immediate access defined in 1609.4 is implemented simply, not considering channel guard interval.&lt;br /&gt;
 (4) The current test suite is not extensive enough, which should be refactored.&lt;br /&gt;
== Next Goal ==&lt;br /&gt;
Besides some code that is not implemented well described in open issues, there are some important features are not implement yet which will be finished after midterm.&lt;br /&gt;
 (1) implement vsa-repeater class. &lt;br /&gt;
 (2) add support for transmit parameter control. &lt;br /&gt;
 (3) support AlternatingAccess.&lt;br /&gt;
 (4) complete some examples to show performance.&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7780</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7780"/>
		<updated>2013-08-01T15:38:17Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
Because some details are not define in the standard, the implementation is partially based on my personal knowledge. Some of the code needs modification or refactoring.&lt;br /&gt;
 (1) WaveNetDevice inherits from NetDevice rather than WifiNetDevice which causes duplicated code.&lt;br /&gt;
 (2) 802.11p device supports 802.11a with 10MHz or 20MHz. But wave devices do not support 802.11a 20MHz.&lt;br /&gt;
 (3) The immediate access defined in 1609.4 is implemented simply, not considering channel guard interval.&lt;br /&gt;
 (4) The current test suite is not extensive enough, which should be refactored.&lt;br /&gt;
== Next Goal ==&lt;br /&gt;
Besides some code that is not implemented well described in open issues, there are some important features are not implement yet which will be finished after midterm.&lt;br /&gt;
 (1) implement vsa-repeater class. &lt;br /&gt;
 (2) add support for transmit parameter control. &lt;br /&gt;
 (3) support AlternatingAccess.&lt;br /&gt;
 (4) complete some examples to show performance.&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7779</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7779"/>
		<updated>2013-08-01T15:21:13Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== Next Goal ==&lt;br /&gt;
 (1) implement vsa-repeater class. &lt;br /&gt;
 (2) refactor wave test suites.&lt;br /&gt;
 (3) add support for transmit parameter control. &lt;br /&gt;
 (4) support AlternatingAccess.&lt;br /&gt;
 (5) complete some examples to show performance.&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7760</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7760"/>
		<updated>2013-07-23T12:02:33Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* partial 1609.4 Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7759</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7759"/>
		<updated>2013-07-23T12:02:05Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* partial 1609.4 Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channel coordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channels environment, 2) the most important channel access assignment named AlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7758</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7758"/>
		<updated>2013-07-23T12:01:21Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* 802.11p Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs. Further study is needed to verify that this implementation of 802.11p is accurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channelcoordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channelsenvironment, 2) the most important channel access assignment namedAlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7757</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7757"/>
		<updated>2013-07-23T11:55:37Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC WAVE MAC wiki page] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs.Further study is needed to verify that this implementation of 802.11p isaccurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channelcoordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channelsenvironment, 2) the most important channel access assignment namedAlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7756</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7756"/>
		<updated>2013-07-23T11:54:47Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE MAC| WAVE MAC wiki page]] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs.Further study is needed to verify that this implementation of 802.11p isaccurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channelcoordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channelsenvironment, 2) the most important channel access assignment namedAlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7755</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7755"/>
		<updated>2013-07-23T11:53:03Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* 1609.4 Implementation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC| WAVE MAC wiki page]] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs.Further study is needed to verify that this implementation of 802.11p isaccurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== partial 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channelcoordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channelsenvironment, 2) the most important channel access assignment namedAlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.&lt;br /&gt;
&lt;br /&gt;
[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7754</id>
		<title>GSOC2013WAVE MAC/MidTermReport</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC/MidTermReport&amp;diff=7754"/>
		<updated>2013-07-23T11:51:34Z</updated>

		<summary type="html">&lt;p&gt;Junling: Created page with &amp;quot;== Abstract == My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
My midterm code is composed of 2 patches in Rietveld issues 11685043[1] and 11480044 [2]. The first is to remove previous 802.11p-related code in src/wifi. then implement WAVE 802.11p MAC defined by IEEE 802.11p-2010 in src/wave, the second is partial implementation of WAVE 1609.4 MAC defined by IEEE 1609.4-2010 in src/wave.&lt;br /&gt;
 &lt;br /&gt;
To run examples, the command is ./waf --run wave-simple-device (or wave-simple-ocb or wave-simple-vsa. To run test suites, the command is ./test.py -s wave (or ocb). Besides that, users can read wave.rst document and wiki page[4].&lt;br /&gt;
&lt;br /&gt;
For more information, The [https://github.com/linlinjava/ns-3-dev-git code] is hosted on github website, and the main [[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC| WAVE MAC wiki page]] is recommended. This midterm page will introduce what has been implemented until now, how the code is implemented, what are uncertain, and what are out of scope).&lt;br /&gt;
&lt;br /&gt;
== 802.11p Implementation ==&lt;br /&gt;
The patch of 802.11p implementation removes previous 802.11p-related code in&lt;br /&gt;
src/wifi, which was based on an old and unsuitable 1609.4-2006 standard and only&lt;br /&gt;
partially implemented, then adds the MAC portion of the 802.11p-2010 standard,&lt;br /&gt;
that allows stations to send data packets directly. &lt;br /&gt;
&lt;br /&gt;
The main features are 1) provide outside the context of a Bss (OCB) mode of&lt;br /&gt;
high MAC defined in the standard, 2) use specific EDCA parameters, 3) provide&lt;br /&gt;
vendor specific action frames and allow users to send management information over VSAs.Further study is needed to verify that this implementation of 802.11p isaccurate and can undertake a large number of nodes.&lt;br /&gt;
&lt;br /&gt;
== 1609.4 Implementation ==&lt;br /&gt;
The patch of 1609.4 implementation is to complete 1609.4-2010 standard based on 802.11p to deal&lt;br /&gt;
with multiple channels operation for vehicular environment. It would build on&lt;br /&gt;
the previous patch[1].The implemented features are 1) provide a NetDevice with special APIs, 2) allowusers to route different packets by different ways, 3) define standard channelcoordination mechanism, user can inherit to overwrite for optimization research,4) provide two simple channel access assignment mechanisms.Because of time limit of this midterm review, some important features are notfinished, including 1) the support of VSAs frame in multiple channelsenvironment, 2) the most important channel access assignment namedAlternatingAccess. Besides that, some details not defined in the standard will need more consideration and tests.[1] https://codereview.appspot.com/11685043/ &lt;br /&gt;
&lt;br /&gt;
[2] https://codereview.appspot.com/11480044/&lt;br /&gt;
&lt;br /&gt;
[3] https://github.com/linlinjava/ns-3-dev-git &lt;br /&gt;
&lt;br /&gt;
[4] https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7753</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7753"/>
		<updated>2013-07-22T14:02:26Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* How to use VSA frame to send management information ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to the standard) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7752</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7752"/>
		<updated>2013-07-22T14:01:16Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use wave device ? ==&lt;br /&gt;
Users can use WaveHelper to create a WaveNetDevice. Then before send or receive packets, we should assign channel access by StartSch method, then we can call SendX to send WSMP packets or call StartVsa to send VSA frames, and before send IP-based packets, we also need call RegisterTxProfile to indicate which channel to send, then we can call Send method. Usage:&lt;br /&gt;
&lt;br /&gt;
see wave/examples/wave-simple-device.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7751</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7751"/>
		<updated>2013-07-22T13:50:47Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* How to use VSA frame to send management information ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.&lt;br /&gt;
&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7750</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7750"/>
		<updated>2013-07-22T13:49:37Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* How to use VSA frame to send management information ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.&lt;br /&gt;
If you want to use 802.11p device to send VSAs.Usage:&lt;br /&gt;
&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
If you want to use wave device to send VSAs under multi-channel environment.Usage:&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7749</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7749"/>
		<updated>2013-07-22T13:43:04Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Why here are two kinds of NetDevice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). &lt;br /&gt;
The reason to provide a 802.11p device is that considering the fact many researchers are interested in route protocol or other aspects on vehicular environment of single channel, so they need no multi-channel operation and WAVE architectures. Besides that,  the European standard could use 802.11p device in an modified ITS-G5 implementation (maybe named ITSG5NetDevice).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7748</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7748"/>
		<updated>2013-07-22T13:34:31Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== Is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== Is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== What specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== Any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
== Why here are two kinds of NetDevice ==&lt;br /&gt;
In wave module, actually here are two device, one is 802.11p device which is the object of WifiNetDevice class, another is wave device which is the object of WaveNetDevice class. An &amp;quot;802.11p Net Device&amp;quot; is one that just runs the 802.11p extensions (channel frequency = 802.11a 5.9GHz, channel width = 10MHz, single instance of OcbWifiMac, and specific EDCA parameters). A &amp;quot;WAVE Net Device&amp;quot; is one that implements also 1609.1-4 standards based on 802.11p, and now we are focusing only on 1609.4 modeling aspects (multi channel). The reason to provide a 802.11p device is that could be used in an ITS-G5 implementation (the European standard).&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7747</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7747"/>
		<updated>2013-07-22T12:16:11Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Usage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use wifi80211p device ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7725</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7725"/>
		<updated>2013-07-15T04:34:48Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: completed]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
  a) define initial ChannelCoordinator, ChannelManager and ChannelScheduler which are used in WaveNetDevice&lt;br /&gt;
  b) define WifiNetDevice that has specific methods to deal with multiple channel operation.&lt;br /&gt;
  c) refactor helpers and implement WaveHelper&lt;br /&gt;
  d) finish a simple example to send WSMP packets.&lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7721</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7721"/>
		<updated>2013-07-12T03:05:14Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* How to use OcbWifiMac ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7720</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7720"/>
		<updated>2013-07-12T03:04:04Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* How to use OcbWifiMac ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWaveMacHelper, QosWaveMacHelper, Wifi80211pHelper and WaveHelper. NqosWaveMacHelper and QosWaveMacHelper deal with OcbWifiMac configuration that are similar to NqosWifiMacHelper and QosWifiMacHelper. Wifi80211pHelper is used to create a WifiNetDevice that combines one OcbWifiMac and one WifiPhy, which is a conceptual 802.11p wifi netdevice. WifiHelper is used to create WaveNetDevice that combines multiple OcbWifiMacs and one WifiPhy to deal with multiple channel operation, which is a conceptual WAVE device (although now still miss 1609.3 standards). &lt;br /&gt;
If users only want a 802.11p device, use code below.&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns3/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWaveMacHelper wifi80211pMac = NqosWaveMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7706</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7706"/>
		<updated>2013-06-29T13:54:47Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET include WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWifi80211pMacHelper, QosWifi80211pMacHelper and Wifi80211pHelper.so write codes like WifiHelper.&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWifi80211pMacHelper wifi80211pMac = NqosWifi80211pMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7705</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7705"/>
		<updated>2013-06-29T13:03:02Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Plan and Weekly Progress */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: completed]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare and implement OcbWifiMac class.&lt;br /&gt;
  e) finish two examples and one test suit.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWifi80211pMacHelper, QosWifi80211pMacHelper and Wifi80211pHelper.so write codes like WifiHelper.&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWifi80211pMacHelper wifi80211pMac = NqosWifi80211pMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7704</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7704"/>
		<updated>2013-06-29T13:01:02Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
== How to use OcbWifiMac ? ==&lt;br /&gt;
This model defines some wifi-like helpers: NqosWifi80211pMacHelper, QosWifi80211pMacHelper and Wifi80211pHelper.so write codes like WifiHelper.&lt;br /&gt;
Usage:&lt;br /&gt;
 #include &amp;quot;ns/wave.h&amp;quot;&lt;br /&gt;
 NodeContainer nodes;&lt;br /&gt;
 NetDeviceContainer devices;&lt;br /&gt;
 nodes.Create (2);&lt;br /&gt;
 YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();&lt;br /&gt;
 YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default ();&lt;br /&gt;
 wifiPhy.SetChannel (wifiChannel.Create ());&lt;br /&gt;
 NqosWifi80211pMacHelper wifi80211pMac = NqosWifi80211pMacHelper::Default();&lt;br /&gt;
 Wifi80211pHelper wifi80211p = Wifi80211pHelper::Default ();&lt;br /&gt;
 devices = wifi80211p.Install (wifiPhy, wifi80211pMac, nodes);&lt;br /&gt;
see wave/examples/wave-simple-ocb.cc&lt;br /&gt;
== How to use VSA frame to send management information ? ==&lt;br /&gt;
Normally the up layer can send packets in different protocols via 802.11 data frame, like ipv4 and ipv6. However, actually wifi know nothing about these differences, because this work has been done with LlcSnapHeader with protocol field. So if up layer wants to send different management informations over 802.11 management frame (of course nobody can prevent someone just wants to send management information over 802.11 data frame), how can we do?&lt;br /&gt;
The 802.11 and 802.11p can allow the up layer send different information over Vendor Specific Action management frame by using different OrganizationIdentifier fields (now only support 3 and 5 bytes according to standards) to identify differences.Usage:&lt;br /&gt;
 0. refer to 5.1, already has some Nodes and WifiNetdevices&lt;br /&gt;
 1. define an OrganizationIdentifier&lt;br /&gt;
    uint8_t oi_bytes[5] = {0x00, 0x50, 0xC2, 0x4A, 0x40};&lt;br /&gt;
    OrganizationIdentifier oi(oi_bytes,5);&lt;br /&gt;
 2. define a Callback for the defined OrganizationIdentifier&lt;br /&gt;
    VscCallback vsccall = MakeCallback (&amp;amp;VsaExample::GetWsaAndOi, this);&lt;br /&gt;
 3. OcbWifiMac regists this identifier and function&lt;br /&gt;
    Ptr&amp;lt;WifiNetDevice&amp;gt; device1 = DynamicCast&amp;lt;WifiNetDevice&amp;gt;(nodes.Get (i)-&amp;gt;GetDevice (0));&lt;br /&gt;
    Ptr&amp;lt;OcbWifiMac&amp;gt; ocb1 = DynamicCast&amp;lt;OcbWifiMac&amp;gt;(device-&amp;gt;GetMac ());&lt;br /&gt;
    ocb1-&amp;gt;AddReceiveVscCallback (oi, vsccall);&lt;br /&gt;
 4. now you can send management packet over VSA frame&lt;br /&gt;
    Ptr&amp;lt;Packet&amp;gt; vsc = Create&amp;lt;Packet&amp;gt; ();&lt;br /&gt;
    ocb2-&amp;gt;SendVsc (vsc, Mac48Address::GetBroadcast (), m_16093oi);&lt;br /&gt;
 5. then registered callback in other devices will be called.&lt;br /&gt;
see wave/examples/wave-simple-vsa.cc&lt;br /&gt;
 &lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7701</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7701"/>
		<updated>2013-06-27T13:55:35Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents [8]. The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7700</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7700"/>
		<updated>2013-06-27T13:54:03Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networks called VANETs are an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7699</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7699"/>
		<updated>2013-06-27T13:50:22Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networking called VANET is an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8-9]. The protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO. Note that: this project is mainly focus on MAC layer of WAVE architecure described in section 2.2 and 2.3.&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
The VANET simulations are the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7698</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7698"/>
		<updated>2013-06-27T13:44:14Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networking called VANET is an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8]. The communication protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO.&lt;br /&gt;
The VANET simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7697</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7697"/>
		<updated>2013-06-27T13:43:29Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
Vehicular networking called VANET is an important area of research in the field of Intelligent Transportation Systems (ITS). A wide range of safety and infotainment systems have been envisioned using this technology. Cooperative active safety systems, urban traffic control and the study of the inherent communication protocols are currently drawing great research interest [8]. The communication protocol stacks dedicated for VANET includes WAVE from US IEEE, C2C-CC from Europe and CALM from ISO.&lt;br /&gt;
The VANET simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].The challenge of VANET simulations mainly includes network simulation, vehicular mobility, channel model and large-scale simulation [11].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;br /&gt;
* [11]&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7696</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7696"/>
		<updated>2013-06-27T13:26:57Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Vehicluar Networks and VANET simulations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
&lt;br /&gt;
The VANET simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].&lt;br /&gt;
&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;br /&gt;
* [11]&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7695</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7695"/>
		<updated>2013-06-27T13:23:56Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
&lt;br /&gt;
The VANET simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;br /&gt;
* [9] Karagiannis, Georgios, et al. &amp;quot;Vehicular networking: A survey and tutorial on requirements, architectures, challenges, standards and solutions.&amp;quot;Communications Surveys &amp;amp; Tutorials, IEEE 13.4 (2011): 584-616.&lt;br /&gt;
* [10] Stanica, Razvan, Emmanuel Chaput, and André-Luc Beylot. &amp;quot;Simulation of vehicular ad-hoc networks: Challenges, review of tools and recommendations.&amp;quot; Computer Networks 55.14 (2011): 3179-3188&lt;br /&gt;
* [11]&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7693</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7693"/>
		<updated>2013-06-27T13:11:25Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
&lt;br /&gt;
The VANET simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections [8].&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7692</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7692"/>
		<updated>2013-06-27T13:05:49Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
The simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections[].&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;br /&gt;
* [8] Fernandes, Ricardo, Fausto Vieira, and Michel Ferreira. &amp;quot;VNS: An integrated framework for vehicular networks simulation.&amp;quot; Vehicular Networking Conference (VNC), 2012 IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7691</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7691"/>
		<updated>2013-06-27T13:04:11Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== Vehicluar Networks and VANET simulations ==&lt;br /&gt;
The simulations are still the most practicable methodology to study vehicular networks. First, it is the only viable solution to evaluate applications in large-scale scenarios with thousands of vehicles. Second, it allows for the control of parameters that are usually unavailable in real experiments such as traffic lights algorithms. Third, it provides a cost-effective solution for trying new applications or simulating accidents in key intersections[].&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7687</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7687"/>
		<updated>2013-06-26T09:03:24Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* any previous code you think you can leverage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
This project will provide two netdevice. First is normal 802.11p netdevice which uses new implemented OcbWifiMac, this is very useful for those people who only want to simulate route protocols or up protocols for vehicular environment and do not need whole WAVE architecture. For any previous code, my suggestion is to use Wifi80211phelper with little modification or just set ad-hoc mode with 802.11a 10MHz (this is enough to simulate main characteristic of 802.11p). The second netdevice is 1609.4 netdevice which providers some methods to deal with multi-channel operation. This is part of whole WAVE architecture and provides service for up 1609.3 standards.&lt;br /&gt;
&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7686</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7686"/>
		<updated>2013-06-26T08:41:59Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* are there any vehicular application models to drive the code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
About vehicular application models, I only know SAE J2375 depend on WAVE architecture is application message set in US; CAM and DENM in Europe is between network and application layer but is very close to application model. The BSM in J2375 and CAM is alert messages that every vehicle node will sent periodicity about its status information to cooperate with others. Fow now, here is no plan to develop a vehicular application model. But to drive WAVE MAC layer code, a simple application model will be tried to develop.&lt;br /&gt;
&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7682</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7682"/>
		<updated>2013-06-24T06:29:00Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* is your model going to use different propagation models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7681</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7681"/>
		<updated>2013-06-24T03:07:11Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* is your model going to use different propagation models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7]. This model will use Nakagami as default propagation model, users can use other models.&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7680</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7680"/>
		<updated>2013-06-24T03:04:03Z</updated>

		<summary type="html">&lt;p&gt;Junling: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model [7].&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;br /&gt;
* [7] Benin, Joseph, Michael Nowatkowski, and Henry Owen. &amp;quot;Vehicular Network simulation propagation loss model parameter standardization in ns-3 and beyond.&amp;quot; Southeastcon, 2012 Proceedings of IEEE. IEEE, 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7679</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7679"/>
		<updated>2013-06-24T03:02:33Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* is your model going to use different propagation models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
Refer to the first issue, some more realistic propagation models for vehicualr environment are suggested and welcome. And some existed propagation models in ns-3 are also suitable. Normally users can use Friis,Two-Ray Ground and Nakagami model.&lt;br /&gt;
&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7678</id>
		<title>GSOC2013WAVE MAC</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2013WAVE_MAC&amp;diff=7678"/>
		<updated>2013-06-24T02:48:53Z</updated>

		<summary type="html">&lt;p&gt;Junling: /* is this model going to involve vehicular mobility of some sort */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Project =&lt;br /&gt;
* Project Name: Implementation of WAVE 1609.4/802.11p&lt;br /&gt;
* Student: [mailto:linlinjavaer@gmail.com Junling Bu]&lt;br /&gt;
* Mentor: [mailto:guillaume.remy@ieee.org Guillaume Remy], [mailto:tomh@tomh.org Tom Henderson],  [mailto:nikkipui@gmail.com Daniel Lertpratchya]&lt;br /&gt;
* Abstract: Since WAVE communication standards have been published, there exist many relevant implementations including prototypes, products, and simulations. However the implementation varies significantly, some of them even based on old draft standards. Besides that, ns-3 has no complete WAVE module yet. So this project will implement WAVE 1609.4/802.11p in mac layer for ns-3, with complete testsuits, examples, helpers and documents.&lt;br /&gt;
* Code: Because of access restrictions from China, the code repository of this project cannot host on ns-3 code server with ssh command connected to. For now, an easy solution is to host the code on github website (mainly under src/wave directory).[https://github.com/linlinjava/ns-3-dev-git Code repository].&lt;br /&gt;
* Midterm report:[https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport https://www.nsnam.org/wiki/index.php/GSOC2013WAVE_MAC/MidTermReport]&lt;br /&gt;
* About me: I am a second year Master student from China, and now is researching on vehicular network communication.&lt;br /&gt;
= Introduction =&lt;br /&gt;
== IEEE Std 802.11p-2010 [1] ==&lt;br /&gt;
802.11p is an amendment of the IEEE standard 802.11, specifying extensions to 802.11a, adapting it to VANET communications in the 5.9 GHz band, fitting the VANET requirements of high mobility and short-duration communications. This specification includes: functions and services required by stations to operate correctly and to exchange messages without joining a BSS; signaling techniques and interface functions used by stations to communicate outside the context of a BSS.&lt;br /&gt;
== IEEE Std 1609.4-2010 [4] ==&lt;br /&gt;
1609.4 means multi-channel operations, providing enhancements to IEEE 802.11 MAC to support WAVE operations, namely number and type of channels, channel routing and coordination, QoS mechanisms and node synchronization. 75MHz channel spacing is divided into one CCH (control channel) and six SCHs (service channels). Based on GPS time information or 802.11p Timing Advertisement frame, wireless devices synchronously switch between CCHI (control channel interval) and SCHI (service channel interval)。&lt;br /&gt;
&lt;br /&gt;
= Approach =&lt;br /&gt;
[[File:Architecture_of_the_implementation_of_1609.4_and_802.11p.jpg|&lt;br /&gt;
&lt;br /&gt;
300px|thumb|right|Architecture of the implementation of 1609.4/802.11p in ns-3]]&lt;br /&gt;
== Implement 802.11p mac in ns-3 ==&lt;br /&gt;
The OCB mac mode named OcbWifiMac will be defined(Outside the context of a BSS), which is like ad-hoc rather than AP and station. According to the discussion among ns-3 developers [2-3],OcbWifiMac will inherit from RegularWifiMac class, which is very similar to AdhocWifiMac. The OcbWifiMac will overwrite some unsuitable functions to only log warn message, overwrite some functions to operate in OCB mode, and also provider some specific functions defined only in 802.11p. Moreover, OcbWifiMac will also set some arguments like default EDCA value.&lt;br /&gt;
== Implement 1609.4 mac extension in ns-3 ==&lt;br /&gt;
Since 1609.4 has already been implemented in some other simulations[5-6], this project will adopt some ideas from these papers as well as take the discussion among ns-3 developers[2-3] as the guideline for implementing. A subclass inheriting from NetDevice named WaveNetDevice will be defined, composed of (a) OcbWifiMac mac defined in 802.11p, (b) WaveNetDevice mac extension dealing with functions of 1609.4 management and data plane,(c) subcomponents in 1609.4 including ChannelCoordinator, ChannelManager, SchChannelScheduler and VSARepeater.&lt;br /&gt;
&lt;br /&gt;
== Development methodology ==&lt;br /&gt;
* First,based on ns-3 manual and model documents, abstract high basic classes, define common functions, and also add ns-3 features including Log and Attributes;&lt;br /&gt;
* Then, develop real working subclass inheriting from base class. &lt;br /&gt;
* After that, write test suits and examples, find bug, and check whether they work well;&lt;br /&gt;
* Last, complete manual documents about how to implement and how to use.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
And the most important point is that it’s an iterative process like Extreme Programming. Because this is a light project, we can develop simple functions, work well, then go back to develop a little more complex and accurate.&lt;br /&gt;
== Testing approach ==&lt;br /&gt;
When programming codes, test codes meanwhile. And testing approach is mainly based on log functions, examples and test suits. According to the Test part of ns-3 manual, it includes:&lt;br /&gt;
 a) Unit test, each layer's important functions and classes will be tested independently.&lt;br /&gt;
 b) Integrated test, integrating multiple classes will be tested.&lt;br /&gt;
 c) System test, examples will be used to test WAVE implementation.&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
According to the ns-3 architecture, deliverables are in a new module named WAVE, including Model, Doc, Helper, Binding, Test, and Examples.&lt;br /&gt;
* Model mainly contains : a) implementations of 802.11p, including ocb-wifi-mac.h/.cc; b) implementations of 1609.4, including wave-net-device.h/.cc, vsa-repeater.h/.cc, sch-channel-scheduler.h/.cc, channel-manager.h/.cc, channel-coordinator.h/.cc,vendor-specific-frame.h/.cc.&lt;br /&gt;
* Doc contains design ideas, implementation details, and manual. Helper contains nice helpers to simplify operation, including wave-helper.h/.cc. &lt;br /&gt;
* Test contains some test suits, including ocb-wifi-mac-test-suit.cc, wave-net-device-test-suit.cc.&lt;br /&gt;
* Examples contain useful examples, including simple-wave-example.c, and simple-802.11p-example.c.&lt;br /&gt;
&lt;br /&gt;
= Plan and Weekly Progress=&lt;br /&gt;
&lt;br /&gt;
Based on the GSoC 2013 timeline, there are totally 12 weeks. The following is the plan of this project (Implementation not only means source codes, but also contains relevant test suits, examples and documents):&lt;br /&gt;
* Community bonding period [status: completed]&lt;br /&gt;
Before June 17: learn Python, ns-3 coding style, read relevant ns-3 codes,talk with mentors about implementation details. &lt;br /&gt;
* Week 1/2 [status: underway]&lt;br /&gt;
June 17 – June 30: implement OcbWifiMac. &lt;br /&gt;
  a) remove deprecated 802.11p code from wifi module.&lt;br /&gt;
  b) complete a management frame header named VendorSpecificActionHeader.&lt;br /&gt;
  c) complete wifi-80211p-helper&lt;br /&gt;
  d) declare OcbWifiMac class and implement most method.&lt;br /&gt;
* Week 3/4 [status: ]&lt;br /&gt;
June 1 – July 14: implement WaveNetDevice &lt;br /&gt;
* Week 5/6 [status: ]&lt;br /&gt;
July 15 – July 28: implement SchChannelScheduler  &lt;br /&gt;
* mid-term report [status: ]&lt;br /&gt;
July 29 - August 2:submit source files including ocb-wifi-mac.h/.cc, wave-net-device.h/.cc, ocb-wifi-mac-test-suit.cc, simple-802.11p-example.cc. And submit a document about partial technical details and usage for VANET researchers and a relatively simple introduction of WAVE for other users&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
* Week 7 [status: ]&lt;br /&gt;
August 3 – August 11: implement ChannelCoordinator &lt;br /&gt;
* Week 8 [status: ]&lt;br /&gt;
August 12 – August 18: implement ChannelManager &lt;br /&gt;
* Week 9/10 [status: ]&lt;br /&gt;
August 19 – September1: implement VSARepeater &lt;br /&gt;
* Week 11 [status: ]&lt;br /&gt;
September 2 – September 8: complete documents, useful helpers&lt;br /&gt;
* Week 12 [status: ]&lt;br /&gt;
September 9 – September 15: complete some WAVE examples, system test. &lt;br /&gt;
* Final [status: ]&lt;br /&gt;
September 16 – September 23: scrub code, and improve documentation.&lt;br /&gt;
&lt;br /&gt;
= Usage =&lt;br /&gt;
= Issues =&lt;br /&gt;
== is this model going to involve vehicular mobility of some sort ==&lt;br /&gt;
Vehicular network involves not only communication protocol, but also communication environment including vehicular mobility and propagation models. Because of specific features of the latters than normal MANET, the protocols need to change. The MAC layer model&lt;br /&gt;
in this project just adopts MAC changes to vehicular environment. However this model not involves any vehicular mobility with time limit.Users can use any mobility model in ns-3, but should know these models are not real vehicular mobility. More work is need.&lt;br /&gt;
&lt;br /&gt;
== is your model going to use different propagation models ==&lt;br /&gt;
== what specifically is different about your mac other than wildcard BSSID ==&lt;br /&gt;
== are there any vehicular application models to drive the code ==&lt;br /&gt;
== any previous code you think you can leverage ==&lt;br /&gt;
= Acknowledgement =&lt;br /&gt;
Thanks for all comments from Guillaume Rémy, Lalith Suresh, Tommaso Pecorella, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
=  References =&lt;br /&gt;
&lt;br /&gt;
* [1] IEEE Std 802.11p. IEEE Standard for Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements-Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 6: Wireless Access in Vehicular Environments, 2010.&lt;br /&gt;
* [2] ns-3.Bug 945 - Revise how we provide support for vehicular communications. [Online]. Available: https://www.nsnam.org/bugzilla/show_bug.cgi?id=978.&lt;br /&gt;
* [3] ns-3.Bug 978 - Consolidate Wi-Fi MAC high functionality. [Online].Available: http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16.&lt;br /&gt;
* [4] IEEE Std 1609.4-2010. IEEE Standard for Wireless Access in Vehicular Environments (WAVE) - Multi-Channel Operation, 2010.&lt;br /&gt;
* [5] Chen Qi, Daniel Jiang, and Luca Delgrossi. &amp;quot;IEEE 1609.4 DSRC multi-channel operations and its implications on vehicle safety communications.&amp;quot;Vehicular Networking Conference (VNC), 2009 IEEE. IEEE, 2009. &lt;br /&gt;
* [6] Ghandour, Ali J., et al. &amp;quot;Modeling and simulation of WAVE1609.4-based multi-channel vehicular ad hoc networks.&amp;quot; Proceedings of the 5th International ICST Conference on Simulation Tools and Techniques. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering), 2012.&lt;/div&gt;</summary>
		<author><name>Junling</name></author>
	</entry>
</feed>