Chapter 6 Future work
For the limit of time, we can not do more stuff for packet delay and queue reordering. Here we conceptually talk about how to do packet delay.
Firstly, we define our own queue. Each item in this queue should have at least a timer and a structure—sk_buff. We also need to define some function to do “enqueue”, “dequeue”.
Secondly, on the Linux virtual DEVICE layer, we check the packet received (in file: /usr/src/linuc/net/core/dev.c function: int netif_rx(struct sk_buff *skb); ). If the packet if not for the target connection, we just let it go normal. Otherwise, set the timer and put this packet to the queue we defined just now and process the next packet. When the timer in our queue goes off, it triggers some function to dequeue the packet and process it as what netif_rx() originally does (Note: don’t call netif_rx directly since we have changed netif_rx() ). Due to the shortage of time, we will leave the detail work for someone who is interested in this topics.