[2617] in linux-net channel archive
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)