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.

AM625: Inquiry Regarding Ethernet Port Speed Behavior

Part Number: AM625

Tool/software:

Hi,

I am using the AM625 TI EVK board, which has two Ethernet ports.

When both Ethernet ports are used simultaneously (while checking speed using iperf3), the speed for each port is around 400-500 Mbps. However, when only one port is used at a time, the speed increases to around 800-900 Mbps (almost double).

Could you please help me understand whether this is expected behavior or if there might be an issue?

Thank you.

  • Hi,

    This is expected behavior. This is a result of the processor handling for both ports. 

    Best Regards,

    Schuyler

  • Hi Schuyler 

    Thank for your replied, 

    But I have one more doubt,

    I would like to perform a loopback test between these Ethernet ports and transfer data between them.

    Could you guide me on how to configure the Ethernet ports for loopback? Specifically, I need to know:

    • How to set up the loopback for these ports.
    • Which registers need to be configured to enable this functionality.

    Also provide me steps like which points I need to make sure  from hardware and software side for this 

    Also i have one more question 

    what is the reason behind this --> When both Ethernet ports are used simultaneously (while checking speed using iperf3), the speed for each port is around 400-500 Mbps. However, when only one port is used at a time, the speed increases to around 800-900 Mbps (almost double).

  • Hi,

    For loopback we do not have ready examples on how to setup a loopback type setup. Can you describe what information you are looking for with a loopback test?

    The processor touches each network packet the 800-900Mbps is the approximate network BW the processor can handle. Two ports more or less would halve the total throughput. What throughput does your application require? 

    Best Regards,

    Schuyler

  • Hi Schuyler 


    i connect my 2 ethrenet port which is shown in below image

    now my two ethernet ports  ip is mantioned below

    root@ACM1000:~# ifconfig eth0
    eth0 Link encap:Ethernet HWaddr 98:AE:71:04:8F:A4
    inet addr:169.254.2.224 Bcast:169.254.255.255 Mask:255.255.0.0
    inet6 addr: fe80::9aae:71ff:fe04:8fa4/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:3940 (3.8 KiB)

    root@ACM1000:~# ifconfig eth1
    eth1 Link encap:Ethernet HWaddr 98:AE:71:04:8F:A5
    inet addr:192.168.0.225 Bcast:192.168.255.255 Mask:255.255.0.0
    inet6 addr: fe80::9aae:71ff:fe04:8fa5/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:3293 (3.2 KiB)





    Now i trying to ping 192.168.0.225 this ip using my eth0 port using below command
    root@ACM1000:~# ping -I eth0 192.168.0.225
    PING 192.168.0.225 (192.168.0.225) from 169.254.2.224 eth0: 56(84) bytes of data.
    From 169.254.2.224 icmp_seq=1 Destination Host Unreachable
    From 169.254.2.224 icmp_seq=2 Destination Host Unreachable
    From 169.254.2.224 icmp_seq=3 Destination Host Unreachable



    but not able to ping ip using this command 


    my doubt is its possible to ping two ethernet if its connected in loopback and if yes than how ?

  • Hi,

    Per your earlier question, the setup you are showing is not a loopback test. If fact this setup will not work for passing traffic.

    The destination host unreachable has to do with the kernel does not see a way to get from one network 169.x.x.x to the other 192.x.x.x. There is a not a network gateway defined that kernel can forward the ARP message to. You could try to set eth0 as the gateway or setup a route. Assuming this would work the kernel would figure out both ports on the same machine and the ping packets would not be transmitted but might complete inside the network stack.

    Best Regards,

    Schuyler

  • Hi Schuyler 

    I am try do do it with same domain ip but it still not working

    Eth0 - 192.168.0.220/24

    Eth1 - 192.168.0.225/24

    Can you provide me example steps like how can I set ip and gatway and how can I test to ping it.

    I just want to cross verify that i followed same steps or anything missing.

  • Hi,

    This port connection addressing will not work either in Linux. The reason is that both ports eth0 and eth1 are on the same subnet, 192.168.0.x. You would need to set different subnets, such as 192.168,0.220 for eth0 and 192.168.1.225 for eth1 to get the ports on different subnets. You would also need add a gateway or a route for both directions. But I caution that even if you do that the kernel network stack will detect this is the same platform and not send packets between the two physical ports.

    Could you please explain what you are trying to accomplish with this test?  Perhaps there is another way to do what you are trying to achieve.

    There could be a way to setup a route between the ports using ip tables or route but this will be beyond what TI supports regarding the CPSW driver, support  is for basic send and receive. IP tables and route are higher level kernel above the MAC driver support.

    Best Regards,

    Schuyler

  • Hi, 

    I want to achieve below things,

    I have two interface eth0 and eth1 in my am625 board

    I want to speed test of both interface without using any external connection like switch , router , device or laprop.

    So I connect one end of ethernet to eth0 port and second end of ethernet to eth1 port and trying to do ping testing.

    Any way to achieve this using single ethernet cable (one end connected to eth1 and second end connected to eth0) verify the both ports ethernet speed.

  • Hi,

    As I mentioned previously connecting both ports together with Linux as the OS is probably not going to work. Do you have an example you are following that says this technique is possible? What you previously measure for throughput would most likely be the same if this topology could work. 

    Are you expecting a different result than you what measured earlier? Can you provide a reason why you do not want to use an external link partner?

    Best Regards,

    Schuyler

  • Hi, 

    So basically we are doing all interfaces validation available in am625 board

    For ethernet interface validation previously we are using external link parter like laptop (one end of ethernet cable connected to eth0 and other end connected to laptop same as eth1). 

    In above case if we are doing both interface speed testing Simultaneously using iperf server & client command than it will work successfully. But we need to laptop for that 

    Laptop 1: for board  console access and starting iperf server for eth0.

    Laptop 2: for starting iperf server for eth1.

    After this start iperf client in board console. Than it will successfully work but we need 2 laptop for this.

    For above we are using this connections.

    TI Board eth0. ---> connect with Laptop1 ethernet

    TI Board eth1. ---> connect with Laptop2 ethernet

    But now our requirement is only use 1 laptop only And using one laptop validate both ethernet interface Simultaneously.

    So there is only way to configure both interface as I previously shared in image.

    Laptop 1: for board access and starting iperf server in eth0 &  starting iperf client in eth1.

    Connection details: 

    Ti board eth0 --> connected with Ti board eth1

    But it's not working because basic ping test will failed so iperf will be also failed.

    I don't know will this technique possible or not so I raised query for this on ti forum.

    But as your answer I think this type of connection it not works right? There were no way to achieve this without external links right?