0731-84728105
15116127200
基于(yú)FAST的(de)TSN交換(3)TSN循環隊列轉發(CQF)原理
發布時(shí)間:2019-1-15
     CQF爲(wéi / wèi)了(le/liǎo)支持确定性的(de)交換,TSN對802.1Q-2014标準進行了(le/liǎo)擴充。其中單流過濾和(hé / huò)管控機制(PSFP)中的(de)時(shí)間門控邏輯控制了(le/liǎo)時(shí)間敏感分組進入緩存隊列的(de)時(shí)間,而(ér)時(shí)間敏感流增強調度(EST)機制中的(de)輸出(chū)門控機制控制了(le/liǎo)分組離開輸出(chū)隊列的(de)時(shí)間。基于(yú)對PSFP和(hé / huò)EST機制的(de)不(bù)同配置,TSN交換機可以(yǐ)實現多樣的(de)确定性轉發,滿足不(bù)同場景的(de)需求。
     CQF是(shì)802.1Qch定義的(de)一種對PSPF和(hé / huò)EST機制的(de)配置,可以(yǐ)通過簡單的(de)計算實現确定性的(de)轉發延時(shí)。CQF也(yě)是(shì)目前TSN規範中确定的(de)唯一配置方式。
一、CQF工作原理
      盡管對PSFP和(hé / huò)ETS功能進行不(bù)同的(de)配置可以(yǐ)實現不(bù)同的(de)TSN控制,但CQF是(shì)目前TSN規範中給出(chū)的(de)唯一一個(gè)實現模型,其最大(dà)特點是(shì)計算和(hé / huò)配置簡單,可以(yǐ)保證分組端到(dào)端交換的(de)确定性延時(shí)。
   (1)延時(shí)保證
      CQF模型将全網時(shí)間劃分爲(wéi / wèi)長度爲(wéi / wèi)d的(de)連續時(shí)間槽,用i,i+1…,i+N表示,若交換機S0在(zài)時(shí)間槽i中的(de)t1時(shí)刻從鏈路上(shàng)接收到(dào)數據幀p,則必須在(zài)i+1時(shí)間槽中的(de)某個(gè)時(shí)刻t2輸出(chū)到(dào)鏈路上(shàng),如下圖所示。

圖1 CQF對交換機轉發延時(shí)的(de)要(yào / yāo)求
     假設t1和(hé / huò)t2可在(zài)時(shí)間槽i和(hé / huò)i+1中任意分布,因此幀p經S0交換的(de)延時(shí)t2-t1上(shàng)限爲(wéi / wèi)2d,下限爲(wéi / wèi)0。同理,交換機S1必須在(zài)時(shí)間槽i+2中的(de)某個(gè)點t3完成交換并輸出(chū)到(dào)鏈路上(shàng),因此p經S0和(hé / huò)S1交換機的(de)延時(shí)t3-t1最大(dà)爲(wéi / wèi)3d,最小爲(wéi / wèi)d。更爲(wéi / wèi)一般的(de),基于(yú)CQF模型,幀p在(zài)網絡中交換的(de)最大(dà)延時(shí)爲(wéi / wèi)(h+1)*d,最小延時(shí)爲(wéi / wèi)(h-1)*d,其中h爲(wéi / wèi)傳輸路徑跳數。
   (2)時(shí)間敏感幀的(de)處理      支持CQF模型的(de)交換機隻要(yào / yāo)在(zài)輸出(chū)端口爲(wéi / wèi)時(shí)間敏感幀設置兩個(gè)由時(shí)間門控制的(de)隊列Q0和(hé / huò)Q1。偶數時(shí)間槽,隊列Q0保存輸入端口接收的(de)幀(接收模式,不(bù)發送幀),同時(shí)隊列Q1發送在(zài)上(shàng)一個(gè)奇數時(shí)間槽緩存的(de)數據幀(發送模式,不(bù)接收幀);奇數時(shí)間槽,兩個(gè)隊列的(de)操作正好相反。因此,兩個(gè)隊列循環的(de)進行分組緩存和(hé / huò)調度輸出(chū)操作,這(zhè)也(yě)是(shì)CQF名稱的(de)來(lái)由。

圖2 CQF定義的(de)循環隊列結構及工作原理
      針對CQF轉發模型,PSFP和(hé / huò)EST機制定義的(de)輸入門控表和(hé / huò)輸出(chū)門控表示如圖所示。在(zài)偶數時(shí)間槽,按照T0表項定義的(de)動作執行,在(zài)奇數時(shí)間槽,按照T1表項定義的(de)動作執行,具體操作如下表所示。
     顯然,根據上(shàng)面操作,每個(gè)時(shí)間敏感分組在(zài)交換中的(de)延時(shí)不(bù)超過2個(gè)時(shí)間槽。當然設備間時(shí)間同步精度,非時(shí)間敏感幀傳輸占用輸出(chū)鏈路對時(shí)間敏感幀的(de)幹擾,鏈路上(shàng)分配的(de)時(shí)間敏感業務量大(dà)小等因素都會對CQF模型中時(shí)間槽大(dà)小,Q0/Q1隊列長度等參數的(de)選擇有影響,具體分析我們在(zài)後續文章中給出(chū)。
二、支持CQF的(de)交換機輸出(chū)接口模型
   (1)隊列模型和(hé / huò)入隊出(chū)隊控制      交換機每個(gè)輸出(chū)接口除了(le/liǎo)時(shí)間敏感流量外,還有其他(tā)非時(shí)間敏感流量,如best effort流量,帶寬預約流量等。爲(wéi / wèi)此,802.1Q-2014 的(de)Annex I(Priority and drop precedence)定義了(le/liǎo)8個(gè)優先級隊列,分别緩存不(bù)同類型和(hé / huò)優先級的(de)流量,其中Q7的(de)優先級最高,其次是(shì)Q6,Q5…,優先級最低的(de)是(shì)Q1。802.1Q-2014規範中解釋了(le/liǎo)Q0優先級高于(yú)Q1的(de)原因。主要(yào / yāo)是(shì)網卡默認發出(chū)的(de)best effort流量采用默認優先級0,對應Q0,而(ér)Q1用于(yú)存儲優先級最低的(de)背景流量,因此Q1的(de)調度優先級低于(yú)Q0。
      爲(wéi / wèi)支持CQF模型,可将其中的(de)兩個(gè)最高優先級隊列Q7和(hé / huò)Q6設置緩存時(shí)間敏感流量。此時(shí)的(de)交換機輸出(chū)接口模型如下圖所示。

圖3 支持CQF的(de)交換機輸出(chū)接口模型
      由上(shàng)圖可以(yǐ)看出(chū)以(yǐ)下幾點。
      一是(shì)優先級最高的(de)Q7和(hé / huò)第二高的(de)Q6隊列用于(yú)存儲時(shí)間敏感流,而(ér)且隻有這(zhè)兩個(gè)隊列需要(yào / yāo)入隊和(hé / huò)出(chū)隊的(de)時(shí)間門控機制。由于(yú)不(bù)同的(de)時(shí)間敏感流數據可能具有不(bù)同的(de)發送周期(例如第一個(gè)流的(de)周期時(shí)125us,第二個(gè)流的(de)周期是(shì)250us),因此入隊控制需要(yào / yāo)不(bù)同的(de)門控邏輯。
      二是(shì)Q5,Q4和(hé / huò)Q3保存預約帶寬的(de)非時(shí)間敏感流量,其中Q5和(hé / huò)Q4分别保存延時(shí)受限的(de)音頻和(hé / huò)視頻流,因此調度優先級比Q3要(yào / yāo)高。對于(yú)這(zhè)些流量,在(zài)入隊控制時(shí)需要(yào / yāo)增加流量測量邏輯,避免由于(yú)來(lái)自多個(gè)輸入端口的(de)多個(gè)單流彙聚後的(de)流量超過輸出(chū)接口預約的(de)流量,同時(shí)在(zài)出(chū)隊需要(yào / yāo)增加整型邏輯,減小流量的(de)突發。
      三是(shì)進出(chū)三個(gè)低優先級隊列Q2,Q0和(hé / huò)Q1的(de)流量沒有任何控制。當然,在(zài)隊列将滿時(shí),隊列管理邏輯會根據一定的(de)算法選擇分組丢棄。由于(yú)優先級低,這(zhè)幾個(gè)隊列的(de)流量也(yě)不(bù)會影響時(shí)間敏感流量和(hé / huò)預約帶寬的(de)流量。
      四是(shì)輸出(chū)調度可采用絕對優先級調度。由于(yú)對高優先級隊列采用了(le/liǎo)輸出(chū)時(shí)間門控和(hé / huò)輸出(chū)整型機制,因此不(bù)會因爲(wéi / wèi)異常到(dào)達的(de)高優先級流量“餓死”低優先級的(de)流量。
   (2)接口的(de)配置管理       CQF交換的(de)輸出(chū)接口是(shì)可管理的(de),即用戶可以(yǐ)對優先級分類、入隊門控,出(chū)隊門控、入隊測量和(hé / huò)輸出(chū)整型邏輯進行配置管理。
      涉及的(de)主要(yào / yāo)數據結構包括入隊/出(chū)隊門控列表,流量測量和(hé / huò)整型的(de)令牌桶參數,隊列管理參數等。我們将在(zài)後續文章中對CQF輸出(chū)接口的(de)配置管理抽象進行進一步介紹。