P4080 udp packets received out of order

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

P4080 udp packets received out of order

1,097 Views
icem12
Contributor I

Hello,

We have a custom board based on P4080DS. We have built the image using QorIQ Linux SDK. During our testing of the Ethernet functionality using iperf, we have observed that some of the packets are being received out of order. The count of out-of-order packets is increasing with higher bandwidth.

I have attached the bootlog.

Thanks in advance,

Cem.

 

Labels (1)
0 Kudos
2 Replies

1,015 Views
yipingwang
NXP TechSupport
NXP TechSupport

You could use core-affined queue to implement order preservation, please use one of the following default FMC policy files.
/etc/fmc/config/private/p4080ds/*/policy_ipv4.xml
/etc/fmc/config/private/p4080ds/*/policy_ipv6.xml

Please execute FMC commands as the following before all networking related operation.
# fmc -c /etc/fmc/config/private/p4080ds/N_RRRSS_0x16/config.xml -p /etc/fmc/config/private/p4080ds/N_RRRSS_0x16/policy_ipv4.xml -a

 

This is because in DPAA1, each interface used by default one pool channel across all software portals and also the dedicated channel of each CPU. In Linux Kernel, PCD Frame queues in use dedicated channels. You could refer to
the section "5. Dedicated and Pool Channels Usage in Linux Kernel" in Using QMAN Dedicated and Pool Channels in USDPAA and Linux Kernel .


You need to use multiple flows, after executing FMC policy, one flow will bind to one core, so all 4 cores will be used by multiple flows. In the real scenario, one user application uses one flow.

0 Kudos

1,072 Views
scottm
Senior Contributor II

Isn't that just how UDP works? This is the second paragraph of the introduction to RFC 768:

This protocol provides a procedure for application programs to send
messages to other programs with a minimum of protocol mechanism. The
protocol is transaction oriented, and delivery and duplicate protection
are not guaranteed. Applications requiring ordered reliable delivery of
streams of data should use the Transmission Control Protocol (TCP)

(emphasis mine)

0 Kudos