Azure NetX TCP/IP bandwith performance

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

Azure NetX TCP/IP bandwith performance

2,887 Views
guillaume_g
Contributor II

We are trying to evaluate the RT1060 MCU with the Netx TCP/IP stack.

It try the Ping exemple in the the SDK and it wotks well.

i add a simple TCP socket with echo to check if it work. everything work.

I made a simple python program to measure max speed i am able to acheive.

with echo mode i can run up to 3MBit/s

i remove the echo mod and was able to get 6MBit/s.

i check with another computer and was able to get 880MBit/s so the limiting factor is the evaluation board!.

I test the Iperf sample program in the SDK and i was able to have 1MBit/s

i try to change optimisation of the compiler, use the RAM to run program. and wasn't able to have more than this number.

Microsoft claim to be able to have 100MBit/s with a 120MHz MCU. with a 578MHz i only have 6MBit/s.

i may have made something wrong, but what?

What result shall i have with the Iperf sample program on the IMXRT1060-EVK?

 

 

0 Kudos
7 Replies

2,829 Views
guillaume_g
Contributor II

More update on this topic and final answer.

after diging in the IPerf example i found the root cause of my issue.

It was cause by the windows given in parameter to the socket creation.

i was using a windows of 100, in the IPerf example it was 32*1024, after increasing the windows.i'm now able to 98Mbps on the ethernet link.

thanks for you support.

2,878 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
Before answering your question, I was wondering if you can share the bandwidth performance testing process of Azure NetX TCP/IP you did, as I'd like to replicate the phenomenon on my site.
Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos

2,875 Views
guillaume_g
Contributor II

hi jeremy,

the easiest test to replicate is the Iperf test with the program from the SDK example.

The example only work with UDP and i'm able to have 1.06Mbit/s.

it wasn't my first test. but this is a easy starting point.

 

There is also the same example with LWip in the SDK, i try it and it gave me the same result.

0 Kudos

2,850 Views
jeremyzhou
NXP Employee
NXP Employee

Thanks for your reply.
I've run the netx_duo_iperf and lwip_iperf demos on the MIMXRT1060 for testing(as Fig 1 shows).

WeChat Image_20210125182117.jpg

Fig 1

I find that the UDP receive rate is determined by the rate of transmission of the iperf tool actually, and it's proved by testing both above two demos.
For instance, the below Fig 2 shows the Bandwidth when the MIMXRT1060 enters the UDP server mode (RX only test) mode.

jeremyzhou_0-1611570415990.png

Fig 2

 


And Fig 3 shows the UDP receive Test when running the netx_duo_iperf demo.

jeremyzhou_1-1611570444399.png

Fig 3

I also did TCP protocol test like the below figure shows.

jeremyzhou_3-1611570495159.png

Fig 4

Have a great day,
TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

 

0 Kudos

2,845 Views
guillaume_g
Contributor II

Trying to make my test again and analyzing your screenshot make me realize that the board has is own HTTP server.

once realize this, i was able to make the test work and with the expected throughput ( near 100MB/s).t

Now the question is why i'm not able to have this with my software.

to explain what i have done.

- i import the ping example from the SDK.

- after having an IP from DHCP

- i create a new thread that creat a TCP socket server

- and loop on waiting for incoming connection

- once connected send back all received packet.

 

i joined you the only file that i modify in the project  and the python file to make burst transfert.

today i was able to get 11MBit/s. it's a bit higher than last time but but stil 1/10 of the full bandwith.

 

thanks for your support.

0 Kudos

2,847 Views
guillaume_g
Contributor II

thanks for your update and your support.

your test give me one conclusion:

- my iperf test doesn't work!!

 

My test was to open the sdk example project and run. for now it give me this result.

But the fact that the test didn't work in TCP shall make me worry a bit more on my result.

Didi you make some special setting to the project?

 

thanks

0 Kudos

2,838 Views
jeremyzhou
NXP Employee
NXP Employee

Hi,
Thanks for your reply.
1) Did you make some special settings for the project?
-- No, I didn't, for more convenience, I just follow the readme file to use the JPerf2 graphical tool instead of the command line IPerf application.

TIC

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

 

0 Kudos