как управлять qdisc из ядра - PullRequest
0 голосов
/ 26 июня 2010

У меня проблемы с поиском API ядра, позволяющего запускать некоторые утилиты qdisc policy "tc" из пространства пользователя.

Я нашел модули в net / sched / sch _ *. C, но неконечно, как их использовать.

Например, если я хочу включить TBF, я должен сделать что-то подобное в моем коде?

    static struct Qdisc_ops tbf_qdisc_ops __read_mostly = {
    .next           =       NULL,
    .cl_ops         =       &tbf_class_ops,
    .id             =       "tbf",
    .priv_size      =       sizeof(struct tbf_sched_data),
    .enqueue        =       tbf_enqueue,
    .dequeue        =       tbf_dequeue,
    .peek           =       qdisc_peek_dequeued,
    .drop           =       tbf_drop,
    .init           =       tbf_init,
    .reset          =       tbf_reset,
    .destroy        =       tbf_destroy,
    .change         =       tbf_change,
    .dump           =       tbf_dump,
    .owner          =       THIS_MODULE,

};register_qdisc (& tbf_qdisc_ops);Этого достаточно?Как мне подключить qdisc к сетевому устройству?

1 Ответ

0 голосов
/ 23 августа 2010

Модификация qdisc доступна только для API netlink. Это означает, что он предназначен для изменения из пользовательского пространства. Однако, если qdisc определен с использованием tc, его параметры можно изменить в ядре, вызвав функцию .change ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...