Hi,
My customer has a problem on the cut-through operation of Ethernet, so they would like you to confirm below.
They’re testing the cut-through of Ethernet frame by using AM64x GP EVM.
However, Multicast frame is not made cut-through. Broadcast frame or unicast frame not for itself are forwarded by cut-through.
It means that eth1 port does not forward the multicast frame received at eth0 port from the network, to the network.
Opposite also, eth0 port does not forward the multicast frame received at eth1 port from the network, to the network.
At first, could you please confirm if you can reproduce this phenomenon ?
After that, could you please advise them about the root cause and the solution.
Multicast frame which they used.
MRP Multicast : 01:15:4E:00:00:01 (For test), 01:15:4E:00:00:02 (For Linkup)
LLDP Multicast : 01:80:c2:00:00:0E
IPv4 Multicast : 01:00:5E:7F:FF:FA (SSDP, IP address : 239.255.255.250)
Note: the cut-through works correctly between eth1 and eth2 when eth1 (CPSW3g) and eth2 (PRU_ICSSG) are used.
The setting of Cut-through on CPSW3g
Perform between eth0 and eth1 of CPSW3g
Set the contents described in the “! Note” in the following site.
3.2.2.7. CPSW3g — Processor SDK AM64X Documentation
The settings which they actually set are in the attached file.
#!/bin/sh ip link set dev eth0 down ip link set dev eth1 down ip link set dev eth2 down ip link set dev eth0 address 70:ff:76:1e:2c:9e ip link set dev eth1 address 70:ff:76:1e:2c:9f ip link set dev eth2 address ac:1f:0f:84:04:c8 devlink dev param set platform/8000000.ethernet name switch_mode value true cmode runtime echo 1 > /sys/kernel/debug/8000000.ethernet/Port1/cut_thru_rx_pri_mask echo 1 > /sys/kernel/debug/8000000.ethernet/Port1/cut_thru_tx_pri_mask echo 1 > /sys/kernel/debug/8000000.ethernet/Port2/cut_thru_rx_pri_mask echo 1 > /sys/kernel/debug/8000000.ethernet/Port2/cut_thru_tx_pri_mask ethtool --set-priv-flags eth0 cut-thru on ethtool --set-priv-flags eth1 cut-thru on ip link add name br0 type bridge ip link set dev br0 address 70:ff:76:1e:2c:9d ip link set dev br0 type bridge ageing_time 1000 ip link set dev eth0 up sleep 1 ip link set dev eth1 up sleep 1 ip link set dev eth0 master br0 ip link set dev eth1 master br0 ip link set dev br0 type bridge stp_state 0 ip link set dev br0 up ip addr add 172.18.96.65/16 dev br0 bridge vlan add dev br0 vid 1 pvid untagged self
Also, the following Multicast flooding is set as “on”.
3.2.2.7. CPSW3g — Processor SDK AM64X Documentation
Thanks and regards,
Hideaki