[Olsr-users] Proposed OLSR plugin to adjust nodes' TX power

Ben West (spam-protected)
Sat Jun 4 19:49:46 CEST 2011

Hi All,

In follow up to the Commotion code sprint / conference that just occurred:
... we discussed a potential OLSR plugin that would gradually turn down a
node's TX power until a minimum specified LQ was reached by one of that
node's 2-hop neighbors.

The primary use case for this plugin is to support a mesh of primarily
low-power / battery-power devices (smart phones, laptops, tablets) being
used by democratic activists as a secure and reliable communications
platform that is difficult to be controlled or cut off by authoritarian

In this use case, low TX power is ideal, as it prompts longer routes and
more hops through mesh, making the identification of a packet's source more
difficult.  Likewise, lower TX power makes a node more difficult to detect /
eavesdrop.  I understand this use case does run counter to convention, in
particular sacrificing throughput and reliability for longer routes.

Although, I would expect this plugin could be generalized to also provide
some measure of tx power vs. interference optimization in more typical

Below is a very rough, psuedo-code-ish spec for this plugin resulting from
discussion with conference attendees.  I am planning on doing a
proof-of-concept implementation of this plugin to try out in a small mesh,
and comments, suggestions, criticisms, and witticisms (especially funny
ones) are welcome.

*Functional spec:*
- Gradually turn down TX power until reachability of 2-hop neighbor degrades
below specified LQ
- Node beacons its config to 2-hop piers to tell neighbors not also turn
down their tx pwr at the same time
*Operational params:*
- minLQ (int): minimum LQ for 2-hop neighbors
- period (int): time period for TX power adjustments
- beaconCfg (bool): enable beaconing of config to neighbor nodes
- battery (bool): node running on battery?
- upCmd / downCmd (string): commands for raising / lowering TX power (a bit
hackish, but different radios may not all support iw and/or iwconfig)
- delta (int): delta for changing TX power, e.g. 1dB, 2dB
- oprhanTxPwr (int): Nominal TX power level for isolated nodes (may be 0?)
- neighborCheck (int): time period when an isolated node powers up tx to
check for new neighbors

*Edge case:*
- Battery-powered (or even wire-powered?) node with no visible neighbors
should eventually turn down (or turn off?) its transmitter.  Turn TX power
down to orphanTxPwr, and periodically power back up on interval
neighborCheck to check if a neighbor has appeared
--> collect these settings into config profiles for laptoppers to select
from desktop, e.g. lowest power, normal, max throughput

Ben West
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.olsr.org/pipermail/olsr-users/attachments/20110604/08357d6a/attachment.html>

More information about the Olsr-users mailing list