Part Number: PROCESSOR-SDK-AM64X
Tool/software:
Hello Ti,
I'm using the latest TI SDK release Image + firmware:
https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-RT-AM64X
=> 09.02.01.10 (30 May 2024)
We are adding some specific filter classifier inside Linux kernel driver to be able to cover our specific use case. We need to do classification of packages
HSR - GOOSE
This filter is working when we have unicast packets HSR-GOOSE. But when we add multicast address on the DUT and we send the multicast address GOOSE packets, the classification doesn't work anymore ...
To configure the boards, we have :
- On TestBoard1 and TestBoard2 we setup 100M with ethtool
- ethtool -s eth1 speed 100 duplex full
- ethtool -s eth2 speed 100 duplex full
- Up interfaces eth1 eth2
- Setup HSR with HW offload
Here is the DUT:
#DUT :
root@am64xx-evm:~# /usr/bin/hsr_offload_script.sh hsr_hw eth1 eth2 192.168.150.10
hsr_hw eth1 eth2 192.168.150.10
ip=192.168.150.10
if=hsr0
mac=70:ff:76:1e:e7:8c
slave-a=eth1
slave-b=eth2
device=platform/icssg1-eth
hsr-tag-ins-offload: off
hsr-tag-rm-offload: off
hsr-fwd-offload: off
hsr-dup-offload: off
hsr-tag-ins-offload: on
hsr-tag-rm-offload: on
hsr-fwd-offload: on
hsr-dup-offload: on
hsr-tag-ins-offload: off
hsr-tag-rm-offload: off
hsr-fwd-offload: off
hsr-dup-offload: off
hsr-tag-ins-offload: on
hsr-tag-rm-offload: on
hsr-fwd-offload: on
hsr-dup-offload: on
[ 86.034742] remoteproc remoteproc13: unsupported resource 5
[ 86.046870] remoteproc remoteproc15: unsupported resource 5
root@am64xx-evm:~# ethtool eth1
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
1000baseX/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
100baseT/Full
1000baseT/Full
1000baseX/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 15
Transceiver: external
MDI-X: Unknown
Current message level: 0x00000000 (0)
Link detected: yes
root@am64xx-evm:~# ip maddr add 01:00:5e:00:00:09^Cev hsr0
root@am64xx-evm:~# cat /proc/interrupts | grep -i icssg
137: 27 0 MSI-INTA 1970792 Level icssg1-eth-tx0
141: 8 0 MSI-INTA 1970796 Level icssg1-eth-tx0
237: 0 0 MSI-INTA 1971824 Level icssg1-eth
238: 0 0 MSI-INTA 1971825 Level icssg1-eth
239: 0 0 MSI-INTA 1971826 Level icssg1-eth
240: 0 0 MSI-INTA 1971827 Level icssg1-eth
241: 0 0 MSI-INTA 1971828 Level icssg1-eth
242: 0 0 MSI-INTA 1971829 Level icssg1-eth
243: 0 0 MSI-INTA 1971830 Level icssg1-eth
244: 0 0 MSI-INTA 1971831 Level icssg1-eth
253: 0 0 MSI-INTA 1971840 Level icssg1-eth
254: 0 0 MSI-INTA 1971841 Level icssg1-eth
255: 0 0 MSI-INTA 1971842 Level icssg1-eth
256: 0 0 MSI-INTA 1971843 Level icssg1-eth
257: 0 0 MSI-INTA 1971844 Level icssg1-eth
258: 0 0 MSI-INTA 1971845 Level icssg1-eth
259: 0 0 MSI-INTA 1971846 Level icssg1-eth
260: 0 0 MSI-INTA 1971847 Level icssg1-eth
522: 0 0 pruss-intc 24 Level icssg1-eth
523: 0 0 pruss-intc 25 Level icssg1-eth
root@am64xx-evm:~# ip maddr add 01:00:5e:00:00:09 dev hsr0^C
root@am64xx-evm:~# goose_app -s -a 1 -i hsr0
Server application
Affinity set: CPU 1
Socket created on : hsr0, ID:7
^C
root@am64xx-evm:~# cat /proc/interrupts | grep -i icssg
137: 1049 0 MSI-INTA 1970792 Level icssg1-eth-tx0
141: 10 0 MSI-INTA 1970796 Level icssg1-eth-tx0
237: 0 0 MSI-INTA 1971824 Level icssg1-eth
238: 0 0 MSI-INTA 1971825 Level icssg1-eth
239: 0 0 MSI-INTA 1971826 Level icssg1-eth
240: 0 0 MSI-INTA 1971827 Level icssg1-eth
241: 0 0 MSI-INTA 1971828 Level icssg1-eth
242: 0 0 MSI-INTA 1971829 Level icssg1-eth
243: 0 0 MSI-INTA 1971830 Level icssg1-eth
244: 0 0 MSI-INTA 1971831 Level icssg1-eth
253: 0 0 MSI-INTA 1971840 Level icssg1-eth
254: 1000 0 MSI-INTA 1971841 Level icssg1-eth
255: 0 0 MSI-INTA 1971842 Level icssg1-eth
256: 0 0 MSI-INTA 1971843 Level icssg1-eth
257: 0 0 MSI-INTA 1971844 Level icssg1-eth
258: 0 0 MSI-INTA 1971845 Level icssg1-eth
259: 0 0 MSI-INTA 1971846 Level icssg1-eth
260: 0 0 MSI-INTA 1971847 Level icssg1-eth
522: 0 0 pruss-intc 24 Level icssg1-eth
523: 0 0 pruss-intc 25 Level icssg1-eth
root@am64xx-evm:~# ip maddr add 01:00:5e:00:00:05 dev hsr0
root@am64xx-evm:~# goose_app -s -a 1 -i hsr0
Server application
Affinity set: CPU 1
Socket created on : hsr0, ID:7
^C
root@am64xx-evm:~# ip maddr add 01:00:5e:00:00:05 dev hsr0
root@am64xx-evm:~# cat /proc/interrupts | grep -i icssg
137: 2064 0 MSI-INTA 1970792 Level icssg1-eth-tx0
141: 10 0 MSI-INTA 1970796 Level icssg1-eth-tx0
237: 0 0 MSI-INTA 1971824 Level icssg1-eth
238: 0 0 MSI-INTA 1971825 Level icssg1-eth
239: 0 0 MSI-INTA 1971826 Level icssg1-eth
240: 0 0 MSI-INTA 1971827 Level icssg1-eth
241: 0 0 MSI-INTA 1971828 Level icssg1-eth
242: 0 0 MSI-INTA 1971829 Level icssg1-eth
243: 0 0 MSI-INTA 1971830 Level icssg1-eth
244: 0 0 MSI-INTA 1971831 Level icssg1-eth
253: 1000 0 MSI-INTA 1971840 Level icssg1-eth
254: 1000 0 MSI-INTA 1971841 Level icssg1-eth
255: 0 0 MSI-INTA 1971842 Level icssg1-eth
256: 0 0 MSI-INTA 1971843 Level icssg1-eth
257: 0 0 MSI-INTA 1971844 Level icssg1-eth
258: 0 0 MSI-INTA 1971845 Level icssg1-eth
259: 0 0 MSI-INTA 1971846 Level icssg1-eth
260: 0 0 MSI-INTA 1971847 Level icssg1-eth
522: 0 0 pruss-intc 24 Level icssg1-eth
523: 0 0 pruss-intc 25 Level icssg1-eth
root@am64xx-evm:~#
Here is the Sender :
#sender : root@am64xx-evm:~# /usr/bin/hsr_offload_script.sh hsr_hw eth1 eth2 192.168.150.1 hsr_hw eth1 eth2 192.168.150.1 ip=192.168.150.1 if=hsr0 mac=70:ff:76:1e:9f:54 slave-a=eth1 slave-b=eth2 device=platform/icssg1-eth hsr-tag-ins-offload: off hsr-tag-rm-offload: off hsr-fwd-offload: off hsr-dup-offload: off hsr-tag-ins-offload: on hsr-tag-rm-offload: on hsr-fwd-offload: on hsr-dup-offload: on hsr-tag-ins-offload: off hsr-tag-rm-offload: off hsr-fwd-offload: off hsr-dup-offload: off hsr-tag-ins-offload: on hsr-tag-rm-offload: on hsr-fwd-offload: on hsr-dup-offload: on [ 65.974335] remoteproc remoteproc13: unsupported resource 5 [ 65.988197] remoteproc remoteproc15: unsupported resource 5 root@am64xx-evm:~# goose_app -c -a 1 -i hsr0 -n 1000 -m 70:ff:76:1e:e7:8c Client application Affinity set: CPU 1 Socket created on : hsr0, ID:7 [ 140.128649] icssg-prueth icssg1-eth eth1: hsr_addr_subst_dest: Unknown node Goose on hsr0: loops:1000. TX:1000/0 RX:1000/0 (success/fail) Finished - success ! root@am64xx-evm:~# goose_app -c -a 1 -i hsr0 -n 1000 -m 01:00:5e:00:00:05 Client application Affinity set: CPU 1 Socket created on : hsr0, ID:7 Goose on hsr0: loops:1000. TX:1000/0 RX:1000/0 (success/fail) Finished - success ! root@am64xx-evm:~#
As you can se from cat /proc/interrupts | grep -i icssg from the DUT
the hsr goose unicast packets is going to the correct queues and the hsr goose muticast packet is nto going to the good one.
Remark : I also tested for 1Gbps link speed and the classification is not working, that maybe helps you ! Also, 100Mbps link speed is right now more important for us !
is it possible to reproduce this on your side ?
-Tianyi
