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.

关于C6678 PKTDMA中的RX FLOW问题



    当RX PKTDMA要搬运一个packet时,需要根据相应的RX FLOW来进行。在用户手册中,我看到对于QMSS中的RX PKTDMA,是根据TX端描述符中的SRC_TAG_LO字段指定的RX FLOW的编号选择相应的RX FLOW进行处理。在不指定RX FLOW ID时,RX PKTDMA就默认根据RX channel的序号选择与之相同的RX FLOW进行处理。我想请问,对于芯片其他外设中的PKTDMA,比如NETCP,SRIO等等。TX端是不是也是通过这个方法指定接收端的RX FLOW的?如果不是,那接收端是如何判断RX FLOW ID的呢?

  • 对于QMSS 内部的infrastructure PKTDMA是像你说的那样由Tx descriptor中的SRC_TAG_LO透传过去决定Rx flow,注意此处必须根据这个来决定flow ID,并不是像你说的那样根据Rx channel序号来决定。

    其他由pktDMA管理的外设,每个指定的flow ID方式都不一样,具体还得参考相应的手册,如NETCP如果接收的包需要经过PA,则首先需要配置好PA中每个PDSP的路由规则,路由规则中包括对最终接收的包到底是由那个flowID接收的规定,如果以太网的包bypass PA及SA,则接收的包固定有flow22/23接收;对SRIO如果采用message方式,则在初始化的时候需要配置好相应的RXU_MAP寄存器,SRIO会从接收包中提取相应的srcID等信息与MAP寄存器匹配得到相应的flowID。这些信息都在相应的NETCP及SRIO手册中有描述。