C6678和C6455使用SRIO通信,1x4p模式,3.125G,其中C6678使用TI的PDK中SRIO LLD
发现C6455发送过快时候C6678的接收缓存不够,触发StarvationQ中断,然后这个包就丢了,但是对端C6455仍然认为包发送成功了,这就造成丢包现象,不能发挥SRIO的高速通道应有的作用。
请问SRIO如何能实现流控,即C6678接收缓冲区满时,C6455发送不出去
Allen35065:
使用NWRITE_R方式写
Boxue Li:
回复 Jane Lu:
1。free descriptor数目总要受到内存资源限制,不能无限增加。况且只治标不治本。
2。这个想法是可行的,如果置位后不会丢弃,然后导致接收缓冲区满,C6455收到发送错误中断,这时候不再让上层继续发数据就可以了。然后要解决的是包有可能乱序的问题。
顺着这个思路已经实现了可靠传输,不丢包也不乱序。
http://blog.csdn.net/li_boxue/