EN JA
IEEE80211_BEACON(9)
IEEE80211_BEACON(9) FreeBSD Kernel Developer's Manual IEEE80211_BEACON(9)

名称

ieee80211_beacon802.11 ビーコンサポート

書式

#include < net80211/ieee80211_var.h>


struct mbuf *
ieee80211_beacon_alloc( struct ieee80211_node *, struct ieee80211_beacon_offsets *);

int
ieee80211_beacon_update( struct ieee80211_node *, struct ieee80211_beacon_offsets *, struct mbuf *, int mcast);

void
ieee80211_beacon_notify( struct ieee80211vap *, int what);

解説

net80211 ソフトウェアレイヤは、hostap、adhoc と mesh オペレーティングモードで転送されるビーコンフレームの動的な更新のためのテンプレートベースのメカニズムを含んでいるドライバのためのサポートフレームワークを提供しています。ドライバは、初期のビーコンフレームを作成するために ieee80211_beacon_alloc() を使用するべきです。 ieee80211_beacon_offsets 構造は、 ieee80211_beacon_update() と共に行われた更新を最適化するために使用されるビーコンの内容に関する情報を保持しています。

更新呼び出しは、なにか、ビーコンフレームの内容に影響する変更があるときのみ行われるべきです。これが起こるとき、 iv_update_beacon メソッドが呼び出され、ドライバによって供給されたルーチンは、正しいことを行わなければなりません。各ビーコンフレームを転送するためにホストを必要とするデバイスに関して、この作業は、 ieee80211_beacon_offsets 構造にビットをマークするのと同じくらい簡単です:

static void 
ath_beacon_update(struct ieee80211vap *vap, int item) 
{ 
        struct ieee80211_beacon_offsets *bo = &ATH_VAP(vap)->av_boff; 
 setbit(bo->bo_flags, item); 
}

ieee80211_beacon_update() 呼び出しで、次のビーコンが送信される前に行われます。

ビーコンの生成を押しつけるデバイスは、直ちにデバイスへの更新を進めるために代わりにこのコールバックを使用することを選ぶかもしれません。正確にどのように達成されるかは、不特定です。 1 つの可能性は、ビーコンフレームの内容を更新して、適切な情報要素を抜粋することですが、他のシナリオは、可能です。

複数の VAP ビーコンのスケジューリング

各ビーコンとなることができる複数の vap をサポートするドライバは、ビーコンフレームをスケジュールする方法を考慮する必要があります。現在のところ、2 つの可能性があります: TBTT のすべてのビーコン、またはビーコン間隔を超えて ふらつくビーコンバースト します。バーストしているビーコンフレームは、関連ステーションの電源節約操作に影響するするかもしれない非周期的の配信の結果となります。いくつかの jitter を適用することは、(例えば、ランダムにバーストフレームを順序付ける) これと戦うために十分で、ステーションが、(時々 VoIP フォン (電話) によって使われる) U-APSD のようなテクニックを保存する積極的な電源節約を使用しなければ、通常、これは、発行されません。ふらつくフレームは、より多くの割り込みと利用可能でないデバイスのサポートを必要とします。通常、ふらつくビーコンフレームは、オーバヘッドが深刻となり、チャネルが、とにかく著しくビジーになるポイントで最大約 8 vap のバーストフレームより通常優れています。

関連項目

ieee80211(9)
August 4, 2009 FreeBSD