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

名称

ieee80211_inputソフトウェア 802.11 スタック入力関数

書式

#include < net80211/ieee80211_var.h>

void
ieee80211_input( struct ieee80211_node *, struct mbuf *, int rssi, int noise);

void
ieee80211_input_all( struct ieee80211com *, struct mbuf *, int rssi, int noise);

解説

802.11 デバイスドライバをサポートする net80211 レイヤは、単一のスレッドとなる処理を受信する必要があります。通常、これは、専用ドライバ taskqueue(9) スレッドを使用して行われます。 ieee80211_input() と ieee80211_input_all() プロセスは、802.11 フレームを受信し、そのコンテキストで使用するように設計されています。例えば、ドライバのロックは、保持されていません。

mbuf で落されたフレームには、前部に 802.11 プロトコルヘッダがなければなりません。すべてのデバイス特有の情報および PLCP は、削除されなければなりません。任意の CRC は、フレームの終りから取り除かれなければなりません。 802.11 プロトコルヘッダは、最適な性能のために 32 ビットで整列されるべきですが、受信処理は、それを必要としません。フレームがペイロード (パケットの本体) を保持し、それが 32 ビットの境界に整列されないなら、ペイロードは、 ip(4) のような、プロトコルによって処理に適しているように、再整列されます。

( ath(4) のような) デバイスが、32 ビットの境界にペイロードを整列するために 802.11 ヘッダの後に詰め物を挿入するなら、 IEEE80211_C_DATAPAD ケーパビリティが設定されなければなりません。そうでなければ、ヘッダとペイロードは、 mbuf チェーンで連続していると想定されます。

受信されるフレームが A-MPDU 受信再順序付けバッファに渡されるなら、mbuf は、 M_AMPDU フラグでマークされなければなりません。さしあたり、これは、A-MPDU 集合だけではなく、ステーションから受信されたすべてのフレームと Block ACK ストリームが活発である TID が必要であることに注意してください。ステーションのノードテーブルエントリの ni_flagsIEEE80211_NODE_HT のためにチェックすることために十分で、再順序付け処理が要求されない任意のフレームが、最小のオーバヘッドのみでディスパッチされます。

rssi パラメータは、ノイズフロア (noise floor) と相対的な 0.5dBm 単位で測定されたフレームの Receive Signal Strength Indication です。 noise パラメータは、フレームが受信された時点で dBm 単位のノイズフロアの最良の近似値です。 RSSI とノイズは、ステーションモードで判定されるスキャンとローミングを行うために、および hostap と同様のモードのための自動チャネル選択を行うために net80211 レイヤよって使用されます。そうでなければ、値は、(最後の 10 の値とノイズフロアの最後に報告された値を超えるフィルタリングされた平均として存在している rssi がある) ユーザアプリケーションで利用可能となります

関連項目

ieee80211(9)
August 4, 2009 FreeBSD