netem qdisc 読み
先週実施したこと
netem qdisc の実装調査
netem qdisc の実装調査
https://wiki.bit-hive.com/linuxkernelmemo/pg/%E9%80%81%E5%8F%97%E4%BF%A1
netem qdisc に skb が enqueue されるところ
https://elixir.bootlin.com/linux/v6.7.6/source/net/sched/sch_netem.c#L443
hrtimer でパケットを遅延させている
qdisc_watchdog が hrtimer の function として指定されている
https://elixir.bootlin.com/linux/v4.3/source/net/sched/sch_api.c#L576
qdisc_watchdog 内で
__netif_scheule
が呼び出され、
qdisc_run
でキューにあるパケットを送信しようとする
netem_dequeue
が qdisc_run によって呼び出されている
https://elixir.bootlin.com/linux/v6.7.6/source/net/sched/sch_netem.c#L708
struct Qdisc sch
の
struct netem_sched_data q
から先頭の skb を取得し、その skb の
time_to_send
がすでに現在よりも前になっているならば送出している?
q の各 skb の time_to_send を変更できればよい?
今後の予定
修論テーマ決め
delay の書き換えを試す