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

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

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