Tôi muốn viết một kỷ luật xếp hàng tc mới cho hạt nhân Linux. Mục tiêu là xếp hàng ví dụ. mười gói và sau đó gửi tất cả chúng ra (tôi biết, đó không thực sự là một điều tốt cho mạng, nhưng tôi muốn làm một số nghiên cứu với điều đó). Vì vậy, những gì đã làm: Tôi có một bộ xương của một mô-đun lịch mới (enqueue, dequeue chức năng và vv), mà cũng là một cách chính xác biên dịch và làm việc chính xác (một gói xếp hàng, một gói gửi ra- không có gì đặc biệt). Tôi đang biên dịch nó trên ubuntu maverick với các nguồn giống như hạt nhân đang chạy và đặt mô-đun của tôi trong Makefile và Kconfig.New linux tc xếp hàng kỷ luật để tạo ra các vụ nổ ... hết kiến thức
Tôi đã tìm ra, rằng mỗi khi hàm enqueue được gọi, sau đó hàm dequeue được gọi bởi qdisc_restart (trong sch_generic.c) - và chỉ một gói được gửi đi.
Vấn đề của tôi là: làm cách nào tôi có thể gửi nhiều hơn một gói từ mô-đun của mình đến giao diện mạng, như tôi đã thu thập ví dụ. 10 gói và bây giờ tôi muốn gửi tất cả chúng ra?
Tôi đã thử gọi hàm sch_direct_xmit (từ sch_generic.c) với các tham số giống như trong qdisc_restart (và cơ chế khóa) - nhưng sau đó, việc biên dịch mô-đun của tôi không thành công: biểu tượng không rõ sch_direct_xmit (nhưng greping/proc/kallsyms cho điều đó mang lại cho tôi một kết quả). Bất kỳ ý tưởng, có gì sai với điều đó? Nếu một số mã được yêu cầu, chỉ cho tôi biết (tôi bao gồm các .h giống như trong sched_generic.c)
BR Christoph