當SS成功的收到UL MAP,並且正確的處裡它後,SS會執行init_ranging().以下將會敘述init_ranging()的流程---
Step1. 產生ulsubframe & dlsubframe,接著判斷substate是否為HANDOVER且判斷是否有收到DCD message, 若是符合條件則執行process_ranging_rsp().
Step2. 若是沒有符合step1.的條件,則會依序取得UL的各pdu,並且經由pdu取得burst.再判斷burst的IUC, ExtendedIUC以及FastRangingMacAddr是否分別為UIUC_EXT_UIUC, UIUC_FAST_RANGING與mac_->addr(),若是的話,則會取出一packet,並且設其id為INITIAL_RANGING_CID (預設為BROADCAST_CID),並產生一ranging frame,設定它的type為 MAC_RNG_REQ, Channel ID存入dc_id, ss_mac_address為SS的address, 設定傳輸時間,最後將Mac的state設為MAC802_16_WAIT_RNG_RSP.
Step3. 依序取得UL的各pud,並且經由pdu取得burst.再判斷burst的IUC是否為UIUC_INITIAL_RANGING, 若是的話取packet,並將其id設為INITIAL_RANGING_CID,後續的動作與Step2後半段相同. (觀察TCL所run出來的結果,一開始SS都是執行Step3.)
End~~
沒有留言:
張貼留言