Docker部署Python爬虫项目的完整方法步骤
表10.56接收状态信息字位符号描述:
-
10:0 RxSize传输给一个片段缓冲区的实际数据的字节数。换句话说,它是DMA管理器针对一个描述符实际写入的帧或片段的字节数。该值可能与描述符控制区域中Size位(表示器件驱动程序分配的缓冲区大小)的值有所不同。该字段采用减1编码,如果缓冲区有8个字节,则RxSize的值为7。
-
17:11 -未使用
-
18 ControlFrame表示这一个用于流控制的控制帧,它可以是一个暂停帧也可以是一个带有不支持的操作码的帧。
-
19 VLAN表示一个VLAN帧。了解更多关于以太网帧结构及VLAN技术的信息。
-
20 FailFilter表示这帧信息的Rx过滤失败。这样的帧将不能正常地传递到存储器中。但由于缓冲区大小的限制,帧中可能已有一部分信息传递到了存储器。一旦发现某帧的Rx过滤失败,就将该帧的剩余部分丢弃,而不传递到存储器中。但如果命令寄存器中的PassRxFilter位置位,则整帧都将传递到存储器中。
-
21 Multicast当接收到一个多播帧时置位。
-
22 Broadcast当接收到一个广播帧时置位。
-
23 CRCError接收到的帧有一个CRC错误。
-
24 SymbolError在接收过程中,PHY通过PHY接口报告有一个位错误。
-
25 LengthError该帧的帧长度区域指定了一个有效的帧长度,但它与实际的数据长度不相等。
-
26 RangeError接收到的包超出了包长度的最大限制。
-
27 AlignmentError当检测到dribble位和一个CRC错误时,将“对齐错误”作上标记。这与IEEE std.802.3/条款4.3.2是一致的。
-
28 Overrun接收溢出。适配器不能接收数据流。
-
29 NoDescriptor没有新的Rx描述符可用,并且对于当前的接收描述符中的缓冲区大小来说,帧信息太长。
-
30 LastFlag该位置位表示这个描述符是一帧中的最后一个片段。如果一帧只由一个片段组成,则该位也是置位的。
-
31 Error表示在该帧的接收过程中出现错误。它是AlignmentError、RangeError、LengthError、SymbolError、CRCError和Overrun逻辑“或”的结果。更多细节请参阅Linux系统内核接收以太帧的处理程序。
EMAC不区分帧类型和帧长度。当接收到IP(0x8000)或ARP(0x0806)包时,EMAC将帧类型与最大长度进行比较并给出“长度超出范围”错误。事实上,该位不是一个错误指示,而仅仅是由芯片产生的、关于接收帧状态的一个说明。对于具有多个片段的帧,该帧中除了最后一个片段之外的所有片段中的AlignmentError、 RangeError、LengthError、SymbolError、CRCError位的值都是0。同样,FailFilter、Multicast、 Broadcast、VLAN、ControlFrame位的值是未定义的。而该帧中最后一个片段的状态是从MAC中将上述位的值复制过来而得的。所有片段都将具有有效的LastFrag、RxSize、Error、Overrun和NoDescriptor位。
对于那些对帧处理和校验感兴趣的读者,可以参考单片机接收数据帧帧头帧尾校验数据解析获取更多技术细节。