OpenBox:軟件定義時(shí)間敏感網絡系統全家桶
發布時(shí)間:2021-05-19
軟件定義時(shí)間敏感網絡系統是在軟件定義網絡框架下(xià)融入了(le)時(shí)間敏感網絡技術的綜合性網絡系統。該系統既具備軟件定義網絡的組網靈活性、協議(yì)無關轉發的高(gāo)适應性、轉發控制分離的高(gāo)效性與可控性,同時(shí)又有低(dī)延時(shí)、低(dī)抖動的時(shí)間敏感特性。該系統通過軟件流表與隊列映射的靈活定義,極大(dà)放(fàng)寬了(le)全網流規劃調度的難度,增強了(le)TSN網絡的适用(yòng)範圍和(hé)行業兼容能(néng)力。
時(shí)間敏感是業務的屬性,故在業務流交互過程中分組所經曆的所有處理(lǐ)環節都要滿足時(shí)間敏感特性才能(néng)夠真正保證業務的時(shí)間要求。TSN一定是一個完整的時(shí)間敏感網絡系統。
湖南新實是OpenTSN項目的忠實支持者、貢獻者與推動者,OpenTSN 1.0開(kāi)源版本(github與gitee均有下(xià)載)受到(dào)廣大(dà)TSN研究者的熱捧。在該版本基礎上(shàng),湖南新實網絡與沈陽自(zì)動化所結合應用(yòng)行業特性要求做了(le)大(dà)量的修改與改進,共同研發了(le)一套較爲完整的軟件定義時(shí)間敏感網絡系統。
軟件定義時(shí)間敏感網絡系統主要包括:端節點、交換機和(hé)控制器。其中端節點可分爲實時(shí)端節點和(hé)普通節點。時(shí)間敏感流路徑上(shàng)所有交換機都支持TSN規範要求。控制器使用(yòng)SDN控制器Floodlight,部署在普通電腦(nǎo)上(shàng)。端節點和(hé)交換機都使用(yòng)OpenBox-S4設備,該設備核心芯片是Zynq-7020,由雙核CPU+FGPA異構組成,采用(yòng)FAST架構搭建網絡IO系統。通過軟件靈活配置可運行爲端節點或交換機。
基于FAST架構的OpenBox-S4平台
該系統的TSN功能(néng)全部由FPGA邏輯實現(xiàn),包括時(shí)鐘(zhōng)同步和(hé)Qbv調度。其中PTP分組同步數據根據硬件流表控制轉發,确保同步分組雙向路徑對(duì)稱。所有分組數據均可在不同節點根據硬件流表映射不同優先級隊列和(hé)輸出端口,既可有效降低(dī)規劃沖突,又能(néng)方便路徑規劃。所有分組數據均根據硬件相應流表轉發,既可由軟件動态配置,也(yě)可從(cóng)本地存儲空(kōng)間加載規劃配置好(hǎo)的所有流表。全FPGA實現(xiàn)功能(néng)與靜态流表加載非常适合在車載等相對(duì)固定的環境使用(yòng),搭建CPU後則适合大(dà)規模網絡環境和(hé)動态變化的網絡環境下(xià)使用(yòng)。不僅适應BE流的動态變化,TSN流也(yě)可以通過流表方式動态規劃和(hé)配置。
1.端節點
實時(shí)節點:實時(shí)節點CPU運行硬實時(shí)操作(zuò)系統,包含PL側的實時(shí)驅動、實時(shí)網絡協議(yì)棧和(hé)實時(shí)應用(yòng),如rtping和(hé)rtudp等。FPGA加載支持TSN功能(néng)的硬件邏輯,支持與網絡中時(shí)間主節點同步,支持流表映射和(hé)規劃調度設置。
普通節點:普通節點運行普通操作(zuò)系統,包含PL側普通驅動,使用(yòng)系統标準協議(yì)棧功能(néng),支持标準的SOCKET應用(yòng),如ping和(hé)iperf等。FPGA邏輯加載FAST标準5級流水(shuǐ)線功能(néng)邏輯。
2.交換機
交換機運行普通操作(zuò)系統,包含PL側普通驅動,使用(yòng)系統标準協議(yì)棧功能(néng),支持标準的SOCKET應用(yòng)。安裝運行OVS虛拟交換機,移植開(kāi)發OVS流表硬件卸載功能(néng)、南向OpenFlow協議(yì)擴展支持功能(néng),主要包括對(duì)TSN相關參數的配置,如硬件流表配置、門(mén)控列表等。
3.控制器
安裝運行于普通電腦(nǎo)上(shàng),需要移植開(kāi)發對(duì)TSN相關屬性配置的北向APP、北向REST API、控制器支撐模塊、OpenFlow協議(yì)擴展模塊等。如TSN同步使能(néng)、調度使能(néng)、TSN門(mén)控列表配置、協議(yì)無關流表配置等。
4.系統演示環境
演示系統包含1個時(shí)鐘(zhōng)主節點(交換)、8個時(shí)鐘(zhōng)從(cóng)節點(交換)、2個時(shí)鐘(zhōng)從(cóng)節點(實時(shí)端)、1個數據采集監控節點和(hé)2個BE流普通節點。交換網絡連接爲田字格,端節點數據流可通過軟件定義流表的方式做不同的路徑切換。
軟件定義時(shí)間敏感網絡演示系統
1.SDN控制器拓撲
2.SDN流表(端口輸出與TSN隊列映射)
3.接口狀态與計(jì)數
4.實時(shí)門(mén)控與BUFF統計(jì)
5.實時(shí)同步狀态
6.拓撲重組網
8.Qbv門(mén)控調度配置(靈活)
9.實時(shí)端系統實時(shí)ping
10.修改調度門(mén)控
11.新門(mén)控實時(shí)ping對(duì)比
12.路徑重規劃後實時(shí)ping對(duì)比(紅(hóng)色A路徑,黃色B路徑)
13.實時(shí)UDP通信測試
實時(shí)UDP服務端(接收并返回)
實時(shí)UDP發送、接收統計(jì)客戶端
14.協議(yì)無關轉發(OT節點不移植協議(yì))
自(zì)由構包
配置流表
接收抓包
軟件定義時(shí)間敏感網絡系統是一個綜合性網絡系統,業務數據流經的每個層級和(hé)環節(應用(yòng)、協議(yì)棧、驅動、系統調度、網卡、交換機等)都要求具備實時(shí)性,缺一不可。在不同的應用(yòng)場景下(xià)或流特性要求不同的情況下(xià),系統的解決方案不完全相同。比如端系統不一定要采用(yòng)帶系統的環境,可以裸CPU運行,也(yě)可以使用(yòng)PLC或純FPGA邏輯等方式。具體要看(kàn)業務的運行環境和(hé)時(shí)間敏感需求,完全可以根據用(yòng)戶要求實現(xiàn)各類定制需求。
上(shàng)述驗證場景隻是提供一了(le)整套可能(néng)的使用(yòng)方法,中間許多細節也(yě)并不完善,時(shí)間精度的控制及全網規劃調度也(yě)還需要進一步改進和(hé)優化。
歡迎大(dà)家多多交流溝通,多提寶貴意見,共同促進TSN網絡技術的普及發展。
關注FAST開(kāi)源社區(qū)
FAST一一開(kāi)源、開(kāi)放(fàng)、高(gāo)速、高(gāo)效、可編程、可定義!軟硬件協同并行處理(lǐ)。