April 14, 20251 yr Currently unraid uses CONFIG_NET_SCH_DEFAULT=y for qdisc. However that makes CONFIG_NET_SCH_HTB not available, causing the following error $ virsh net-start default error: Failed to start network default error: internal error: Child process (/sbin/tc qdisc add dev virbr0 root handle 1: htb default 2) unexpected exit status 2: Error: Specified qdisc kind is unknown. Probably we can directly keep aligned with major Linux distributions on this config switch. Here's Ubuntu 24.04's related Kconfig, for reference ``` CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_HFSC=y CONFIG_NET_SCH_ATM=y CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_MULTIQ=y CONFIG_NET_SCH_RED=y CONFIG_NET_SCH_SFB=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_CBS=y CONFIG_NET_SCH_ETF=y CONFIG_NET_SCH_TAPRIO=y CONFIG_NET_SCH_GRED=y CONFIG_NET_SCH_DSMARK=y CONFIG_NET_SCH_NETEM=y CONFIG_NET_SCH_DRR=y CONFIG_NET_SCH_MQPRIO=y CONFIG_NET_SCH_SKBPRIO=y CONFIG_NET_SCH_CHOKE=y CONFIG_NET_SCH_QFQ=y CONFIG_NET_SCH_CODEL=y CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_CAKE=y CONFIG_NET_SCH_FQ=y CONFIG_NET_SCH_HHF=y CONFIG_NET_SCH_PIE=y CONFIG_NET_SCH_FQ_PIE=y CONFIG_NET_SCH_INGRESS=y CONFIG_NET_SCH_PLUG=y CONFIG_NET_SCH_ETS=y # CONFIG_NET_SCH_DEFAULT is not set CONFIG_NET_SCH_FIFO=y ```
April 16, 20251 yr On 4/14/2025 at 12:39 PM, Misty said: Currently unraid uses CONFIG_NET_SCH_DEFAULT=y for qdisc. However that makes CONFIG_NET_SCH_HTB not available, causing the following error $ virsh net-start default error: Failed to start network default error: internal error: Child process (/sbin/tc qdisc add dev virbr0 root handle 1: htb default 2) unexpected exit status 2: Error: Specified qdisc kind is unknown. Probably we can directly keep aligned with major Linux distributions on this config switch. Here's Ubuntu 24.04's related Kconfig, for reference ``` CONFIG_NET_SCH_CBQ=y CONFIG_NET_SCH_HTB=y CONFIG_NET_SCH_HFSC=y CONFIG_NET_SCH_ATM=y CONFIG_NET_SCH_PRIO=y CONFIG_NET_SCH_MULTIQ=y CONFIG_NET_SCH_RED=y CONFIG_NET_SCH_SFB=y CONFIG_NET_SCH_SFQ=y CONFIG_NET_SCH_TEQL=y CONFIG_NET_SCH_TBF=y CONFIG_NET_SCH_CBS=y CONFIG_NET_SCH_ETF=y CONFIG_NET_SCH_TAPRIO=y CONFIG_NET_SCH_GRED=y CONFIG_NET_SCH_DSMARK=y CONFIG_NET_SCH_NETEM=y CONFIG_NET_SCH_DRR=y CONFIG_NET_SCH_MQPRIO=y CONFIG_NET_SCH_SKBPRIO=y CONFIG_NET_SCH_CHOKE=y CONFIG_NET_SCH_QFQ=y CONFIG_NET_SCH_CODEL=y CONFIG_NET_SCH_FQ_CODEL=y CONFIG_NET_SCH_CAKE=y CONFIG_NET_SCH_FQ=y CONFIG_NET_SCH_HHF=y CONFIG_NET_SCH_PIE=y CONFIG_NET_SCH_FQ_PIE=y CONFIG_NET_SCH_INGRESS=y CONFIG_NET_SCH_PLUG=y CONFIG_NET_SCH_ETS=y # CONFIG_NET_SCH_DEFAULT is not set CONFIG_NET_SCH_FIFO=y ``` So have you modified the default network? Can you provide xml of changes you have made?
April 16, 20251 yr Author Hi @SimonF , I didn't modified the default network. Actually I've digged into libvirt's code, and the problem will occur when nftables was installed in the system (please see the `virNetDevBandWidthAddTxFilterParentQdisc` in the following source code). https://github.com/libvirt/libvirt/blob/ac6519084c2036618c3625ea5738a7eeb052346a/src/network/network_nftables.c#L966 However, the code also shows that if someone wants to enable bandwidth limit in their network, it will also trigger the faulting command because bandwidth limit is also requiring HTB qdisc (see https://github.com/libvirt/libvirt/blob/c5a73f75bc6cae4f466d0a6344d5b3277ac9c2f4/src/util/virnetdevbandwidth.c#L269)😞 Considered that enabling bandwidth-limit related qdisc is a usual practice (see below), I believe the above Kconfig changes should be applied: - Android: https://android.googlesource.com/kernel/configs/+/d0f6fd4b226244b0701cbc46c860f0077dd72c8e^1..d0f6fd4b226244b0701cbc46c860f0077dd72c8e/ - Debian/Alpine/Fedora/ArchLinux: https://hlandau.github.io/kconfigreport/option/CONFIG_NET_SCH_HTB.xhtml - Others: https://oracle.github.io/kconfigs/?config=UTS_RELEASE&config=NET_SCH_HTB Edited April 16, 20251 yr by Misty
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.