多分間違ってる
Phy/WirelessPhy set bandwidth_ 54Mb # 54 Mbps bandwidth(物理層帯域幅) Mac/802_11 set dataRate_ 54Mb # 54 Mbps for data(MAC層ユニキャスト) Mac/802_11 set basicRate_ 54Mb # 54 Mbps for broadcasts(MAC層ブロードキャスト時)
802.11gの設定(メーリングリストから抜粋)
あってる保証無し
#define DSSS_CWMin 15 #define DSSS_CWMax 1023 #define DSSS_SlotTime 0.000009 // 9us #define DSSS_CCATime 0.000004 // 4us #define DSSS_RxTxTurnaroundTime 0.000005 // 5us #define DSSS_SIFSTime 0.000010 // 10us #define DSSS_PreambleLength 96 // 96 bits or 120 bits #define DSSS_PLCPHeaderLength 24 // 4 us #define DSSS_PLCPDataRate 6.0e6 // 6Mbps #define DSSS_MaxPropagationDelay 0.0000005 // 0.5us
これをどうやってスクリプトに組み込むか?
802.11のMAC層を定義しているファイルの中身(/mac/mac-802_11.h)
802.11のMAC層を定義しているファイルの中身(/mac/mac-802_11.h)
#define DSSS_CWMin 31 #define DSSS_CWMax 1023 #define DSSS_SlotTime 0.000020 // 20us #define DSSS_CCATime 0.000015 // 15us #define DSSS_RxTxTurnaroundTime 0.000005 // 5us #define DSSS_SIFSTime 0.000010 // 10us #define DSSS_PreambleLength 144 // 144 bits #define DSSS_PLCPHeaderLength 48 // 48 bits #define DSSS_PLCPDataRate 1.0e6 // 1Mbps #define DSSS_MaxPropagationDelay 0.000002 // 2us
を書きかえるのかも・・・?
チャネルの分割(3つのチャネルに分割)
オプションの設定で
set val(chan) Channel/WirelessChannel ※このまま”node-config”で”-channel $val(chan)”とやると警告がでる 結果には影響ないけど警告の対策も含めて以下のように宣言を変える
set chan_1 [new $val(chan)] set chan_2 [new $val(chan)] set chan_3 [new $val(chan)] ↑で3つのチャネルを宣言(chan_1~3) それぞれのチャネルを割り当てたいノードごとに node-config -channel chan_1 $ns_ node ~ node-config -channel chan_2 $ns_ node ~ node-config -channel chan_3 $ns_ node ~ のようにやるとエラーも出ないし、それぞれのノードに別々のチャネルを割り当てられる