メイン Link (MAC) Layer Protocol Implementation & Model Development チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | uzushio | 2007/9/1 21:18 |
» Re: チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | ipoten | 2007/9/5 19:20 |
Re: チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | uzushio | 2007/9/7 13:55 |
Re: チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | ipoten | 2007/9/7 17:35 |
Re: チャネルを切り替えた後PhyStatusがPHY_IDLEにならない | uzushio | 2007/9/13 15:22 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
ipoten | 投稿日時: 2007/9/5 19:20 |
一人前 登録日: 2005/7/12 居住地: 投稿: 102 |
Re: チャネルを切り替えた後PhyStatusがPHY_IDLEにならない こんにちは
#改造コードのデバッグに関する投稿だと、説明するのも回答するのも厳しいものがありますね。 #地道にデバッグするしかなさそうですが。 PhyStatusがPHY_IDLEにならない理由として考えられるもの: 1.周りのノードが電波を出し続けている 2.チャネルマスクの設定が悪く、自送信信号を受信して(?)変なループに入っている 3.干渉量interferencePower_mWの値がSignalEnd時の減算処理されず、常にキャリアセンスのしきい値rxSensitivity_mWを上回っている 「1」だとすると、いただいた説明だけではお手上げです。 「2」は可能性としては捨てきれないですが、どこかでアサーションに引っかかりそうな気もします。またQualNetのアーキテクチャ上、送信信号を自ノードが受信できるのか不明です。 「3」が一番可能性が高そうなので、以下はその可能性について一例を示します。 PHYモデルの使用状況が分からないので、以下の前提を立てます。 * PHY-MODELはPHY802.11a/bを使用あるいは流用・改造している * PHY-MODELのソースコードについて、ある程度内容を把握している * PHYレイヤ管理変数(802.11だとPhyData802_11構造体)はインタフェースごと(phyIndexごと)にしか管理しておらず、チャネルごとには管理していない PHYにおいて、たとえばあるチャネルで何らかの干渉波の信号を受信途中で、interferencePower_mWに値が入っていたとします。 その干渉波信号のSignalEndイベントが発生する前にチャネルを切り替えたとすると、 チャネルマスクの設定により受信中の干渉波のSignalEndイベントがおそらくあがらなくて、interferencePower_mWは減算されないことがあるかもしれません。 切り替え先のチャネルで新たな干渉波を受信したときに、interferencePower_mWに値が加算されてしまいます。 クリアされなかったinterferencePower_mWの値がキャリアセンスのしきい値rxSensitivity_mWを上回っていたとすると、 PhyStatusがいつまでもPHY_IDLEにならないということになります。 interferencePower_mWに限らず、構造体PhyData802_11のメンバ変数のうちチャネル切り替えに影響するものは、 チャネル切り替え時に整合を取るか、チャネルごとに独立に管理する必要があるのではないでしょうか。 |
フラット表示 | 前のトピック | 次のトピック |