Обзор существующих Open Source решений

:!: Обзор архитектуры монолитных и тонких драйверов. Open80211s, libertas, libertas_ts. Взгляд на архитектуру: как перераспределились функции при переходе от монолитной модели к модели с модулем 80211s. Переработать, добавить (при необходимости)

Управление состояниями физической среды сети осуществляется на MAC-уровне при помощи блока MLME (MAC Layer Management Entity). MLME участвует в достижении таких целей, как:

В зависимости от того, где реализуется MLME, различают два типа драйверов сетевых карт: FullMAC и SoftMAC. FullMac сетевые карты реализуют MLME в микросхемах, SoftMAC карты реализуют управление на MAC-уровне программно.

Существует интерфейс стандарта 802.11 - это стек mac80211. Mac80211 - это API MAC-уровня под Linux для беспроводных SoftMAC драйверов. Для FullMAC драйверов данный стек не предназначен и работать с ними не может. В настоящее время стек реализует MLME для работы в режиме клиентской станции (STA) в ядре, а другую его часть - для работы в режиме точки доступа (AP) - в пространстве пользователя. В будущем планируется полный перевод функциональности в пространство пользователя.

Стек mac80211 поддерживают следующие драйверы устройств:

Кроме того, в сентябре 2008 года Nokia опубликовала новый драйвер stlc45xx, основанный на интерфейсе mac80211, для устройств Nokia N800 and N810.

Стек поддерживает следующие функции:

Открытой реализацией последней версии черновика 802.11s является open80211s, основанный на стеке mac80211. Причем данная открытая реализация вошла в один из последних выпусков ядра Linux - версию 2.6.26.

Теперь для разработки совместимых mesh-устройств разными производителями достаточно реализовать низкоуровневый драйвер для управления самим устройством с ориентировкой на использование open80211s.

Примером FullMAC драйвера может служить Libertas, используемый в частности в OLPC XO для организации mesh-сети. Libertas - кодовое имя серии чипсетов Marvel 88w838X. В OLPC XO используется версия 88w8388 (версия внутреннего процессора) с передатчиком 88w8015 rf. Данный драйвер был разработан под более старую версию черновика. В силу своих отличий в интерфейсе от mac80211, данный драйвер не сможет взаимодействовать с последними и новыми mesh-драйверами. Он реализует MAC, PHY-уровни управления и управляет самим частотным каналом. Детские ноутбуки OLPC XO могут организовать mesh-сеть только между собой и не могут вступить в гетерогенную сеть. Однако в новом 2.6.27 Linux ядре появилась SoftMAC версия драйвера - Libertas_tf - драйвер PHY-уровня и среды передачи.