2010-06-26 7 views
0

J'ai du mal à trouver l'API du noyau pour permettre à certains utilitaires qdisc de lancer l'utilitaire "tc" à partir de l'espace utilisateur.comment gérer qdisc à partir du noyau

J'ai trouvé les modules dans net/sched/sch _ *. C mais je ne suis pas sûr de savoir comment les utiliser. Par exemple, si je veux activer TBF, dois-je faire quelque chose comme ce qui suit dans mon code?

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); Est-ce suffisant? Comment attacher qdisc à un périphérique réseau?

Répondre

0

La modification qdisc est exposée uniquement à l'API netlink. Cela signifie qu'il est conçu pour être modifié à partir de l'espace utilisateur. Cependant, si qdisc est défini en utilisant tc, ses paramètres peuvent être modifiés dans le noyau en appelant la fonction .change().

Questions connexes