在實際應用中,工業網絡設備可能會面對復雜的網絡數據環境,比如復雜物理拓撲結構(網絡中大量使用路由器/交換機,并且可能有外部設備接入),可能導致網絡中出現大量的IP廣播/多播,非目標IP包,這些包大量出現,就有可能把真正攜帶有效通信數據的包“淹沒”掉。為了解決這些風險,T2M/N2L平臺內置的ETHSW模塊提供了廣播/多播風暴抑制,數據幀過濾等硬件功能。
本文主要介紹用于數據幀過濾的“模式匹配 (Pattern Matcher)”功能,并舉例T2M/N2L ETHSW模塊提供的Receive Pattern Matcher功能,可以用來和PORT接收到的Frame的特定字段對比,在normal forwarding processing的基礎上執行一些預定義的特定動作:如Discard, MGMTFWD,Force_Forward,從而在ETHSW的PORT端完成對特定數據幀的識別,減少通過ETHSW Management Port進入GMAC/CPU處理的數據幀數量,從而降低GMAC數據傳輸負載和CPU處理IP協議棧的軟件負載,降低“丟幀”發生的風險;
ETHSW總共12個Pattern Matcher可用。
Pattern Matcher支持固定匹配模式和2字節匹配模式;最多可匹配到從數據幀源MAC地址字段之后最多偏移256字節處。
Pattern Matcher可以與集成的hub模塊結合使用。允許實現當一個特定的幀被接收時,觸發MAC傳輸。這允許在實現像Powerlink這樣的協議時,節點設備被觸發傳輸,是通過接收來自中央主節點的特定幀來控制的。
Pattern Matcher的4種模式:
MODE 1固定模式
固定比對Frame的SRC MAC地址域后開始的12字節,(第13th-24th字節)因為該范圍包含了Type_Length字段(2字節),所以最多比對10 Bytes負載內容;
通過PTRN_CMP寄存器和PTRN_MSK寄存器配置數據幀中參與對比的每個字節的比較值和掩碼,運行時根據掩碼對Frame中相應字節作AND運算,對比PTRN_CMP中的比較值,相同即為Match,然后預定義的Action操作被觸發。
MODE 2-4:flexible模式
Mode 2-4都是2字節比較,比較的具體方法描述如下,比較位置(offset值:0-256)從13 th byte開始計算偏移;
MODE 2:2 byte table look-up:Frame中Offset位置開始的2字節,和最多8個比較值作比較;
MODE 3:2 byte range compare with minimum and maximum range:Frame中Offset位置開始的2字節,判斷其是否在預設的最小值(min)和最大值(max)范圍內;Compare Match規則為:Min <= 2 byte Value <= Max
MODE 4:2 byte inverted 2-byte inverted range compare by using a minimum and maximum range:Frame中Offset位置開始的2字節,反向比較 ,Compare Match規則為:2byte value <= Min or ?2 byte value >= Max;
Mode 2/3/4下比較值和寄存器配置的對應關系:

舉例:
在我們的PN例程中,為了解決測試和實際應用時,網絡中出現ARP風暴,導致DCP連接出現故障的問題,因為ARP.request本身是廣播幀,用廣播風暴抑制不太合適(可能會把真正需要答復的ARP.request屏蔽掉),所以用Pattern Matcher 提取針對該Station IP地址的ARP.request;
實現該功能使用2個Pattern Matcher(編號0xa和 0xb),工作在Mode 3(2 byte range compare)下,對比ARP.request幀中的Target IP Address 域,每個Pattern Matcher對比2字節IP地址;
UM中MODE 3的意義為:
2-byte range compare by using a minimum and maximum range,at a programmable offset, with port and queue mask for frame triggering and optional Length/Type matching.
從Offset指定的位置,Frame中的2字節,如果這兩字節的值落在定義的Min和Max值之間,則認為匹配成功;
Max/Min配置值與寄存器配置對應關系如下:

代碼如下:

這段代碼可以看到:
action=MGMTFWD | MODE_2BYTE_RANGE| VLAN_SKIP | LEARNING_DIS | SWAP_BYTES |MATCH_LT| SET_PRIO;
其中比較重要的配置有:
MGMTFWD:定義為Compare Match的幀,提取到Management Port(ETHSW PORT 3),不再轉發;
MODE_2BYTE_RANGE:定義Pattern Matcher 工作在MODE 3;
MATCH_LT:定義除了比較2 byte數據,還需要同時比較Length_Type域,該示例中為0x0806;
max_min:分別定義IP地址的高低2字節需要匹配的值,按照上面的對照表,寫入到PTRN_CMP寄存器中;
offset:定義需要比較的2字節從數據幀MAC地址域后開始的位置;Target IP Address域的高低2字節的offset分別為26和28;
port_mask:表示在哪些PORT口上實施該Pattern Matcher;示例中port_mask = 3,即在3個PORT口上都實施;
函數ethsw_setup_mqprio_pattern_add()配置Pattern Matcher相關寄存器;這里不作詳細說明,請參考UM(Section 28.3.15)和Source Code;
以上簡單說明了ETHSW提供的Pattern Matcher的基本功能。T2M/N2L平臺的ETHSW是功能強大的交換機,實現了較多Lay2級別的交換功能,后續文檔會繼續介紹如TDMA/HUB等亮點功能,敬請期待。
-
mcu
+關注
關注
147文章
18669瀏覽量
388921 -
瑞薩
+關注
關注
36文章
22437瀏覽量
89904 -
Mac
+關注
關注
0文章
1126瀏覽量
54941 -
數據幀
+關注
關注
0文章
49瀏覽量
7082
發布評論請先 登錄
Banana Pi 最新邊緣 AI 系統模塊 BPI-AI2N 采用瑞薩電子 RZ/V2N
解析RZ/N2L CANFD模塊的緩沖區機制(3)
解析RZ/N2L CANFD模塊的緩沖區機制(2)
解析RZ/N2L CANFD模塊的緩沖區機制(1)
【RA-Eco-RA4M2開發板評測】初學瑞薩-使用瑞薩flash programmer燒錄程序
2025年瑞薩電子工業以太網技術日(下)
Banana Pi 與瑞薩電子攜手共同推動開源創新:BPI-AI2N
瑞薩面向RZ/T和RZ/N系列微處理器推出經認證的PROFINET-IRT和PROFIdrive軟件協議棧

瑞薩RZT2M/N2L ETHSW Pattern Matcher模塊功能說明和舉例
評論