I was trying out some stuff that deals with creating Q of the sk_buffs as they are passed from routines in ip_output.c to
dev_queue_xmit() in /net/core/dev.c . Using sk_buff_head to do the Q-ing and timer_list to control the rate at which skbs are passed from my routine to dev_queue_xmit().
The code is able to control the rate at which skbs are passed to dev_queue_xmit() but seems to have a few bugs.
The error msgs that I encountered are "killing of interrupt handlers" and "kfree-ing of memory allocated not using kalloc" (when I try to have an upper bound on the Q size).
It would be great if someone could give me a clue about the possible bugs.