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

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

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

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