OpenBox:軟件定義時間敏感網(wǎng)絡(luò)系統(tǒng)全家桶
發(fā)布時間:2021-05-19
軟件定義時間敏感網(wǎng)絡(luò)系統(tǒng)是在軟件定義網(wǎng)絡(luò)框架下融入了時間敏感網(wǎng)絡(luò)技術(shù)的綜合性網(wǎng)絡(luò)系統(tǒng)。該系統(tǒng)既具備軟件定義網(wǎng)絡(luò)的組網(wǎng)靈活性、協(xié)議無關(guān)轉(zhuǎn)發(fā)的高適應(yīng)性、轉(zhuǎn)發(fā)控制分離的高效性與可控性,同時又有低延時、低抖動的時間敏感特性。該系統(tǒng)通過軟件流表與隊列映射的靈活定義,極大放寬了全網(wǎng)流規(guī)劃調(diào)度的難度,增強了TSN網(wǎng)絡(luò)的適用范圍和行業(yè)兼容能力。
時間敏感是業(yè)務(wù)的屬性,故在業(yè)務(wù)流交互過程中分組所經(jīng)歷的所有處理環(huán)節(jié)都要滿足時間敏感特性才能夠真正保證業(yè)務(wù)的時間要求。TSN一定是一個完整的時間敏感網(wǎng)絡(luò)系統(tǒng)。
湖南新實是OpenTSN項目的忠實支持者、貢獻(xiàn)者與推動者,OpenTSN 1.0開源版本(github與gitee均有下載)受到廣大TSN研究者的熱捧。在該版本基礎(chǔ)上,湖南新實網(wǎng)絡(luò)與沈陽自動化所結(jié)合應(yīng)用行業(yè)特性要求做了大量的修改與改進(jìn),共同研發(fā)了一套較為完整的軟件定義時間敏感網(wǎng)絡(luò)系統(tǒng)。
軟件定義時間敏感網(wǎng)絡(luò)系統(tǒng)主要包括:端節(jié)點、交換機和控制器。其中端節(jié)點可分為實時端節(jié)點和普通節(jié)點。時間敏感流路徑上所有交換機都支持TSN規(guī)范要求。控制器使用SDN控制器Floodlight,部署在普通電腦上。端節(jié)點和交換機都使用OpenBox-S4設(shè)備,該設(shè)備核心芯片是Zynq-7020,由雙核CPU+FGPA異構(gòu)組成,采用FAST架構(gòu)搭建網(wǎng)絡(luò)IO系統(tǒng)。通過軟件靈活配置可運行為端節(jié)點或交換機。

基于FAST架構(gòu)的OpenBox-S4平臺
該系統(tǒng)的TSN功能全部由FPGA邏輯實現(xiàn),包括時鐘同步和Qbv調(diào)度。其中PTP分組同步數(shù)據(jù)根據(jù)硬件流表控制轉(zhuǎn)發(fā),確保同步分組雙向路徑對稱。所有分組數(shù)據(jù)均可在不同節(jié)點根據(jù)硬件流表映射不同優(yōu)先級隊列和輸出端口,既可有效降低規(guī)劃沖突,又能方便路徑規(guī)劃。所有分組數(shù)據(jù)均根據(jù)硬件相應(yīng)流表轉(zhuǎn)發(fā),既可由軟件動態(tài)配置,也可從本地存儲空間加載規(guī)劃配置好的所有流表。全FPGA實現(xiàn)功能與靜態(tài)流表加載非常適合在車載等相對固定的環(huán)境使用,搭建CPU后則適合大規(guī)模網(wǎng)絡(luò)環(huán)境和動態(tài)變化的網(wǎng)絡(luò)環(huán)境下使用。不僅適應(yīng)BE流的動態(tài)變化,TSN流也可以通過流表方式動態(tài)規(guī)劃和配置。
1.端節(jié)點
實時節(jié)點:實時節(jié)點CPU運行硬實時操作系統(tǒng),包含PL側(cè)的實時驅(qū)動、實時網(wǎng)絡(luò)協(xié)議棧和實時應(yīng)用,如rtping和rtudp等。FPGA加載支持TSN功能的硬件邏輯,支持與網(wǎng)絡(luò)中時間主節(jié)點同步,支持流表映射和規(guī)劃調(diào)度設(shè)置。
普通節(jié)點:普通節(jié)點運行普通操作系統(tǒng),包含PL側(cè)普通驅(qū)動,使用系統(tǒng)標(biāo)準(zhǔn)協(xié)議棧功能,支持標(biāo)準(zhǔn)的SOCKET應(yīng)用,如ping和iperf等。FPGA邏輯加載FAST標(biāo)準(zhǔn)5級流水線功能邏輯。
2.交換機
交換機運行普通操作系統(tǒng),包含PL側(cè)普通驅(qū)動,使用系統(tǒng)標(biāo)準(zhǔn)協(xié)議棧功能,支持標(biāo)準(zhǔn)的SOCKET應(yīng)用。安裝運行OVS虛擬交換機,移植開發(fā)OVS流表硬件卸載功能、南向OpenFlow協(xié)議擴展支持功能,主要包括對TSN相關(guān)參數(shù)的配置,如硬件流表配置、門控列表等。
3.控制器
安裝運行于普通電腦上,需要移植開發(fā)對TSN相關(guān)屬性配置的北向APP、北向REST API、控制器支撐模塊、OpenFlow協(xié)議擴展模塊等。如TSN同步使能、調(diào)度使能、TSN門控列表配置、協(xié)議無關(guān)流表配置等。
4.系統(tǒng)演示環(huán)境
演示系統(tǒng)包含1個時鐘主節(jié)點(交換)、8個時鐘從節(jié)點(交換)、2個時鐘從節(jié)點(實時端)、1個數(shù)據(jù)采集監(jiān)控節(jié)點和2個BE流普通節(jié)點。交換網(wǎng)絡(luò)連接為田字格,端節(jié)點數(shù)據(jù)流可通過軟件定義流表的方式做不同的路徑切換。

軟件定義時間敏感網(wǎng)絡(luò)演示系統(tǒng)
1.SDN控制器拓?fù)?
2.SDN流表(端口輸出與TSN隊列映射)
3.接口狀態(tài)與計數(shù)
4.實時門控與BUFF統(tǒng)計
5.實時同步狀態(tài)
6.拓?fù)渲亟M網(wǎng)
8.Qbv門控調(diào)度配置(靈活)
9.實時端系統(tǒng)實時ping
10.修改調(diào)度門控
11.新門控實時ping對比
12.路徑重規(guī)劃后實時ping對比(紅色A路徑,黃色B路徑)
13.實時UDP通信測試

實時UDP服務(wù)端(接收并返回)

實時UDP發(fā)送、接收統(tǒng)計客戶端
14.協(xié)議無關(guān)轉(zhuǎn)發(fā)(OT節(jié)點不移植協(xié)議)

自由構(gòu)包

配置流表

接收抓包
軟件定義時間敏感網(wǎng)絡(luò)系統(tǒng)是一個綜合性網(wǎng)絡(luò)系統(tǒng),業(yè)務(wù)數(shù)據(jù)流經(jīng)的每個層級和環(huán)節(jié)(應(yīng)用、協(xié)議棧、驅(qū)動、系統(tǒng)調(diào)度、網(wǎng)卡、交換機等)都要求具備實時性,缺一不可。在不同的應(yīng)用場景下或流特性要求不同的情況下,系統(tǒng)的解決方案不完全相同。比如端系統(tǒng)不一定要采用帶系統(tǒng)的環(huán)境,可以裸CPU運行,也可以使用PLC或純FPGA邏輯等方式。具體要看業(yè)務(wù)的運行環(huán)境和時間敏感需求,完全可以根據(jù)用戶要求實現(xiàn)各類定制需求。
上述驗證場景只是提供一了整套可能的使用方法,中間許多細(xì)節(jié)也并不完善,時間精度的控制及全網(wǎng)規(guī)劃調(diào)度也還需要進(jìn)一步改進(jìn)和優(yōu)化。
歡迎大家多多交流溝通,多提寶貴意見,共同促進(jìn)TSN網(wǎng)絡(luò)技術(shù)的普及發(fā)展。

關(guān)注FAST開源社區(qū)
FAST一一開源、開放、高速、高效、可編程、可定義!軟硬件協(xié)同并行處理。