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.

TDA4VM: tc commands issue in linux sdk

Part Number: TDA4VM

Hi

I am using TDA4VM custom board and streaming 2 videos to fixed IPs in Unicast UDP streaming.

We have requirement of traffic controlling to only one streaming video using tc filter commands.

The output network of tda4 is connected to 1Gbps network

Requirements - UDP video streaming 1 (192.168.44.12, port 5004) - 1Gbps
Requirements - UDP video streaming 2 (192.168.44.11, port 5006) - 500kbps

We are using below commands to control the bandwidth using tc filter commands on particular vlan (vlan44)

          

    tc qdisc add dev vlan44 root handle 1: htb default 10
    sleep 1
    tc class add dev vlan44 parent 1: classid 1:1 htb rate 1000mbit ceil 1000mbit
    tc class add dev vlan44 parent 1:1 classid 1:10 htb rate 1000mbit ceil 1000mbit prio 2
    tc class add dev vlan44 parent 1:1 classid 1:11 htb rate 500kbit ceil 500kbit prio 1
    tc filter add dev vlan44 protocol ip parent 1:0 prio 2 u32 match ip dst 0.0.0.0 flowid 1:10
    tc filter add dev vlan44 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.44.11 flowid 1:11

To validate the changes, I used iperf3 commands and I am able to see the logs suggested the changes reflected.

root@j7-evm:~# iperf3 -V -c 192.168.44.12 -p 5004 -u -b1000M -t1000
Starting Test: protocol: UDP, 1 streams, 1438 byte blocks, omitting 0 seconds, 1000 second test, tos 0
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  94.2 MBytes   790 Mbits/sec  68679  
[  5]   1.00-2.00   sec  84.1 MBytes   705 Mbits/sec  61293  
[  5]   2.00-3.00   sec  87.5 MBytes   734 Mbits/sec  63779 



root@j7-evm:/datafs/tools# iperf3 -V -c 192.168.44.11 -p 5006 -u -b1000M -t1000
Starting Test: protocol: UDP, 1 streams, 1438 byte blocks, omitting 0 seconds, 1000 second test, tos 0
[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec  70.2 KBytes   575 Kbits/sec  50  
[  5]   1.00-2.00   sec  25.3 KBytes   207 Kbits/sec  18  
[  5]   2.00-3.00   sec  33.7 KBytes   276 Kbits/sec  24  
[  5]   3.00-4.00   sec  11.2 KBytes  92.0 Kbits/sec  8  
[  5]   4.00-5.00   sec  18.3 KBytes   150 Kbits/sec  13  
[  5]   5.00-6.00   sec  52.0 KBytes   426 Kbits/sec  37


But when the actual video streaming started, many packets drop observed for video streaming 2 which is expected but should not had impacted the video streaming 1 which is connected in 1Gpbs netowork.
Kindly help us to evaluate and root cause the issue with tc filter commands.

Regards

Gajanan

  • Hi Gajanan,

    Which SDK are you working with? Are you using Ethfw or Native linux driver?

    Is there any chance your video streaming application is using SO_PRIO for assigning priority?

    Regards,
    Tanmay

  • Hi Tanmay,

    I am using PROCESSOR-SDK-LINUX-J721E & using Ethfw.

    Not using any SO_PRIO during streaming.

    Regards

    Gajanan

  • Hi Gajanan,

    We won't be able to support you on this due to the following reasons :

    • Ethfw does not currently have support for implementing rate limiting in CPSW hardware. The tc commands used, do this in the software.
    • The tc commands used are a part of the linux networking stack. The driver we develop for CPSW does not have much to do with them.
    • After using the tc command, you have already verified the effect using iperf. This points to the fact the the issue lies somewhere in the video streaming software for which we can't help you.

    Sorry for the same.

    Let me know if there is something else I can help you with.

    Regards,
    Tanmay