Difference between revisions of "Llk-packet-diagram"

From Earlham CS Department
Jump to navigation Jump to search
Line 17: Line 17:
 
<div id="1">
 
<div id="1">
 
1.  Timer location: net/socket.c:1551, sys_send
 
1.  Timer location: net/socket.c:1551, sys_send
 +
Data is copied from user to kernel space via copy_from_user
 
</div>
 
</div>
 
<div id="2">
 
<div id="2">
 
2.  Timer location: net/ipv4/af_inet.c:661, inet_sendmsg
 
2.  Timer location: net/ipv4/af_inet.c:661, inet_sendmsg
 +
Kernel buffer is wrapped into a BSD socket data structure
 
</div>
 
</div>
 
<div id="3">
 
<div id="3">
 
3.  Timer location: net/ipv4/tcp_output.c:374, tcp_transmit_skb
 
3.  Timer location: net/ipv4/tcp_output.c:374, tcp_transmit_skb
 +
TCP wrapper placed around data.
 
</div>
 
</div>
 
<div id="4">
 
<div id="4">
 
4.  Timer location: net/ipv4/ip_output.c:240, ip_finish_output
 
4.  Timer location: net/ipv4/ip_output.c:240, ip_finish_output
 +
IP wrapper placed around data.
 
</div>
 
</div>
 
<div id="5">
 
<div id="5">
5.  Timer location: net/ipv4/ip_output.c:224, tp_hard_start_xmit  
+
5.  Timer location: net/ipv4/ip_output.c:224, tp_hard_start_xmit
 +
Data is copied from kernel memory to card memory and transmitted over the line.  This begins in hard_start_xmit, which is a function defined by the driver.
 
</div>
 
</div>
 
<div id="6">
 
<div id="6">
 
6.  Timer location: net/core/dev.c:1843,1849, process_backlog
 
6.  Timer location: net/core/dev.c:1843,1849, process_backlog
 +
Data is taken from line to card memory by driver then copied from card memorty to kernel memory via skb buffer dequeuing (skb_dequeue).
 
</div>
 
</div>
 
<div id="7">
 
<div id="7">

Revision as of 13:43, 11 October 2005

Packet-diagram.png


1. Timer location: net/socket.c:1551, sys_send Data is copied from user to kernel space via copy_from_user

2. Timer location: net/ipv4/af_inet.c:661, inet_sendmsg Kernel buffer is wrapped into a BSD socket data structure

3. Timer location: net/ipv4/tcp_output.c:374, tcp_transmit_skb TCP wrapper placed around data.

4. Timer location: net/ipv4/ip_output.c:240, ip_finish_output IP wrapper placed around data.

5. Timer location: net/ipv4/ip_output.c:224, tp_hard_start_xmit Data is copied from kernel memory to card memory and transmitted over the line. This begins in hard_start_xmit, which is a function defined by the driver.

6. Timer location: net/core/dev.c:1843,1849, process_backlog Data is taken from line to card memory by driver then copied from card memorty to kernel memory via skb buffer dequeuing (skb_dequeue).

7. Timer location: net/ipv4/ip_input.c:293, ip_rcv_finish

8. Timer location: net/ipv4/tcp_ipv4.c:1744, tcp_v4_rcv

9. Timer location: net/ipv4/tcp_input.c:4362,4398,4449, tcp_rcv_established

10. Timer location: net/socket.c:1601, sys_recvfrom