【发布时间】:2021-03-14 10:29:38
【问题描述】:
有一个名为tc(8) 的用户空间工具用于流量整形,即
tc qdisc add dev eth0 root tbf rate 10mbit latency 100ms burst 5000.
tc 命令的内部实现使用 netlink 将特定消息发送到内核,这反过来会相应地改变事情。
但是,对于这个特定过程,内核代码没有公共接口——例如,没有像 tc_qdisc_add(x,y,z) 这样的公共 API——因为一切都取决于来自 netlink 消息本身的数据。
那么,有没有什么技巧可以简化流程并模拟来自内核的消息?有没有办法绕过对tc 的用户空间调用并仅从内核上下文中获得相同的结果?
【问题讨论】:
-
考虑将
systemd用于此类目的或编写您自己的/sbin/init -
您想从内核模块调整
tc学科? -
是的,我想从内核中模拟(特定)tc 调用的行为。
标签: c linux networking linux-kernel trafficshaping