仅对英特尔可见 — GUID: vuu1472074044654
Ixiasoft
4.1.3.3.1. 长度检查
MAC功能检查基础帧和基本载荷,VLAN标签和堆栈式VLAN标签帧长度。
IP核检查帧长度是否有效—既不能过小也不能超大。有效长度至少是64(0x40)字节且未超出如下各种帧类型的最大值:
- 基础帧—MAX_RX_SIZE_CONFIG寄存器中指定其字节数。
- VLAN标签帧—MAX_RX_SIZE_CONFIG寄存器中的指定值再加多4个字节。
- 堆栈式VLAN标签帧—MAX_RX_SIZE_CONFIG寄存器中的指定值再加多8个字节。
如果基础MAC帧的长度/类型字段或VLAN标签帧的客户端长度/类型字段中有一个小于0x600的值,则IP核还将检查载荷长度。IP核接收到帧后会追踪载荷长度,并检查其是否违反相关字段。如果符合以下条件,则载荷长度有效:
- 实际载荷长度与长度/类型或客户端长度/类型字段中的值相匹配。
- 基础帧—载荷长度介于46(0x2E)和1536(0x0600)字节之间,不包括1536。
- VLAN标签帧—载荷长度介于42(0x2A)和1536(0x0600)之间,不包括1536。
- 堆栈式VLAN标签帧—载荷长度介于38(0x26)和1536(0x0600),不包括1536。
RX MAC不会丢弃具有无效长度和无效载荷长度的帧。如果帧或载荷长度无效,MAC功能就置位输出错误位。
- l2_rx_error[2]—过小帧。
- l2_rx_error[3]—过大帧。
- l2_rx_error[4]—载荷长度错误。
如果长度字段值大于实际载荷长度,IP核置位l1_rx_error[4] 。如果长度字段值少于实际载荷长度,MAC RX会认为此帧具有过多的填充,且不置位l1_rx_error[4] 。