在《車載以太網(wǎng)交換機入門基本功(3)》介紹了交換機端口屬性和實際的VLAN轉(zhuǎn)發(fā)過程。但是,當存在多個待轉(zhuǎn)發(fā)的報文時,既要考慮到報文的及時性,又要考慮到轉(zhuǎn)發(fā)效率,因此,如何進行有效調(diào)度就成了重要問題。一個解決辦法是進行優(yōu)先級設計。
優(yōu)先級設計
優(yōu)先級設計包括報文PCP字段和交換機隊列兩個部分。報文PCP字段可以回顧《交換機入門基本功-2》,如圖 1所示:
圖 1 攜帶VLAN的MAC報文格式
PCP優(yōu)先級長度為3bit,取值在0-7之間共八個取值。通常來說值越大則優(yōu)先級越高,越快被轉(zhuǎn)發(fā)。由于以太網(wǎng)是串行通信,所以當不同優(yōu)先級的報文發(fā)送到交換機端口上時,需要“排隊出門”。
在交換機端口上存在多個隊列,隊列也存在優(yōu)先級之分,值越大則優(yōu)先級越高,越快被轉(zhuǎn)發(fā)。PCP優(yōu)先級和隊列優(yōu)先級不是一一對應的,存在映射關(guān)系。如圖 2所示,左側(cè)第一列是PCP優(yōu)先級(從0-7),第一行是端口的隊列個數(shù)(從1-8),根據(jù)隊列個數(shù)進行映射。
圖 2 PCP優(yōu)先級和隊列優(yōu)先級映射表
以端口包含4個隊列為例:PCP=0和1映射到隊列優(yōu)先級0,PCP=2和3映射到隊列優(yōu)先級1,PCP=4和5映射到隊列優(yōu)先級2,PCP=6和7映射到隊列優(yōu)先級3。映射完成后,隊列優(yōu)先級3的報文較快轉(zhuǎn)發(fā),而隊列優(yōu)先級0的報文較慢轉(zhuǎn)發(fā)。同一個隊列下的報文按照進入隊列的早晚進行轉(zhuǎn)發(fā)。如圖 3所示:
圖 3 端口的隊列轉(zhuǎn)發(fā)
考慮到轉(zhuǎn)發(fā)實時性和效率,可以針對性地設計隊列調(diào)度規(guī)則。這里介紹兩種常見的隊列調(diào)度機制:優(yōu)先級隊列調(diào)度(PQ, Priority Queuing)和加權(quán)循環(huán)調(diào)度(WRR, Weight Round Robin)。
· 優(yōu)先級隊列調(diào)度(PQ, Priority Queuing)
嚴格按照隊列優(yōu)先級大小進行調(diào)度。只有高優(yōu)先級隊列的報文全部轉(zhuǎn)發(fā)完畢,低優(yōu)先級隊列的報文才會開始轉(zhuǎn)發(fā)。這種調(diào)度方式方便配置,對于低延時的數(shù)據(jù)非常有用,如音視頻數(shù)據(jù)等。但當高優(yōu)先級的數(shù)據(jù)過多時,會一直占用調(diào)度窗口,導致低優(yōu)先級的數(shù)據(jù)“永無出頭之日”。低優(yōu)先級并不意味著不重要,如郵件不追求時效,但它很有可能包含諸如開會時間的重要信息。另一種隊列調(diào)度機制可以有效緩解這一問題。
· 加權(quán)循環(huán)調(diào)度(WRR, Weight Round Robin)
不同隊列給予不同的初始權(quán)值,每次調(diào)度時,權(quán)值不為0的隊列都調(diào)度一次;每調(diào)度一輪則權(quán)值減1,權(quán)值減到0的隊列不參與調(diào)度;當所有隊列的權(quán)值均減到0時,重置隊列的權(quán)值,開啟新一輪的調(diào)度。為了便于理解,假設有三個隊列A、B、C,權(quán)值分別是2、3、4,調(diào)度過程如圖 4所示:
① 第一、二次調(diào)度:ABC,隊列權(quán)值連續(xù)減1,A=0,B=1,C=2;
② 第三次:A權(quán)值為0,不參與調(diào)度,實際調(diào)度B和C,隊列權(quán)值減1,A=0,B=0,C=1;
③ 第四次:A、B不參與調(diào)度,實際調(diào)度C,隊列權(quán)值減1,A=0,B=0,C=0;
④ 重置,A=2,B=3,C=4,重復上述過程。
圖 4 WRR隊列調(diào)度
WRR調(diào)度機制讓每個隊列都有調(diào)度機會,機會大小取決于權(quán)值大小。因此,低優(yōu)先級隊列的數(shù)據(jù)也能轉(zhuǎn)發(fā)。WRR機制會跳過空的隊列并切換到下個隊列,保證帶寬充分利用。
報文優(yōu)先級、交換機隊列和調(diào)度機制相配合,可以實現(xiàn)報文的高效轉(zhuǎn)發(fā),提高帶寬資源利用率。交換機芯片通過硬件設計實現(xiàn)上述功能,之后需要經(jīng)過測試進行驗證,才能真正派上用場。
TC11交換機芯片VLAN測試規(guī)范
在《交換機入門基本功(1)》提到,交換機芯片依據(jù)的是OPEN聯(lián)盟TC11工作小組制定的測試規(guī)范“Switch Semiconductor Test Specification”,其中VLAN測試包括八個部分:
在802.1Q配置測試部分,細分17個測試內(nèi)容,如表2所示,定義了入口、轉(zhuǎn)發(fā)、出口過程的配置情況:
在具體測試中,根據(jù)交換機功能選擇相應測試用例,開展測試。
總結(jié)
通過《交換機入門基本功》4篇文章了解到:交換機是基于以太網(wǎng)點對點通信機制的背景下誕生的,包括學習、記憶、接收、查表、轉(zhuǎn)發(fā)的五個工作過程,具備端口過濾、鏡像、禁用/啟用、轉(zhuǎn)發(fā)等功能。交換機實現(xiàn)了物理通信區(qū)域的隔離,即局域網(wǎng),而VLAN則實現(xiàn)了邏輯區(qū)域的隔離。VLAN通過報文Tag、交換機端口屬性、交換機端口過濾功能得以實現(xiàn),并通過優(yōu)先級和隊列實現(xiàn)轉(zhuǎn)發(fā)的有效調(diào)度。為了驗證交換機芯片的功能實現(xiàn),需要參考OPEN聯(lián)盟的TC11交換機芯片測試規(guī)范,包括通用測試、地址解析、VLAN等9個方面,此外,實時更進規(guī)范修改方案并與讀者分享。
感謝讀者們對本系列的支持!希望大家通過閱讀本文,可以對交換機形成整體的認識,之后通過不斷學習實現(xiàn)自我升級,成為一名資深的工程師!
經(jīng)緯恒潤作為OPEN聯(lián)盟會員和AUTOSAR聯(lián)盟的高級合作伙伴,長期為國內(nèi)外各大OEM和供應商提供涵蓋TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技術(shù)領(lǐng)域的設計和測試咨詢服務,積極研發(fā)和探索車載網(wǎng)絡前沿技術(shù)和工程應用。通過多個項目的實踐經(jīng)驗,已建立了高質(zhì)量、本土化的設計與測試一體化解決方案,為整車網(wǎng)絡架構(gòu)提供可靠支持。