I try to put a little example in place to prove the efficiency of tc qdisc taprio offloaded on hardware of LS1021 TSN switch. But I have some troubles to get results that I want, It seems that the qdisc does not have any effect on my flows.
My Set-up :
One talker sends Ethernet frames on swp5 port of TSN switch via its VLAN (VID : 8, PCP : 1).
One talker sends Ethernet frames on swp2 port of TSN switch via its VLAN (VID : 8, PCP : 0).
One listener is linked to swp3 port of TSN switch and sniff data tcpdump (and write a .pcap file for wireshark).
TSN switch configuration:
As I want to use VLAN tags that are already present in my frames, I allow VLAN tag conservation with :
> ip link set br0 type bridge vlan_filtering 1
> ip link set swp2 master br0
> ip link set swp3 master br0
> ip link set swp5 master br0
> bridge vlan add dev swp2 vip 8
> bridge vlan add dev swp3 vip 8
> bridge vlan add dev swp5 vip 8
TAPRIO qdisc :
I want to install my qdisc in hardware, and I want to see its effect on my frames. So I chose to put some high time for each gate state to see the effect of my queuing discipline on wireshark. (the period of sending data for both talker is 250µs).
> tc qdisc replace dev swp3 parent root handle 100 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 sched-entry S 0x01 50000000 sched-entry S 0x02 50000000 sched-entry S 0x00 50000000 sched-entry S 0x03 50000000 flags 2
When I look at wireshark my differents flows, this is just like no qdisc was installed. It does not stop any flows during my 50ms but I do not understand why.
(I already checked that the qdisc was well installed with tc qdisc show dev swp3).
Do someone have any idea ? Do you know it there is a way to check the content of SHARINDX in order to know where my frames pass to be forwarded ?
Run the SJA1105 Time-Aware Scheduler (802.1Qbv engine) based on the PTP clock and enable PTP clock. Please refer to the following section for details.
" 7.4.3 Synchronized 802.1Qbv demo" in Openil UG
Moreover, in User Guide, they say that if you do not specify the VID in the bridge table but you put a PCP in your vlan tag for messages incoming in the switch, it is supposed to work. But after some tests, it does not work for me. I suppose that the bridge is not able to get my VLAN information but I can't get why,
find enclosed a packet that I transmit to the bridge, maybe you will see something that I do not get.
My PTP is activated as well as my qdisc now. But my multicast packets seems to be dropped by the switch even if I cannot be sure of that.
I do not have a lot of hardware available, so I just have another board which is PTP compatible. This is my talker which send my flow with VLAN TAG (VID 8, PCP 6). My vlan_filtering is activated on the switch and the vid 8 has been added in bridge vlan table on port that need it.
Finally, my listener is not PTP compatible but is only used to listen on its port different ethernet packets that come (because there are multicast packet).
But I have no trace f my packets in output of the switch when vlan_filtering is on.
Edit : I looked inside drivers of SJA1105 today. Can it be the fact that I use UDP broadcasting (with VLAN tag) that produce that ? I saw that there are special SHARINDEX for broadcast and I do not know if the VLAN tag is analyzed in this situation.