Skip to content

IEEE 802.11p DSRC Wireless Model

The IEEE 802.11p DSRC module implements the physical layer and Medium Access Control (MAC) layer of Dedicated Short-Range Communications (DSRC) / ITS-G5 over 10 MHz channels in the 5.9 GHz ITS band.

It provides high-fidelity parity with ns-3 v3.42 and OMNeT++ Veins 5.2.


1. Physical Layer (PHY) Models

The PHY model simulates radio wave propagation, obstacle attenuation, diffraction around occluding corners, cumulative interference, and frame error decoding.

1.1. Dual-Slope Log-Distance Path Loss

In vehicular environments, radio waves reflect off ground asphalt and roadside barriers, producing a distinct two-slope path loss curve with a characteristic breakpoint distance.

Implemented in DualSlopePathLoss:

  • Carrier Frequency: \(f_c = 5.9\,\text{GHz}\).
  • Reference Loss at \(d_0 = 1\,\text{m}\):

$\(PL_0 = 20 \log_{10}\left(\frac{4 \pi \cdot 1.0 \cdot f_c}{c}\right) \approx 47.85\,\text{dB}\)$

  • Breakpoint Distance (\(d_{break}\)): \(120.0\,\text{m}\).
  • Near-field Path Loss Exponent (\(\gamma_1\)): \(2.05\).
  • Far-field Path Loss Exponent (\(\gamma_2\)): \(3.90\).
\[\text{PL}_{det}(d) = \begin{cases} PL_0 + 10 \gamma_1 \log_{10}(d), & d \le d_{break} \\ PL_0 + 10 \gamma_1 \log_{10}(d_{break}) + 10 \gamma_2 \log_{10}\left(\frac{d}{d_{break}}\right), & d > d_{break} \end{cases}\]

1.2. Log-Normal Shadow Fading

Log-normal shadow fading models slow signal variations caused by foliage and topography:

\[X_\sigma \sim \mathcal{N}(0, \sigma^2)\]
  • Line-of-Sight (\(\text{LoS}\)): \(\sigma_{LoS} = 3.1\,\text{dB}\).
  • Non-Line-of-Sight (\(\text{NLoS}\)): \(\sigma_{NLoS} = 8.3\,\text{dB}\).

1.3. Building Obstacle Penetration Attenuation

Using the building polygons parsed from SUMO or OpenStreetMap (osm.poly.xml), the engine performs 2D ray-casting:

  • Calculates the total internal distance \(d_{pen}\) traversed through concrete walls.
  • Attenuation: \(0.85\,\text{dB/m}\) up to a maximum cap of \(45.0\,\text{dB}\):

$\(\text{PL}_{pen} = \min(d_{pen} \times 0.85\,\text{dB/m}, 45.0\,\text{dB})\)$

1.4. ITU-R P.526 Knife-Edge Corner Diffraction

When buildings occlude the direct line of sight between two vehicles, radio signals diffract around the closest building corner.

Implemented in FresnelKnifeEdge:

  1. Fresnel-Kirchhoff Parameter \(\nu\):

$\(\nu = h \sqrt{\frac{2(d_1 + d_2)}{\lambda d_1 d_2}}\)$

where \(h\) is the clearance height, \(\lambda = c / f_c \approx 0.0508\,\text{m}\), and \(d_1, d_2\) are the distances from transmitter and receiver to the corner vertex. 2. Diffraction Loss \(J(\nu)\):

$\(J(\nu) = \begin{cases} 0\,\text{dB}, & \nu \le -0.78 \\ \left[ 6.9 + 20 \log_{10}\left(\sqrt{(\nu - 0.1)^2 + 1} + \nu - 0.1\right) \right]_{0}^{45\,\text{dB}}, & \nu > -0.78 \end{cases}\)$

\[\text{Received Power: } P_{rx} = P_{tx} - (\text{PL}_{det}(d) + X_\sigma + \text{PL}_{pen} + J(\nu))\]

2. Interference Tracking & Reception Decider

Implemented in CumulativeInterferenceTracker, providing strict architectural equivalence to ns-3 v3.42 InterferenceHelper:

2.1. Piecewise Constant SINR Chunking

A packet reception interval \([t_{start}, t_{end}]\) is sliced into distinct temporal chunks at every boundary where concurrent interferers start or stop transmitting:

  • In each chunk \(i\), total interference power \(I_i\) is summed in linear Watts:

$\(I_i = \sum_{j \in \text{active interferers}} P_{rx, j}(t_{mid})\)$

$\(\text{SINR}_i = \frac{P_{rx, desired}}{I_i + N_0}\)$

(where thermal noise floor \(N_0 = -99.0\,\text{dBm} \approx 1.259 \times 10^{-13}\,\text{W}\)).

2.2. Receiver Capture Effect (\(\gamma_{cap} = 4.0\,\text{dB}\))

If interfering signals overlap with the desired packet:

  • Evaluates the Signal-to-Interference Ratio: \(\text{SIR}_i = \frac{P_{rx, desired}}{I_i}\).
  • Destructive collision: If \(\text{SIR}_i < 4.0\,\text{dB}\) and \(\text{SINR}_i < 6.0\,\text{dB}\), capture fails and the packet is lost (\(\text{PSR} = 0\)).
  • Successful capture: If \(\text{SIR}_i \ge 4.0\,\text{dB}\), the receiver locks onto the desired signal despite the simultaneous interferer.

2.3. Analytical Packet Error Rate (PER) Curve

For each chunk, the PER for IEEE 802.11p OFDM 6 Mbps (QPSK 1/2 with convolutional coding) is computed using the ns-3 NistErrorRateModel logistic curve:

\[\text{PER}_i(\text{SINR}_i) = \begin{cases} 1.0, & \text{SINR}_{i,\text{dB}} < 2.0\,\text{dB} \\ 0.0, & \text{SINR}_{i,\text{dB}} > 12.0\,\text{dB} \\ \min\left(1.0, \frac{1}{1 + \exp\left(1.6 (\text{SINR}_{i,\text{dB}} - 5.5)\right)} \times \text{clamp}\left(\frac{L_{bytes}}{300}, 0.5, 3.0\right)\right), & 2.0 \le \text{SINR}_{i,\text{dB}} \le 12.0 \end{cases}\]

The total Packet Success Rate is the product across all chunks:

\[\text{PSR} = \prod_i (1 - \text{PER}_i)\]

3. MAC Layer & EDCA Contention

Implemented in EdcaChannelAccess according to IEEE 802.11-2016 / 802.11p:

3.1. 4 Access Categories (EDCA ACs)

Access Category Constant Traffic Type \(AIFSN\) \(CW_{min}\) \(CW_{max}\)
VoiceSafety AC_VO (0) Emergency / High-Priority Safety (DENM) 2 3 7
Video AC_VI (1) High-throughput video / sensor sharing 3 7 15
BestEffort AC_BE (2) Standard periodic Cooperative Awareness (CAM) 6 15 1023
Background AC_BK (3) Non-safety background telemetry 9 15 1023

3.2. Timing Parameters

  • Slot Time (\(\sigma\)): \(13\,\mu\text{s}\).
  • SIFS: \(32\,\mu\text{s}\).
  • AIFS: \(AIFS[AC] = SIFS + AIFSN[AC] \times \sigma\).
  • Backoff Delay: \(AIFS[AC] + \text{UniformRandom}(0, CW) \times \sigma\).
  • Air Duration: \(40\,\mu\text{s} + \lceil(16 + 8 L_{bytes} + 6)/24\rceil \times 8\,\mu\text{s}\) at 6 Mbps.

3.3. Internal Contention Resolution

When multiple queues within the same node have frames ready at the same time:

\[\text{VoiceSafety} > \text{Video} > \text{BestEffort} > \text{Background}\]

The winning queue transmits. Subordinate colliding queues double their contention window (\(CW \leftarrow \min(2 \times CW + 1, CW_{max})\)) and re-enter backoff.

3.4. Channel Monitor (CBR) & DCC

ChannelMonitor calculates the true union of channel busy intervals over a sliding \(100\,\text{ms}\) window:

\[\text{CBR} = \frac{T_{busy}}{100\,\text{ms}} \in [0.0, 1.0]\]

The measured CBR is fed every 100 ms into Decentralized Congestion Control (DCC Reactive FSM or LIMERIC) to regulate CAM generation intervals (\(T_{off}\)).