>> and if you want to understand why it's possible in Babel but not in OLSR
>> to do approximations of their metric, check the Babel draft, section
>> 2.5.2.
> I'm pretty sure it's possible with a proactive protocol like OLSR (of
> course it would require an extension in the TCs to transport the
> channels of the links).
Babel is proactive too. The difference is that OLSR is link-state,
while Babel is distance-vector.
The issue is that a metric that takes deversity into account looses
a property known as isotonicity. In a link-state protocol, you cannot
use a non-isotonic metric without persistent routing loops. Babel can
use a non-isotonic metric just fine, although in that case it is no
longer deterministic.
(In practice, this means that channel assignment will depend on the
order in which your routers boot.)
There are solutions to the isotonicity problem, but they require using
multiple routing tables. If you implement that in OLSR, I'm looking
forward to stealing your code ;-)
Juliusz