recv()
這個函數 裡面分成兩大部份運作: 從下層收到的封包,從上層收到的封包
ModulCoding = CalMod->search(NodeID)->ToMod(CalMod->search(0)->x,CalMod->search(0)->y);
這是用來呼叫function 去計算 SS 跟BS之間的距離 進而得知 要使用哪一種編碼
index_ : 是 ns2 裡面原本的mac.h 的變數 是代表MAC address
node id = 0 的Node 就是 BS ,需要作修改
可以用簡單的方式 就是 寫死 固定 二的倍數 或是三的倍數都是BS
複雜方式 就是要MAC 去認得誰是 BS 和 SS 這個方式比較花時間
BCID 是依照 BS 收到RNGREQ 的順序來分配
從 1 開始分配 一次增加一
SS編號是依據 在TCL上面建立node順序來分配
從 1 開始分配 一次增加一
if(creatid == 0) BS編號固定為zero ,為了要改成802.16e 需要讓mac認得多個BS
目前最簡單的方式就是讓BS編號 都為 2的倍數
{
if(channelSize_ == 10)
{
DL_subchannelNum_ = 30;
UL_subchannelNum_ = 35;
}
else if(channelSize_ == 20)
{
DL_subchannelNum_ = 60;
UL_subchannelNum_ = 92;
}
BS_UL_BW = UL_subchannelNum_;
BS_DL_BW = DL_symbolNum_;
Tmp_UL_BW = CAC_UL = BS_UL_BW;
FrameTimer.start(0);
}
if(creatid!=BSID) 因為設定成2倍數的node id 都是 BS 所以這邊要改成 creatid 不是2倍數
{
if(check_list->check(creatid)==0)
{
check_list->enque(creatid);
check_list->unlock(creatid);
ss_buf->enque(creatid);
Queue_list->enque(creatid);
sendRNGREQ(creatid);
}
}
沒有留言:
張貼留言