0731-84728105
15116127200
OpenTSN網卡實現模型(1)
發布時間:2020-03-16
     TSN網卡是TSN網絡提供端到端确定性交換服務的(de)關鍵設備。由于應用需求不同,TSN網卡連接的(de)端系統計算平台在計算能力,資源管理(lǐ)方法和(hé)通信需求等方面差異較大,因此設計盡可(kě)能滿足多種應用場景需求的(de)TSN網卡是OpenTSN開源項目的(de)重要目标。本文分析了不同TSN端系統的(de)差異,提出了OpenTSN網卡與端系統松耦合的(de)實現思路。
一(yī)、TSN端系統分析
      我們認為(wèi)TSN網卡連接的(de)端系統節點主要分為(wèi)三類,即I/O節點、計算節點以及支持雲計算的(de)虛拟化節點,如(rú)圖1所示。

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

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