intel / iotg_tsn_ref_sw

IOTG Time-Sensitive Networking Reference Software
BSD 3-Clause "New" or "Revised" License
141 stars 68 forks source link

Unknown qdisc "taprio", hence option is unparsable #5

Closed EnfangCui closed 5 years ago

EnfangCui commented 5 years ago

I used the ubuntu 18.04 with Linux kernel 5.0.1 including "taprio" drivers at Networking support --> Networking options --> QOS and /or fair queueing. But when I run the "tc qdisc replace dev eth0 parent root handle 100 taprio " command, it gives error: "Unknown qdisc "taprio", hence option is unparsable". I wonder how to make the Linux support taprio. Can you give me a more detailed kernel configuration? Look forward to your kind reply. Thanks!

vincentxw commented 5 years ago

Hi, there's 2 things.

If you enabled TAPRIO qdisc as a module, make sure you load it via modprobe sch_taprio.

Next, your Ubuntu's TC (part of iproute2) may not be of the latest version. You can get the iproute2 version we used here. Use the specific commit as the TAPRIO tc command has changed since the time we wrote these set of applications.

EnfangCui commented 5 years ago

Thank you very much. I installed the latest version of iproute2 and solved the problem.

kcn21 commented 3 years ago

Hello @EnfangCui @vincentxw , I have downloaded the latest version of iproute2 from the iproute2 GitHub repo and it has a q_taprio,c file. but when I run the taprio command : sudo tc qdisc replace dev enp2s0 parent root handle 100 taprio num_tc 5 map 0 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 queues 1@0 1@1 1@2 1@3 1@4 base-time 1564628923967325838 sched-entry S 01 4000000 sched-entry S 02 4000000 sched-entry S 04 4000000 sched-entry S 08 4000000 sched-entry S 10 4000000 clockid CLOCK_TAI

It is giving me the error: Error: Specified qdisc not found.

I have tried "sudo modprobe sch_taprio" but it giving me following error modprobe: FATAL: Module sch_taprio not found in directory /lib/modules/5.12.0-rc3-rt3.

Kindly help me resolve this issue.

Thanks, Kunj.

EnfangCui commented 3 years ago

@kcn21 Have you recompiled the kernel and turned on the corresponding kernel options?

kcn21 commented 3 years ago

@kcn21 Have you recompiled the kernel and turned on the corresponding kernel options?

@EnfangCui No. What specific option do I have to follow? I have executed the following steps till now.

  1. I have cloned the iproute2 from the following link https://github.com/shemminger/iproute2https://github.com/shemminger/iproute2

2, sudo make

  1. sudo make install

I have upgraded iproute2 to another PC and it worked but on my PC it is showing specified qdisc not found error.

liing0228 commented 2 years ago

@kcn21 did you fix the issue ? i faced the same issue right now and i am using kernel 4.20 and 5.4. If you can help me i will be grateful.

kcn21 commented 2 years ago

@kcn21 did you fix the issue? I faced the same issue right now, and i am using kernel 4.20 and 5.4. If you can help me, i will be grateful.

Hello @liing0228, you have to enable modules for taprio in the kernel, but many kernels didn't have modules for the TAPRIO, so I think that's why you are facing this issue. Please prefer kernel above 5.0 versions if you didn't have dependencies on kernel versions.

Hello @EnfangCui and @vincentxw, I am following tsn.readthdocs.io for AVB examples, and they have written to use the 4.19 kernel for AVB examples. I also tried kernel version 5.12, but it shows an AAF PDU error and abruptly stops the sending. So I have to use Linux Kernel 4.19. Still, in Linux Kernel 4.19, there are no options to enable the TAPRIO module in the kernel under Networking support --> Networking options --> QOS and /or a fair queueing section.
Can you please show a way to add a qdisc module in the kernel? I have updated the iproute2 also, but as there is no module for taprio in the kernel, there is no advantage of iproute2 degradation. Your guidance in this situation is highly appreciated

Thanks, Kunj Naik