有一个tc(8)
用于流量整形的用户空间工具,即
tc qdisc add dev eth0 root tbf rate 10mbit latency 100ms burst 5000
.
该tc
命令的内部实现使用 netlink 将特定消息发送到内核,这反过来会相应地改变事情。但是,对于这个特定过程,内核代码没有公共接口——就像没有公共 API 一样tc_qdisc_add(x,y,z)
——因为一切都取决于来自 netlink 消息本身的数据。
那么,是否有一个技巧可以简化流程并模拟来自内核的消息?有没有办法绕过用户空间调用tc
并仅从内核上下文中获得相同的结果?