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.

AM623: about subnet

Part Number: AM623
Other Parts Discussed in Thread: SK-AM62

Tool/software:

hi

Based on sk-am62, during the sdk8.6 process, both networks were configured to the same network segment, and 192.168.1.100 and 192.168.1.200 were found to be unable to ping the two network cards.

thanks

  • 1. Please update to a newer SDK, 8.6 is several years old

    2. What is the network topology you are running, including which device have what IP address

    3. What commands are run on each of the boards

      Pekka

  • HI

    I am using tisdk-default-image-rt-am62xx-evm-8.6 and 10.01 versions, and have modified the configuration file under/etc/systemd/network to configure eth0 to 192.168.1.101 and eth1 to 192.168.1.102. When ping eth0 and eth1 using a computer or another am62 IP address, I found that it cannot be pinged. Linux cannot use ping-I to specify the network card.

    thanks

  • Hi Hao,

    have modified the configuration file under/etc/systemd/network to configure eth0 to 192.168.1.101 and eth1 to 192.168.1.102.

    Do you have both eth0 and eth1 connected to the same computer (or another AM62 board)? Are you sending ping packets from your device under test AM62 board or from the computer? What is the log you see when ping -I fails? 

    Having both Ethernet ports (eth0 and eth1) on the same subnet (e.g. 192.168.1.x) usually is going to result in ping issues, especially when ping is made from the DUT/EVM to the host computer/another device. This is because during a ping the host computer will send an ARP message to find the MAC address of the DUT/EVM and since ARP is a broadcast message, the wrong interface might be responding with its MAC address, resulting in ping failure.

    Please try setting the IP address of eth0 and eth1 to different subnets.

    -Daolin

  • HI

    I am connected to am62-evm 1.101 via computer ip1.210, and am62-evm 1.100 via computer ip1.112. I implemented the same subnet by modifying the IP route and IP rule, but testing found that it had an impact on Ethercat, which goes against the original intention of real-time optimization in the new version of the SDK. Is it a feature of Linux system that does not support the same subnet? Will I be able to implement the same subnet without affecting real-time performance if I modify network management?

    thanks

  • Hi Hao,

    Is it a feature of Linux system that does not support the same subnet? Will I be able to implement the same subnet without affecting real-time performance if I modify network management?

    Do you have a specific requirement to keep both eth0 and eth1 on the same subnet? 

    Having both Ethernet ports (eth0 and eth1) on the same subnet (e.g. 192.168.1.x) usually is going to result in ping issues, especially when ping is made from the DUT/EVM to the host computer/another device. This is because during a ping the host computer will send an ARP message to find the MAC address of the DUT/EVM and since ARP is a broadcast message, the wrong interface might be responding with its MAC address, resulting in ping failure.

    From my understanding, it is not likely an issue/feature of Linux, it is simply a feature of ping that requires a broadcast ARP message to find the MAC address and if both eth0 and eth1 are on the same subnet, the result of ping might get confused over which interface (eth0 or eth1) should be responding. This is why we do not recommend having both eth interfaces on the EVM set to the same subnet. To my knowledge, this exact issue should be observable by observing the Ethernet packets through Wireshark.

    Will I be able to implement the same subnet without affecting real-time performance if I modify network management?

    I'm not fully understanding this question. Regardless of real-time performance or is no real-time is needed, having two eth interfaces on the EVM on the same subnet is going to result in ping issues. Please try setting the two eth interfaces on two different subnets, not the same subnet.

    -Daolin

  • Do you have a specific requirement to keep both eth0 and eth1 on the same subnet? 

    Yes, the client on the project has raised requirements, and we need to come up with a solution.

    From my understanding, it is not likely an issue/feature of Linux, it is simply a feature of ping that requires a broadcast ARP message to find the MAC address and if both eth0 and eth1 are on the same subnet, the result of ping might get confused over which interface (eth0 or eth1) should be responding. This is why we do not recommend having both eth interfaces on the EVM set to the same subnet. To my knowledge, this exact issue should be observable by observing the Ethernet packets through Wireshark.

    I discovered the problem using the "route" command. Only eth0 responded within the same subnet. After disabling eth0, eth1 could respond. The project requires both eth0 and eth1 to perform EtherCAT. Although I achieved the routing strategy based on IP addresses through ip route and ip rules, I could correctly respond to ARP packets and the network could communicate normally. However, during the EtherCAT test, there were still issues such as excessive jitter and interference between the network interfaces. I used Buildroot to create the rootfs. The network management should be ipupdown. I thought that in the default-image, networkmanage and systemd management could provide better support for the same subnet situation. Now I don't know how to solve this problem. Thank you very much for your help.

  • The project requires both eth0 and eth1 to perform EtherCAT.

    EtherCAT is not a LAN technology that uses ARP, or IP stack in general. EtherCAT just uses Ethernet layer 1 and some parts of layer 2, but it is not an IEEE802.1Q Ethernet. So concepts like subnet or ping do not make any sense in an EtherCAT network.

      Pekka

  • OK, thank you very much for your help. I'll reply to the customer stating that it's currently not possible to achieve.