收到DCD 要作 signal判斷,決定是否要啟動handoff 或是 從無bs 服務 換到有bs服務
if(BsMac != -1 && mac->macSA() == BsMac && hdr->signal < T_signal)
{ if(SearchScanning_link(NodeID))
SearchScanning_link(NodeID)->scan = true;
else
CreateScanning_link(NodeID)->scan = true;
}
if(mac->macSA() == BsMac)
BsSignal = hdr->signal;
else if((mac->macSA() != BsMac && hdr->signal > BsSignal) || BsMac == -1) {
printf("Change BS to bs%d with signal %e,%e\n",mac->macSA(),hdr->signal,BsSignal);
BsMac = mac->macSA();
BsSignal = hdr->signal;
}
要作handoff之前,ss 需要去掃描目前可用的bs訊號
為了簡化這過程, 可以設計一個 global link,去紀錄每個ss現在是否在找尋新的bs訊號
這樣bs每次要傳送資料給ss之前,可以先查這個link ,看看該ss是否在找新的訊號
而ss部份,當進入找新訊號的階段時,每次接到ULMAP就丟掉,這樣就可以不用傳資料了
或許有queuing time問題,這個要等測試後才能確定
BS_Arr[]
BS 可以不用固定是某些數的倍數
可以使用上面這個array,先輸入哪些node 要成為BS
搜尋DlBurstProfile_head;的時候 目前要先固定搜尋BS 0,因為還沒有加入讓ss可以判斷使用那一個bs的功能
各種新建的head,tail
SsServiceFlow_link *SsSF_link_head;
SsServiceFlow_link *SsSF_link_tail;
BsSsInfo_link *BsSsInfo_link_head;
BsSsInfo_link *BsSsInfo_link_tail;
BsServiceFlow_link *BsSF_link_head;
BsServiceFlow_link *BsSF_link_tail;
DownlinkBurstProfile_link *DownlinkBurstProfile_link_head;
DownlinkBurstProfile_link *DownlinkBurstProfile_link_tail;
UplinkBurstProfile_link *UplinkBurstProfile_link_head;
UplinkBurstProfile_link *UplinkBurstProfile_link_tail;
UlMapIe_link *UlMapIe_link_head;
UlMapIe_link *UlMapIe_link_tail;
DlMapIe_link *DlMapIe_link_head;
DlMapIe_link *DlMapIe_link_tail;
AllocationStartTime_link *AllocationStartTime_link_head;
AllocationStartTime_link *AllocationStartTime_link_tail;
DlAvailSymbol_link *DlAvailSymbol_link_head;
DlAvailSymbol_link *DlAvailSymbol_link_tail;
UlAvailSymbol_link *UlAvailSymbol_link_head;
UlAvailSymbol_link *UlAvailSymbol_link_tail;
UlMapIeNum_link *UlMapIeNum_link_head;
UlMapIeNum_link *UlMapIeNum_link_tail;
DlMapIeNum_link *DlMapIeNum_link_head;
DlMapIeNum_link *DlMapIeNum_link_tail;
sendDSA-REQ :
不能讓BS 送給BS
目前先讓BS不能送出任何DSA-REQ
ULMAP 和DLMAP都需要每個BS建立一份
所以使用link list來存
SS在找尋ULMAP OR DLMAP時 需要確認現在要跟那一個BS通訊(未開發)
Mac802_16() : 裡面有一個 frameTimer.start(Bs_Counter*0.1); 這個原本是zero,但因為每個BS如果用同一個時間 ,將會造成行程大亂,所以要丟不同的值
FrameNumber_Counter 在2.02版裡面 因為只有一個BS 所以他只有一個FrameNumber_Counter
但是因為現在有多個BS,所以FrameNumber_Counter變成一個BS擁有自己一個
FrameNumber_Counter改為structure ,用link list串起來
BsID 改為 mac addr為2倍數都是Bs (0,2,4......)
沒有留言:
張貼留言