低延迟40-Gbps以太网 Intel® Stratix® 10 IP核用户指南

ID 683600
日期 10/05/2020
Public
文档目录

4.1.2.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核置位 l2_rx_error[4]。如果长度字段值小于实际载荷长度,MAC RX会认为此帧具有过多的填充,因此不会置位 。