基于FAST的TSN交換(2)基于FAST的TSN交換模型
發(fā)布時(shí)間:2019-1-14
在802.1Q-2014定義的以太網(wǎng)交換基本模型基礎(chǔ)上,針對(duì)TSN的特定需求,802.1Qci和802.1Qbv修訂對(duì)交換模型中分組輸出緩存的入隊(duì)列操作和出隊(duì)列調(diào)度機(jī)制進(jìn)行了擴(kuò)展,通過(guò)使用門控時(shí)間列表等機(jī)制對(duì)時(shí)間敏感分組入隊(duì)和出隊(duì)操作進(jìn)行了限制。
FAST 3.0的流水線可以在保持現(xiàn)有模塊不變前提下,通過(guò)按需擴(kuò)展插入新的模塊支持用戶定制的功能,因此可以方便地將TSN交換處理流程映射到FAST流水線上實(shí)現(xiàn)。
一、TSN交換處理流程
(1)標(biāo)準(zhǔn)以太網(wǎng)交換流程
802.1Q-2014定義了標(biāo)準(zhǔn)以太網(wǎng)的交換流程,如下圖所示。處理流程主要包含10個(gè)模塊,每個(gè)模塊的功能見(jiàn)下表。
802.1Q規(guī)范沒(méi)有明確定義流量測(cè)量的粒度,無(wú)法對(duì)進(jìn)入網(wǎng)絡(luò)的流量進(jìn)行細(xì)粒度的測(cè)量和管控。雖然支持多種輸出調(diào)度算法,但更多是保證輸出調(diào)度的優(yōu)先級(jí),或者按照預(yù)先確定的權(quán)值分配不同優(yōu)先級(jí)隊(duì)列占用的輸出帶寬,在調(diào)度中沒(méi)有利用全局時(shí)間信息,無(wú)法實(shí)現(xiàn)確定性的延時(shí)控制。軟件定義網(wǎng)絡(luò)技術(shù)的應(yīng)用可以簡(jiǎn)化交換流程,將生成樹(shù)管理以及地址學(xué)習(xí)功能上載到控制器上實(shí)現(xiàn),可以針對(duì)每條細(xì)粒度的流定義交換行為,但也難以實(shí)現(xiàn)確定性的延時(shí)控制。

圖1 標(biāo)準(zhǔn)的幀交換流程及其TSN擴(kuò)展
(2)TSN對(duì)以太網(wǎng)交換流程的擴(kuò)充
針對(duì)確定性交換的目標(biāo),TSN主要在時(shí)間同步(802.1AS)、單流的過(guò)濾和管控(802.1Qci,Per-Stream Filtering and Policing),時(shí)間敏感流量的調(diào)度(802.1Qbv Enhancement for scheduled traffic)以及幀剝奪(802.1Qbu)四個(gè)方面對(duì)標(biāo)準(zhǔn)以太網(wǎng)交換流程進(jìn)行增強(qiáng),除了時(shí)間同步標(biāo)準(zhǔn)外,其他三個(gè)標(biāo)準(zhǔn)都成為802.1Q的修訂,并合并到最新的802.1Q-2018中。
時(shí)間同步機(jī)制采用IEEE 1588的PTP協(xié)議,為分組進(jìn)入隊(duì)列和輸出調(diào)度的時(shí)間門控邏輯提供精確的全局同步時(shí)間。
TSN在轉(zhuǎn)發(fā)流程中擴(kuò)充的單流過(guò)濾和管控(PSFP)機(jī)制主要實(shí)現(xiàn)三個(gè)功能,一是單流測(cè)量,使用令牌桶機(jī)制測(cè)量到達(dá)的每條流得流量和最大幀長(zhǎng)度是否超過(guò)預(yù)定合約;二是時(shí)間門控隊(duì)列選擇機(jī)制,即將全局時(shí)間(分組到達(dá)的時(shí)刻)加入隊(duì)列選擇算法中考慮,重新計(jì)算分組內(nèi)部?jī)?yōu)先級(jí),并根據(jù)內(nèi)部?jī)?yōu)先級(jí)而不是分組VLAN頭或IP頭中攜帶的外部?jī)?yōu)先級(jí)選擇輸出隊(duì)列號(hào);三是入隊(duì)測(cè)量,基于令牌桶機(jī)制對(duì)進(jìn)入特定隊(duì)列的流量進(jìn)行測(cè)量,保證進(jìn)入相應(yīng)隊(duì)列緩存的分組流量滿足一定的合約。
輸出時(shí)間門控機(jī)制將全局時(shí)間用于輸出調(diào)度,對(duì)于保存時(shí)間敏感幀的特定隊(duì)列,是有在制定時(shí)刻才會(huì)打開(kāi)。輸出門控機(jī)制實(shí)際上是為每個(gè)輸出隊(duì)列設(shè)置了一個(gè)開(kāi)關(guān),只有開(kāi)關(guān)打開(kāi)時(shí),隊(duì)列調(diào)度請(qǐng)求才會(huì)發(fā)送到輸出調(diào)度模塊,該隊(duì)列中的調(diào)度請(qǐng)求才能被響應(yīng)。
幀剝奪機(jī)制主要是避免低優(yōu)先級(jí)的長(zhǎng)幀在發(fā)送時(shí)占用輸出接口,影響高優(yōu)先級(jí)幀的發(fā)送。例如在某個(gè)時(shí)刻,高優(yōu)先級(jí)隊(duì)列門的狀態(tài)由關(guān)閉變成打開(kāi),因此輸出調(diào)度邏輯可調(diào)度該隊(duì)列中的高優(yōu)先級(jí)幀發(fā)送。若在高優(yōu)先級(jí)隊(duì)列門打開(kāi)前,一個(gè)低優(yōu)先級(jí)的幀剛剛被調(diào)度,則該幀的發(fā)送可以立刻終止,在高優(yōu)先級(jí)幀發(fā)送完成后,低優(yōu)先級(jí)的幀可以繼續(xù)發(fā)送。為了使以太網(wǎng)的MAC層支持幀剝奪機(jī)制(支持一個(gè)幀分多次發(fā)送,MAC層負(fù)責(zé)這些分片的重新組合),802.3工作組也推出了相應(yīng)的規(guī)范(802.3br)。
二、FAST-TSN實(shí)現(xiàn)模型
FAST基本流水線包含協(xié)議解析(GPP),關(guān)鍵字提取(GKE),匹配查表(GME),通用動(dòng)作(GAC)和通用輸出控制(GOE)五個(gè)基本的模塊,可為TSN交換提供基本的分組處理功能。而時(shí)間同步,以及流的測(cè)量整型、時(shí)間門控和輸出調(diào)度邏輯分別由用戶定義的PTP UDA、CFQ UDO和PTPUDO模塊實(shí)現(xiàn),如下圖所示。

圖2 基于FAST-TSN交換實(shí)現(xiàn)模型
FAST-TSN模型的特點(diǎn)是:
1.在硬件流水線中插入PTP協(xié)議處理模塊,完全由硬件實(shí)現(xiàn)PTP同步幀(sync/delay-req/delay-resp幀)處理,不需要軟件參與,因此支持頻率更高的時(shí)間同步操作,可獲取優(yōu)于100ns的同步精度。
2.將TSN的PSFP機(jī)制中的流分類和單流測(cè)量映射到FAST基本流水線中實(shí)現(xiàn),通過(guò)GME實(shí)現(xiàn)基于五元組的流分類功能,為每個(gè)分組分配一個(gè)flowID并填寫到分組的元數(shù)據(jù)中,后續(xù)的GAC、GOE和UDO模塊可以利用flowID進(jìn)行相關(guān)的操作。
3.采用獨(dú)立的UDO模塊實(shí)現(xiàn)核心的TSN門控和調(diào)度機(jī)制,通過(guò)UDO模塊的重構(gòu)可以支持多種TSN實(shí)現(xiàn)模型,滿足不同TSN交換場(chǎng)景的需求。我們實(shí)現(xiàn)的CQF-UDO模型可以保證確定性的端到端交換延時(shí)。
我們將在后續(xù)文章中,對(duì)TSN的CQF轉(zhuǎn)發(fā)模型,以及PTP UDA、PTPUDO以及CFQ UDO模塊的功能實(shí)現(xiàn)進(jìn)行詳細(xì)介紹。