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

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

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

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