This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于PA丢包

我们现在的TMS320C6670方案目的:主要是处理网络上的数据收发。具体情况:

core0:linux-c6x的系统,运行对时序要求不高的一些应用,以及core1/2/3的加载。

core1/2/3:sysbios的系统,运行实时系统进行自研的网络协议处理,并且负责了pa,qmss,cppi的初始化,以及pa过滤规则配置。

使用了sgmii0/1的网口:sgmii0的数据直接由core0处理,sgmii1的数据向外发送先由core0 640队列发送给pa,再由初始化定义的规则转至core1,core1进行一定的处理后通过648队列发送到sgmii1出去。

现在的问题是在工作过程中发先从sgmii1出去的数据有丢包,经过计数对比后core0 640队列->pa->core1 729队列接收时发生了丢包。

具体队列配置如下:

1) core0通过640队列将描述符发给pdsp0,884队列负责回收;

2) core1通过729队列接收core0描述符中发送过来的数据,qmss_AccCmdCfg中的channel配置为9,maxPageEntries为4。

3) core1的接收中断处理函数eventID=48+(9/4)=50,vectID=7+(9/4)=9。

现象是:

1) core0描述符通过tx 640队列发送完顺利回收到884,从计数看无描述符丢失现象

2) core1接收中断统计里发现收到数据有丢失的,从中断统计看就比发送端计数少。

因为core0通过640队列将描述符发送到pdsp0中,通过规则配置core1的729队列负责接收。

通过观察pdsp0的收包计数器发现包个数与core0发出的一致,但在core1的中断接收里就发现比实际发出的少。