Avnu / tsn-doc

Documentation on TSN Linux components, interfaces and usage
BSD 3-Clause "New" or "Revised" License
40 stars 20 forks source link

CBS Qdisc config fail with i218-LM #19

Open maxmbed opened 4 years ago

maxmbed commented 4 years ago

Hi,

I am getting stuck at the configuration of CBS Qdisc as shown below:

$ sudo tc qdisc add dev $DEV parent root handle 6666 mqprio \
>         num_tc 3 \
>         map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \
>         queues 1@0 1@1 2@2 \
>         hw 0
RTNETLINK answers: Operation not supported

I am using the intel i218-LM chip. Would it be possible the error is raised due to lack of support on i218-LM ?

System: Debian 10, kernel v4.19.0-10-amd64

vcgomes commented 4 years ago

Yeah. I agree that the naming scheme doesn't make much sense, but Intel i218-LM is not based on Intel i210. It's even from another family, i.e. it uses the e1000e driver. I am sorry.

maxmbed commented 4 years ago

Thanks for quick reply.

But I am bit confuse. In datasheet of i218-LM, chapter 11 mentions support of 802.1AS "to ensure that synchronization requirements are met for time sensitive applications, such as audio and video"

So why do we need this Qdsic configuration ? Is it because AVB requires "higher level" of time sensitive criteria ?

vcgomes commented 4 years ago

Oh, sorry. I must have written my last comment before coffee. I completely missed that you were only interested in mqprio, and not the rest (CBS, ETF). It seems that I218 only has two queues, so the mqprio configuration should be different. Something like this might work:

$ sudo tc qdisc add dev $DEV parent root handle 6666 mqprio \ num_tc 2 \ map 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 \ queues 1@0 1@1\ hw 0

Just be aware, that as I said earlier, i218 doesn't have hardware support for offloading the other qdiscs.

Sorry about the confusion.

maxmbed commented 4 years ago

Hi, Indeed, I sees i218 support two Rx & Tx queue in datasheet. Thanks for your feedback.

I tried to setup the qdsic mqprio using your command sample but it didn't work (RTNETLINK answers: Operation not supported). Have tried to change parameters but there is a lack of knowledge on my end to understand how to set things for my NIC. Especially about map priorities. man tc-mqprio didn't help to understand P0 -> P15 parameters. If you do you have any links or docs about this, feel free to share.

I might input some confusion on my request too: Initially, I wanted to set an AVB talker but with only audio capability and I believe I would require to set both MQPRIO, CBS and ETF qdisc. Isn't that correct to fulfill AVB ? Or some qdisc can be omitted here ?

elabbing commented 3 years ago

Hi, maybe this could help you: https://github.com/jeez/iproute2/issues/1#issuecomment-484713936

edersondisouza commented 3 years ago

Hi @maxmbed ,

Initially, I wanted to set an AVB talker but with only audio capability and I believe I would require to set both MQPRIO, CBS and ETF qdisc. Isn't that correct to fulfill AVB ? Or some qdisc can be omitted here ?

Well, CBS and ETF are the ones that do the job regarding AVB - MQPRIO is there so that AVB traffic can be sent to the right qdisc (CBS and/or ETF).

In theory, you can use only CBS or ETF, or both (as suggested in the AVB part of this tutorial), depends on your use case.