Posts Tagged modelchecking

Bug in Mac80211 in MiXiM post-backoff

Posted by on Friday, 16 December, 2011

Post-backoff was introduced into IEEE 802.11 to make sure that a station could not claim the channel by noting that the channel was idle after its own transmission, and then immediately transmit again. The idea is quite simple; transmission over -> pull a backoff from the contention window and count down (respecting the same rules w.r.t. carrier sense and inter-frame spacing etc.) and finally end up in the idle state. If a new packet was handed down by the network layer during post-backoff, the countdown would continue and result in a transmission. This behaviour is also implemented in MiXiM’s Mac80211 (and prior to that in the Mobility Framework). However, there’s a bug. Read the rest of this entry »

Bug in Mac80211 in MiXiM backoff when channel busy

Posted by on Thursday, 15 December, 2011

This post describes a bug in MiXiM’s Mac80211 which seems to be a fundamental error: when the MAC gets a packet from the Netw and the channel is busy, it schedules a senseChannelWhileIdle(currentIFS + remainingBackoff) after the ongoing transmission ends. Unfortunately, remainingBackoff is often 0 as post-backoff is likely to have completed. The result? Many synchronised collisions one IFS after the ongoing transmission. Read the rest of this entry »

Getting grip on eventlogs in OMNeT++

Posted by on Monday, 12 December, 2011

OMNeT++ simulations can export an eventlog. Though the manual is pretty complete about it, I’ll summarise it here. Read the rest of this entry »

Simulation: event-bounded VS time-bounded termination

Posted by on Tuesday, 29 November, 2011

Doing discrete event (network) simulations; which termination criterion do you use? This article concerns OMNeT++/MiXiM but could easily be generalised. Read the rest of this entry »

Matlab: foreach element in array; do something.

Posted by on Thursday, 27 October, 2011

If you have your data in an array (or matrix for that matter) and want to perform operations on it, most programming languages have foreach statement which lets you easily iterate all values. Matlab, actually, does not differ much. Read the rest of this entry »