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

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

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