Quiero escribir una nueva disciplina de colas tc para el kernel de Linux. El objetivo es hacer cola, por ej. diez paquetes y luego enviarlos a todos (lo sé, eso no es realmente bueno para las redes, pero quiero investigar un poco con eso).Nueva disciplina de colas linux tc para crear ráfagas ... se ha quedado sin conocimiento
Entonces, lo que ya está hecho: tengo un esqueleto de un nuevo módulo (enqueue, dequeue functions, etc.) que también está compilando correctamente y funcionando correctamente (un paquete en cola, un paquete enviado, nada especial)) Lo estoy compilando en ubuntu maverick con las mismas fuentes que el núcleo en ejecución y coloque mi módulo en Makefile y Kconfig.
Me di cuenta de que cada vez que se llama a la función en cola, la función dequeue es llamada por qdisc_restart (en sch_generic.c) y solo se envía un paquete.
Mi problema es: ¿cómo puedo enviar más de un paquete de mi módulo a la interfaz de red, como he recogido para, por ejemplo. 10 paquetes y ahora quiero enviarlos a todos?
Intenté llamar a la función sch_direct_xmit (desde sch_generic.c) con los mismos parámetros que en qdisc_restart (y mecanismos de bloqueo) - pero luego, la compilación de mi módulo falla: el símbolo desconocido sch_direct_xmit (pero greping/proc/kallsyms porque eso me da un resultado). Alguna idea, ¿qué pasa con eso? Si se requiere un cierto código, házmelo saber (Incluí el mismo .h como en sched_generic.c)
BR Christoph