[2617] in linux-net channel archive

home help back first fref pref prev next nref lref last post

back_log queue in sock struct.

daemon@ATHENA.MIT.EDU (jaya@iitk.ernet.in)
Sun Apr 21 14:15:30 1996

From: jaya@iitk.ernet.in
To: linux-net@vger.rutgers.edu
Date: 	Sun, 21 Apr 96 23:06:24 IST

Hi,

I'm new to the linux world and this mailing list. So please forgive me
if this had been discussed previously, but give me some pointers.

I am trying to understand the TCP code in 1.3.24 and not able to figure out
exactly what the "back_log" queue in the sock structure is being used for. 
I think the following can be an explanation. Please correct me if I'm way off 
the mark.

The tcp_read fiddles around with the recv queue for too long a time to turn
off the timer interrupts for the complete duration. So the sock struct is
"locked" using the "inuse" field. When the tcp_rcv is run from the timer
interrupt, it will queue up the incoming packet on the back_log queue if 
the inuse field is set (which implies that read is in progress and recv 
queue should not be touched). I think even tcp_rcv needs to do significant 
amount of work on the recv queue to insert the incoming packet at a proper 
place. The packets from here will make it to the recv queue when the 
"release_sock" is called next time.

(Can somebody please explain me what exactly this release_sock is doing?) 

Digressing slightly, is there any documentation available on the networking
subsystem design?  Any information will be deeply appreciated.

Thanks,
---
-jayaram
(jaya@iitk.ernet.in)


home help back first fref pref prev next nref lref last post