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.

AM6442: Two Ethernet networks are used.multicast packets droped.

Part Number: AM6442


Tool/software:

Two Ethernet networks are used, and IPv6 multicast packets (Neighbor Solicitation) can only be received from one side.

Only the last Ethernet link up can receive multicast packets, which affects IPv6 communication.

SDK:ti-processor-sdk-linux-am64xx-evm-10.00.07.04
filesystem:tisdk-default-image-am64xx-evm.rootfs.tar.xz
Board:TDMS64EVM

---

[ 32.969998] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[ 33.838116] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

#eth2 not use.

root@am64xx-evm:~# uname -a
Linux am64xx-evm 6.6.32-ti-g6de6e418c80e-dirty #1 SMP PREEMPT Fri Jul 26 14:32:20 UTC 2024 aarch64 GNU/Linux
root@am64xx-evm:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::ae1f:fff:fe84:4ca prefixlen 64 scopeid 0x20<link>
ether ac:1f:0f:84:04:ca txqueuelen 1000 (Ethernet)
RX packets 500 bytes 33897 (33.1 KiB)
RX errors 0 dropped 78 overruns 0 frame 0
TX packets 27 bytes 4656 (4.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::72ff:76ff:fe1e:2fce prefixlen 64 scopeid 0x20<link>
ether 70:ff:76:1e:2f:ce txqueuelen 1000 (Ethernet)
RX packets 505 bytes 34201 (33.3 KiB)
RX errors 0 dropped 80 overruns 0 frame 0
TX packets 27 bytes 4656 (4.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth2: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 70:ff:76:1e:2f:cf txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 10 bytes 1594 (1.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10 bytes 1594 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

root@am64xx-evm:~# switch-config -d
K3 cpsw dump version (1) len(11704)
ALE table dump ents(512):
0 : type: vlan , vid = 0, untag_force = 0x7, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x7
1 : type: ucast, addr = ac:1f:0f:84:04:ca, ucast_type = persistant, port_num = 0x0, Secure
2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x7
3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1
4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1
5 : type: ucast, addr = 70:ff:76:1e:2f:ce, ucast_type = persistant, port_num = 0x0, Secure
6 : type: mcast, addr = 33:33:ff:84:04:ca, mcast_state = f, no super, port_mask = 0x1
7 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1
8 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1
9 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1
10 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1

#33:33:ff:1e:2f:ce is not available.

root@am64xx-evm:~#
root@am64xx-evm:~# [ 205.002188] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
[ 209.098017] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off


root@am64xx-evm:~# switch-config -d
K3 cpsw dump version (1) len(11704)
ALE table dump ents(512):
0 : type: vlan , vid = 0, untag_force = 0x7, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x7
1 : type: ucast, addr = ac:1f:0f:84:04:ca, ucast_type = persistant, port_num = 0x0, Secure
2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x7
3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1
4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1
5 : type: ucast, addr = 70:ff:76:1e:2f:ce, ucast_type = persistant, port_num = 0x0, Secure
6 : type: mcast, addr = 33:33:ff:1e:2f:ce, mcast_state = f, no super, port_mask = 0x1
7 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1
8 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1
9 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1
10 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1

#33:33:ff:84:04:ca is not available.


root@am64xx-evm:~# [ 288.810150] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down
[ 292.906111] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

root@am64xx-evm:~# switch-config -d
K3 cpsw dump version (1) len(11704)
ALE table dump ents(512):
0 : type: vlan , vid = 0, untag_force = 0x7, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x7
1 : type: ucast, addr = ac:1f:0f:84:04:ca, ucast_type = persistant, port_num = 0x0, Secure
2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x7
3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1
4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1
5 : type: ucast, addr = 70:ff:76:1e:2f:ce, ucast_type = persistant, port_num = 0x0, Secure
6 : type: mcast, addr = 33:33:ff:84:04:ca, mcast_state = f, no super, port_mask = 0x1
7 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1
8 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1
9 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1
10 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1
root@am64xx-evm:~#

The "ethtool -S <dev>" command drops the following:
ale_drop:
rx_port_mask_drop:

ICMPv6

Best Regards,

  • Hi,

    Could you please describe the topology of how the ports are hooked up with their link partners?

    Best Regards,

    Schuyler

  • The connections are as follows.

    This can be reproduced from a Linux PC using the following 'ndisc6' command.

    ###EVM###
    eth0 inet6 fe80::ae1f:fff:fe84:4ca
    eth1 inet6 fe80::72ff:76ff:fe1e:2fce

    #eth0,1 LinkUP (eth1 is later.)

    root@am64xx-evm:~# switch-config -d
    K3 cpsw dump version (1) len(11704)
    ALE table dump ents(512):
    0 : type: vlan , vid = 0, untag_force = 0x7, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x7
    1 : type: ucast, addr = ac:1f:0f:84:04:ca, ucast_type = persistant, port_num = 0x0, Secure
    2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x7
    3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1
    4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1
    5 : type: ucast, addr = 70:ff:76:1e:2f:ce, ucast_type = persistant, port_num = 0x0, Secure
    6 : type: mcast, addr = 33:33:ff:1e:2f:ce, mcast_state = f, no super, port_mask = 0x1
    7 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1
    8 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1
    9 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1
    10 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1
    root@am64xx-evm:~#

    ###Linux PC###
    user@user-VirtualBox:~$ ndisc6 fe80::ae1f:fff:fe84:4ca enp0s8
    Soliciting fe80::ae1f:fff:fe84:4ca (fe80::ae1f:fff:fe84:4ca) on enp0s8...
    Timed out.
    Timed out.
    Timed out.
    No response.

    user@user-VirtualBox:~$ ndisc6 fe80::72ff:76ff:fe1e:2fce enp0s8
    Soliciting fe80::72ff:76ff:fe1e:2fce (fe80::72ff:76ff:fe1e:2fce) on enp0s8...
    Target link-layer address: 70:FF:76:1E:2F:CE
    from fe80::72ff:76ff:fe1e:2fce

    #Now reconnect eth0.


    root@am64xx-evm:~# switch-config -d
    K3 cpsw dump version (1) len(11704)
    ALE table dump ents(512):
    0 : type: vlan , vid = 0, untag_force = 0x7, reg_mcast = 0x0, unreg_mcast = 0x0, member_list = 0x7
    1 : type: ucast, addr = ac:1f:0f:84:04:ca, ucast_type = persistant, port_num = 0x0, Secure
    2 : type: mcast, vid = 0, addr = ff:ff:ff:ff:ff:ff, mcast_state = f, no super, port_mask = 0x7
    3 : type: mcast, addr = 33:33:00:00:00:01, mcast_state = f, no super, port_mask = 0x1
    4 : type: mcast, addr = 01:00:5e:00:00:01, mcast_state = f, no super, port_mask = 0x1
    5 : type: ucast, addr = 70:ff:76:1e:2f:ce, ucast_type = persistant, port_num = 0x0, Secure
    6 : type: mcast, addr = 33:33:ff:84:04:ca, mcast_state = f, no super, port_mask = 0x1
    7 : type: mcast, addr = 33:33:00:00:00:fb, mcast_state = f, no super, port_mask = 0x1
    8 : type: mcast, addr = 01:80:c2:00:00:00, mcast_state = f, no super, port_mask = 0x1
    9 : type: mcast, addr = 01:80:c2:00:00:03, mcast_state = f, no super, port_mask = 0x1
    10 : type: mcast, addr = 01:80:c2:00:00:0e, mcast_state = f, no super, port_mask = 0x1
    root@am64xx-evm:~#

    #eth1 is still connected, but "mcast, addr = 33:33:ff:1e:2f:ce" has been removed.

    ###Linux PC###
    user@user-VirtualBox:~$ ndisc6 fe80::ae1f:fff:fe84:4ca enp0s8
    Soliciting fe80::ae1f:fff:fe84:4ca (fe80::ae1f:fff:fe84:4ca) on enp0s8...
    Target link-layer address: AC:1F:0F:84:04:CA
    from fe80::ae1f:fff:fe84:4ca

    user@user-VirtualBox:~$ ndisc6 fe80::72ff:76ff:fe1e:2fce enp0s8
    Soliciting fe80::72ff:76ff:fe1e:2fce (fe80::72ff:76ff:fe1e:2fce) on enp0s8...
    Timed out.
    Timed out.
    Timed out.
    No response.

    Best Regards,

  • Hi,

    I will need to discuss with colleagues on this issue. I will need a day or two to investigate.

    Best Regards,

    Schuyler