5. Troubleshooting¶
5.1. RTNETLINK answers: No such file or directory¶
5.1.1. Phenomenon¶
tcset
command failed with an error message:
RTNETLINK answers: No such file or directory
Error: Specified qdisc not found
- Example:
$ sudo tcset eth0 --rate 1Mbps [ERROR] tcconfig: command execution failed command=/usr/sbin/tc qdisc add dev eth0 parent 1a1a:2 handle 2873: netem delay 10ms stderr=Error: Specified qdisc not found.
5.1.2. Solution¶
Execute the following command to load sch_netem
module.
The cause of the error is sch_netem
kernel module is not loaded in your system which is required to set up traffic control.
$ sudo modprobe sch_netem
If the command fails with the below message, you need to install an additional kernel module.
- Example - Fedora:
$ sudo modprobe sch_netem modprobe: FATAL: Module sch_netem not found in directory /lib/modules/4.20.11-200.fc29.x86_64
In that case, install kernel-modules-extra
package.
This package includes the sch_netem
module.
- Example - Fedora:
$ sudo dnf install -y kernel-modules-extra
Load sch_netem
module after the package installation.
$ sudo modprobe sch_netem
$
5.2. RTNETLINK answers: Operation not supported¶
5.2.1. Phenomenon¶
tcset
command with --direction incoming
failed with an error message
RTNETLINK answers: Operation not supported
.
5.2.2. Solutions¶
Checking Linux kernel configurations and reconfiguring them if required configurations are disabled.
The cause may be some mandatory kernel configurations are disabled.
The following configurations are needed to be enabled to use --direction incoming
option.
CONFIG_IP_ADVANCED_ROUTER
CONFIG_IP_MULTIPLE_TABLES
CONFIG_NETFILTER_NETLINK
CONFIG_NETFILTER_NETLINK_QUEUE
CONFIG_NETFILTER_NETLINK_LOG
CONFIG_NF_CT_NETLINK
CONFIG_NETFILTER_XT_TARGET_MARK
CONFIG_NET_SCHED
CONFIG_NET_SCH_INGRESS
CONFIG_SCSI_NETLINK
e.g. Kernel configurations that enabled the above configurations (Debian)
$ cat /boot/config-3.16.0-4-amd64 | egrep "NETFILTER_NETLINK=|NETFILTER_NETLINK_QUEUE=|NETFILTER_NETLINK_LOG=|NF_CT_NETLINK=|SCSI_NETLINK=|IP_ADVANCED_ROUTER=|NET_SCH_INGRESS=|NET_SCHED=|IP_MULTIPLE_TABLES=|NETFILTER_XT_TARGET_MARK="
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_NETFILTER_NETLINK=m
CONFIG_NETFILTER_NETLINK_QUEUE=m
CONFIG_NETFILTER_NETLINK_LOG=m
CONFIG_NF_CT_NETLINK=m
CONFIG_NETFILTER_XT_TARGET_MARK=m
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_SCSI_NETLINK=y
These configurations need to be either y
or m
.
If some of the configurations are disabled, you need to:
enable the kernel configurations
build kernel
using the compiled kernel image as the boot kernel
Note
The name of the kernel configuration file (/boot/config-3.16.0-4-amd64
) differs depending on the environment.