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[1], 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.