基于FAST的TSN交換(3)TSN循環隊列轉發(CQF)原理
發布時間:2019-1-15
CQF爲了支持确定性的交換,TSN對802.1Q-2014标準進行了擴充。其中(zhōng)單流過濾和管控機制(PSFP)中(zhōng)的時間門控邏輯控制了時間敏感分(fēn)組進入緩存隊列的時間,而時間敏感流增強調度(EST)機制中(zhōng)的輸出門控機制控制了分(fēn)組離(lí)開(kāi)輸出隊列的時間。基于對PSFP和EST機制的不同配置,TSN交換機可以實現多樣的确定性轉發,滿足不同場景的需求。
CQF是802.1Qch定義的一(yī)種對PSPF和EST機制的配置,可以通過簡單的計算實現确定性的轉發延時。CQF也是目前TSN規範中(zhōng)确定的唯一(yī)配置方式。
一(yī)、CQF工(gōng)作原理
盡管對PSFP和ETS功能進行不同的配置可以實現不同的TSN控制,但CQF是目前TSN規範中(zhōng)給出的唯一(yī)一(yī)個實現模型,其最大(dà)特點是計算和配置簡單,可以保證分(fēn)組端到端交換的确定性延時。
(1)延時保證
CQF模型将全網時間劃分(fēn)爲長度爲d的連續時間槽,用i,i+1…,i+N表示,若交換機S0在時間槽i中(zhōng)的t1時刻從鏈路上接收到數據幀p,則必須在i+1時間槽中(zhōng)的某個時刻t2輸出到鏈路上,如下(xià)圖所示。
圖1 CQF對交換機轉發延時的要求
假設t1和t2可在時間槽i和i+1中(zhōng)任意分(fēn)布,因此幀p經S0交換的延時t2-t1上限爲2d,下(xià)限爲0。同理,交換機S1必須在時間槽i+2中(zhōng)的某個點t3完成交換并輸出到鏈路上,因此p經S0和S1交換機的延時t3-t1最大(dà)爲3d,最小(xiǎo)爲d。更爲一(yī)般的,基于CQF模型,幀p在網絡中(zhōng)交換的最大(dà)延時爲(h+1)*d,最小(xiǎo)延時爲(h-1)*d,其中(zhōng)h爲傳輸路徑跳數。
(2)時間敏感幀的處理
支持CQF模型的交換機隻要在輸出端口爲時間敏感幀設置兩個由時間門控制的隊列Q0和Q1。偶數時間槽,隊列Q0保存輸入端口接收的幀(接收模式,不發送幀),同時隊列Q1發送在上一(yī)個奇數時間槽緩存的數據幀(發送模式,不接收幀);奇數時間槽,兩個隊列的操作正好相反。因此,兩個隊列循環的進行分(fēn)組緩存和調度輸出操作,這也是CQF名稱的來由。
圖2 CQF定義的循環隊列結構及工(gōng)作原理
針對CQF轉發模型,PSFP和EST機制定義的輸入門控表和輸出門控表示如圖所示。在偶數時間槽,按照T0表項定義的動作執行,在奇數時間槽,按照T1表項定義的動作執行,具體(tǐ)操作如下(xià)表所示。
顯然,根據上面操作,每個時間敏感分(fēn)組在交換中(zhōng)的延時不超過2個時間槽。當然設備間時間同步精度,非時間敏感幀傳輸占用輸出鏈路對時間敏感幀的幹擾,鏈路上分(fēn)配的時間敏感業務量大(dà)小(xiǎo)等因素都會對CQF模型中(zhōng)時間槽大(dà)小(xiǎo),Q0/Q1隊列長度等參數的選擇有影響,具體(tǐ)分(fēn)析我(wǒ)(wǒ)們在後續文章中(zhōng)給出。
二、支持CQF的交換機輸出接口模型
(1)隊列模型和入隊出隊控制
交換機每個輸出接口除了時間敏感流量外(wài),還有其他非時間敏感流量,如best effort流量,帶寬預約流量等。爲此,802.1Q-2014 的Annex I(Priority and drop precedence)定義了8個優先級隊列,分(fēn)别緩存不同類型和優先級的流量,其中(zhōng)Q7的優先級最高,其次是Q6,Q5…,優先級最低的是Q1。802.1Q-2014規範中(zhōng)解釋了Q0優先級高于Q1的原因。主要是網卡默認發出的best effort流量采用默認優先級0,對應Q0,而Q1用于存儲優先級最低的背景流量,因此Q1的調度優先級低于Q0。
爲支持CQF模型,可将其中(zhōng)的兩個最高優先級隊列Q7和Q6設置緩存時間敏感流量。此時的交換機輸出接口模型如下(xià)圖所示。
圖3 支持CQF的交換機輸出接口模型
由上圖可以看出以下(xià)幾點。
一(yī)是優先級最高的Q7和第二高的Q6隊列用于存儲時間敏感流,而且隻有這兩個隊列需要入隊和出隊的時間門控機制。由于不同的時間敏感流數據可能具有不同的發送周期(例如第一(yī)個流的周期時125us,第二個流的周期是250us),因此入隊控制需要不同的門控邏輯。
二是Q5,Q4和Q3保存預約帶寬的非時間敏感流量,其中(zhōng)Q5和Q4分(fēn)别保存延時受限的音頻(pín)和視頻(pín)流,因此調度優先級比Q3要高。對于這些流量,在入隊控制時需要增加流量測量邏輯,避免由于來自多個輸入端口的多個單流彙聚後的流量超過輸出接口預約的流量,同時在出隊需要增加整型邏輯,減小(xiǎo)流量的突發。
三是進出三個低優先級隊列Q2,Q0和Q1的流量沒有任何控制。當然,在隊列将滿時,隊列管理邏輯會根據一(yī)定的算法選擇分(fēn)組丢棄。由于優先級低,這幾個隊列的流量也不會影響時間敏感流量和預約帶寬的流量。
四是輸出調度可采用絕對優先級調度。由于對高優先級隊列采用了輸出時間門控和輸出整型機制,因此不會因爲異常到達的高優先級流量“餓死”低優先級的流量。
(2)接口的配置管理
CQF交換的輸出接口是可管理的,即用戶可以對優先級分(fēn)類、入隊門控,出隊門控、入隊測量和輸出整型邏輯進行配置管理。
涉及的主要數據結構包括入隊/出隊門控列表,流量測量和整型的令牌桶參數,隊列管理參數等。我(wǒ)(wǒ)們将在後續文章中(zhōng)對CQF輸出接口的配置管理抽象進行進一(yī)步介紹。