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