对多核导航的程序运行结果分析,得到的结论是当RX_SIZE_THRESH_EN为111的时候,如果包的大小小于或等于RX_SIZE_THRESH0的时候,RXFDQ就是RX_FDQ0_SZ0_QNUM,当包的大小大于RX_SIZE_THRESH0并且小于或等于RX_SIZE_THRESH1的时候,RXFDQ就是RX_FDQ0_SZ1_QNUM,以此类推。
程序中貌似RX_FDQ1(2,3)_QNUM没有任何作用。
RX free descriptor 0 queue index – size 0. This field specifies which free descriptor queue should be used for the
1 st RX buffer
RX free descriptor 1 queue index. This field specifies which free descriptor queue should be used for the 2nd RX
buffer in a host type packet
这个1 st RX buffer和2nd RX buffer有什么区别?什么情况下用得上 2nd RX buffer?
Andy Yin1:
对包进行分类时,可以使用threshold功能,如你所述,分别从RX_FDQ0_SZ0(1/2/3)_QNUM中获取描述符;需要进行拆包时,如接收一个大的包,通过一个描述符上挂的buffer仍然无法接收完成,剩下的数据则依次从RX_FDQ1(2,3)_QNUM中获取描述符进行存放。