在實際應用中,工業(yè)網絡設備可能會面對復雜的網絡數據環(huán)境,比如復雜物理拓撲結構(網絡中大量使用路由器/交換機,并且可能有外部設備接入),可能導致網絡中出現大量的IP廣播/多播,非目標IP包,這些包大量出現,就有可能把真正攜帶有效通信數據的包“淹沒”掉。為了解決這些風險,T2M/N2L平臺內置的ETHSW模塊提供了廣播/多播風暴抑制,數據幀過濾等硬件功能。
本文主要介紹用于數據幀過濾的“模式匹配 (Pattern Matcher)”功能,并舉例T2M/N2L ETHSW模塊提供的Receive Pattern Matcher功能,可以用來和PORT接收到的Frame的特定字段對比,在normal forwarding processing的基礎上執(zhí)行一些預定義的特定動作:如Discard, MGMTFWD,Force_Forward,從而在ETHSW的PORT端完成對特定數據幀的識別,減少通過ETHSW Management Port進入GMAC/CPU處理的數據幀數量,從而降低GMAC數據傳輸負載和CPU處理IP協議棧的軟件負載,降低“丟幀”發(fā)生的風險;
ETHSW總共12個Pattern Matcher可用。
Pattern Matcher支持固定匹配模式和2字節(jié)匹配模式;最多可匹配到從數據幀源MAC地址字段之后最多偏移256字節(jié)處。
Pattern Matcher可以與集成的hub模塊結合使用。允許實現當一個特定的幀被接收時,觸發(fā)MAC傳輸。這允許在實現像Powerlink這樣的協議時,節(jié)點設備被觸發(fā)傳輸,是通過接收來自中央主節(jié)點的特定幀來控制的。
Pattern Matcher的4種模式:
MODE 1固定模式
固定比對Frame的SRC MAC地址域后開始的12字節(jié),(第13th-24th字節(jié))因為該范圍包含了Type_Length字段(2字節(jié)),所以最多比對10 Bytes負載內容;
通過PTRN_CMP寄存器和PTRN_MSK寄存器配置數據幀中參與對比的每個字節(jié)的比較值和掩碼,運行時根據掩碼對Frame中相應字節(jié)作AND運算,對比PTRN_CMP中的比較值,相同即為Match,然后預定義的Action操作被觸發(fā)。
MODE 2-4:flexible模式
Mode 2-4都是2字節(jié)比較,比較的具體方法描述如下,比較位置(offset值:0-256)從13 th byte開始計算偏移;
MODE 2:2 byte table look-up:Frame中Offset位置開始的2字節(jié),和最多8個比較值作比較;
MODE 3:2 byte range compare with minimum and maximum range:Frame中Offset位置開始的2字節(jié),判斷其是否在預設的最小值(min)和最大值(max)范圍內;Compare Match規(guī)則為: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字節(jié),反向比較 ,Compare Match規(guī)則為: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字節(jié)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字節(jié),如果這兩字節(jié)的值落在定義的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),不再轉發(fā);
MODE_2BYTE_RANGE:定義Pattern Matcher 工作在MODE 3;
MATCH_LT:定義除了比較2 byte數據,還需要同時比較Length_Type域,該示例中為0x0806;
max_min:分別定義IP地址的高低2字節(jié)需要匹配的值,按照上面的對照表,寫入到PTRN_CMP寄存器中;
offset:定義需要比較的2字節(jié)從數據幀MAC地址域后開始的位置;Target IP Address域的高低2字節(jié)的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級別的交換功能,后續(xù)文檔會繼續(xù)介紹如TDMA/HUB等亮點功能,敬請期待。
-
mcu
+關注
關注
146文章
17834瀏覽量
360377 -
瑞薩
+關注
關注
36文章
22369瀏覽量
87730 -
Mac
+關注
關注
0文章
1117瀏覽量
52612 -
數據幀
+關注
關注
0文章
49瀏覽量
6913
原文標題:RZT2M/N2L ETHSW Pattern Matcher模塊功能說明和舉例
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
解析RZ/N2L CANFD模塊的緩沖區(qū)機制(3)

解析RZ/N2L CANFD模塊的緩沖區(qū)機制(2)

解析RZ/N2L CANFD模塊的緩沖區(qū)機制(1)

【RA-Eco-RA4M2開發(fā)板評測】初學瑞薩-使用瑞薩flash programmer燒錄程序
2025年瑞薩電子工業(yè)以太網技術日(下)

Banana Pi 與瑞薩電子攜手共同推動開源創(chuàng)新:BPI-AI2N
瑞薩面向RZ/T和RZ/N系列微處理器推出經認證的PROFINET-IRT和PROFIdrive軟件協議棧

【瑞薩RA2L1入門學習】00. 開箱 + 點燈
瑞薩RZ/T2H新產品量產上市

瑞薩電子多協議工業(yè)以太網MPU介紹及RZ/N2L IO-Link方案介紹

評論