OpenTSN網(wǎng)卡實(shí)現(xiàn)模型(1)
發(fā)布時(shí)間:2020-03-16
TSN網(wǎng)卡是TSN網(wǎng)絡(luò)提供端到端確定性交換服務(wù)的關(guān)鍵設(shè)備。由于應(yīng)用需求不同,TSN網(wǎng)卡連接的端系統(tǒng)計(jì)算平臺(tái)在計(jì)算能力,資源管理方法和通信需求等方面差異較大,因此設(shè)計(jì)盡可能滿足多種應(yīng)用場景需求的TSN網(wǎng)卡是OpenTSN開源項(xiàng)目的重要目標(biāo)。本文分析了不同TSN端系統(tǒng)的差異,提出了OpenTSN網(wǎng)卡與端系統(tǒng)松耦合的實(shí)現(xiàn)思路。
一、TSN端系統(tǒng)分析
我們認(rèn)為TSN網(wǎng)卡連接的端系統(tǒng)節(jié)點(diǎn)主要分為三類,即I/O節(jié)點(diǎn)、計(jì)算節(jié)點(diǎn)以及支持云計(jì)算的虛擬化節(jié)點(diǎn),如圖1所示。

圖1 TSN端系統(tǒng)的分類
其中I/O節(jié)點(diǎn)實(shí)現(xiàn)簡單,對(duì)成本、體積和功耗要求較高,通常沒有操作系統(tǒng),難以面向TSN進(jìn)行定制化設(shè)計(jì);計(jì)算節(jié)點(diǎn)包含通用CPU和操作系統(tǒng),TSN網(wǎng)卡可以通過修改驅(qū)動(dòng)程序?qū)SN端系統(tǒng)的操作進(jìn)行適配;而虛擬化節(jié)點(diǎn)主要面向邊緣計(jì)算或嵌入式云計(jì)算,需要對(duì)TSN網(wǎng)卡進(jìn)行虛擬化,TSN網(wǎng)卡在提供確定性I/O的同時(shí),還要支持I/O的虛擬化,實(shí)現(xiàn)不同應(yīng)用之間網(wǎng)絡(luò)I/O的隔離。
每種TSN端系統(tǒng)的比較如下表所示。由于不同端節(jié)點(diǎn)具有不同的特點(diǎn),在主機(jī)測和網(wǎng)卡側(cè)的TSN功能劃分差異較大,因此難以實(shí)現(xiàn)通用的TSN網(wǎng)卡設(shè)計(jì)。
值得關(guān)注的是,當(dāng)TSN端節(jié)點(diǎn)為虛擬化平臺(tái)時(shí),主機(jī)側(cè)會(huì)虛擬出多個(gè)具有獨(dú)立MAC和IP地址的節(jié)點(diǎn)。一方面提高了TSN網(wǎng)絡(luò)離線規(guī)劃的復(fù)雜性,另一方面給TSN端系統(tǒng)收發(fā)分組時(shí)的確定性保證帶來了新的困難。
二、OpenTSN網(wǎng)卡實(shí)現(xiàn)思路
為了最大限度適配不同類型的端系統(tǒng),OpenTSN網(wǎng)卡與端系統(tǒng)主機(jī)側(cè)采用松耦合的方式,通過千兆以太網(wǎng)與端系統(tǒng)計(jì)算平臺(tái)進(jìn)行連接,如圖2所示。與PCIe、SPI等連接方式相比,使用千兆以太網(wǎng)連接的優(yōu)點(diǎn)是:
(1)通信帶寬比SPI總線高,基本可滿足多種終端的通信帶寬需求;
(2)很多CPU已經(jīng)內(nèi)嵌千兆以太網(wǎng),因此無需在主機(jī)側(cè)再增加新的網(wǎng)卡;
(3)網(wǎng)卡側(cè)存儲(chǔ)空間不會(huì)映射到主機(jī)側(cè)的存儲(chǔ)空間,不需要額外的驅(qū)動(dòng)程序支持;
(4)對(duì)于虛擬化平臺(tái),主機(jī)側(cè)可以選擇支持SR-IOV的網(wǎng)卡,主機(jī)內(nèi)部虛擬機(jī)/容器的交換可以不經(jīng)過TSN網(wǎng)卡實(shí)現(xiàn)。

圖2 OpenTSN網(wǎng)卡實(shí)現(xiàn)思路
除了采用松耦合的以太網(wǎng)物理連接外,OpenTSN網(wǎng)卡在邏輯功能上也實(shí)現(xiàn)了與主機(jī)側(cè)計(jì)算平臺(tái)的解耦,主要表現(xiàn)在:
(1)延時(shí)確定性保證機(jī)制的解耦
OpenTSN網(wǎng)卡通過內(nèi)設(shè)RX_buf/TX_buf,實(shí)現(xiàn)了端到端交換路徑上,應(yīng)用與網(wǎng)卡間延時(shí)確定性保證與TSN網(wǎng)絡(luò)(發(fā)送網(wǎng)卡-TSN網(wǎng)絡(luò)-接收網(wǎng)卡)延時(shí)確定性保證機(jī)制之間的解耦。OpenTSN只需要保證從發(fā)送方網(wǎng)卡上的TX_buf到接收方網(wǎng)卡上RX_buf之間的延時(shí)確定性即可。
如果應(yīng)用對(duì)通過計(jì)算平臺(tái)與網(wǎng)卡RX_buf/Tx_buf通信的延時(shí)有嚴(yán)格的確定性要求,可以通過定制優(yōu)化計(jì)算平臺(tái)的軟硬件實(shí)現(xiàn)確定性保證,與網(wǎng)卡無關(guān)。
(2)TSN功能到網(wǎng)卡的全卸載
端系統(tǒng)主機(jī)側(cè)不用針對(duì)TSN進(jìn)行任何修改。在OpenTSN網(wǎng)卡上實(shí)現(xiàn)了TSN管理Agent,為全局規(guī)劃提供完整的,與端系統(tǒng)無關(guān)的資源抽象,并接受TSN網(wǎng)絡(luò)控制器對(duì)網(wǎng)卡的配置,包括RX/TX調(diào)度表配置,TSN流水線中的整型、調(diào)度和冗余控制等機(jī)制進(jìn)行配置。
由于TSN功能全部卸載到網(wǎng)卡上,因此主機(jī)計(jì)算平臺(tái)的處理不需要全網(wǎng)同步的時(shí)間基準(zhǔn)。
三、總結(jié)
網(wǎng)卡上RX_buf/Tx_buf的設(shè)置和Tx/Rx調(diào)度表設(shè)計(jì)對(duì)OpenTSN網(wǎng)卡與端系統(tǒng)解耦十分重要。這也是其他類型時(shí)間觸發(fā)通信(如TTP)實(shí)現(xiàn)通信控制器與主機(jī)消息交互的方法。
TSN邊緣注入時(shí)間規(guī)劃功能可通過RX調(diào)度控制Rx_buf中分組進(jìn)入TSN流水線的時(shí)刻實(shí)現(xiàn)。同時(shí),基于Tx調(diào)度,網(wǎng)卡也可以精確控制按指定時(shí)刻向計(jì)算平臺(tái)和應(yīng)用提交接收到的分組。
圖2只給出了網(wǎng)卡處理時(shí)間觸發(fā)流量(scheduled Traffic)的方法,我們將在后續(xù)文章中進(jìn)一步給出OpenTSN網(wǎng)卡同時(shí)支持時(shí)間觸發(fā)、AVB和BE流量的方法。