一塊兒來Fit TDMA over WiFi(3)

4 TDMA調度者

  TDMA調度者爲Fit-TDMA的決策功能體,屬於新開發功能模塊,分調度員和被調度者2種角色,其中前者運行在AP等匯聚設備上,後者運行在CPE等接入類設備上;後者必須與前者配合才能工做,而前者能夠無需後者獨立運行。算法

  TDMA調度者適宜做爲UMAC模塊的的一個子功能,LMAC層經過sc的函數指針調用TDMA功能。這樣實現能夠簡化難度、提升能效,同時也不破壞現有的驅動架構。安全

4.1  狀態機

  TDMA調度功能須要保存各終端或本身的當前狀態,不一樣狀態偵聽不一樣的事件,能夠執行不一樣的行爲,所以,須要引入FSM機制。具體的,AP側的FSM描述以下:數據結構

  一共有3種狀態:等待、活動和下線狀態。等待狀態的終端,能夠別調度到活動狀態,從而容許將報文發送到該終端;同時,活動狀態的終端在不一樣事件後,可變動爲等待狀態或下線狀態。處於下線狀態的終端,不會被調度。下線狀態主要用於LMAC層直接丟棄報文、以及TDMA調度模塊無需頻繁刪除和生產終端節點。架構

  CPE端的狀態機描述以下:函數

  一樣地,CPE側也包含3種狀態:等待、活動和下線狀態。顯然地,只有處於活動狀態,CPE才能向AP發送數據報文;在轉換爲離線狀態後,LMAC層能夠將預期發送次數超過閾值的數據報文丟棄掉,也能夠將所有數據報文都直接丟棄。指針

4.2 核心數據結構

        TDMA調度員和被調度者的核心數據結構是不區分的,具體描述以下:調試

  TDMA的核心就是發送調度,所以調度相關的邏輯結構是最核心的數據結構。在Fit TDMA中,調度鏈共有5級,其中1級爲基礎數據級,STA的信息均包含在此鏈上,爲了提升增刪效率,採用雙向鏈結構;第2級到第5級鏈的節點均包含了指向基數數據的指針,採用單向鏈結構,由於針對此類鏈的變動操做不是特別頻繁。調度時,針對每一個調度鏈,均是從頭調度到尾,而後在從更高一級的鏈頭開始調度;在L5鏈調度完畢後,再轉Sta鏈頭。這樣可實現:全部節點均能被調度到,且發送速率更快的節點,能夠得到更多的調度機會。Hash表主要用於查找,查找功能用得很是多,而鏈表的查找效率低,因此增長HASH表來提高查找速率。LMAC在ath_txq_schedule中須要查詢報文目的節點的狀態、在數據報文發送成功後更新該節點的發送速率等,均用到了查詢。blog

  關於定時器,AP端和CPE端是不一樣的,AP端只有一個主定時時間間隔,就是爲全部的終端一次調度,均分配4ms時間片,超過此時間片後,定時操做函數會當即調度下一個終端;而CPE的定時時間間隔至少有2個,長時間和短期。長時間用於等待狀態,由於沒法預知活動令牌指示什麼時候到達、或者就是活動令牌指示會未收到但又收到了AP的數據報文,因此,在等待狀態下,還須要定時來觸發檢測工做;短期週期主要用於活動態,它的主要做用就是向AP發送返回令牌,同時讓本身進入等待狀態。事件

 5 Fit TDMA效果

  在開放環境下,基於QCA9342  HT20模式,每終端跑4條流,啓用Fit TDMA功能後,ping 包時延會由1ms增長到5ms左右,單臺CPE或網卡的吞吐量依舊是93Mbps左右,上下行差距不到1M;2臺終端時,吞吐量與1臺終端相同;10臺終端時,總吞吐量下降到90Mpbs;20臺終端時,總吞吐量下降到88Mbps;32臺終端時,總吞吐量下降到84Mbps左右。而若是關閉Fit TDMA功能後,32臺終端的總吞吐量不超過75Mbps。所以,啓用Fit TDMA在多用戶場景下確實有明顯地效果。開發

  進一步地,人工造異常,在10臺終端模式下,讓其中的2臺終端摘去天線,並用金屬板蓋住,但同時又保證它能有1-2M的流量。此時,其它8臺終端的流量還能各自維持在8.5M左右,不會越跑越慢;而一旦關閉Fit TDMA,則總體吞吐量會愈來愈慢,低速終端拖慢全局流量效果很是明顯。

6 其它

  在ath_txq_schedule以及HASH查詢中,每增長一條printk打印,ping包時延會增長2-3ms,故在調試完畢後,請當即關閉此類打印;ah_txq_schedule是帶鎖運行的,不要在類函數中調用其餘帶鎖運行的函數,除非你能確認不會死鎖;最好不要在現有發送流程中再次增長鬚要調度的報文。

  CPE在啓用Fit TDMA後,未收到AP的活動令牌通知消息時,是不能向AP發送數據報文的。故最好遵循:1)AP側將新節點插入到活動調度指針的後邊,這樣保證它會被當即調度,從而能加快DHCP過程;2)CPE側在確認對端AP是支持Fit TDMA後,纔是能TDMA。

  在安全性上,爲了防止惡意第3方,AP的Fit TDMA支持信元應與AP和CPE的MAC地址相關,CPE在收到該信元后,基於AP和CPE的MAC地址,利用一樣的算法,確認信元真實可靠,才能開啓Fit TDMA。

相關文章
相關標籤/搜索