When learning TCP three way handshake, I learn that TCP has a syn queue for those connections that haven't been established, and an accept queue for those who have been established. But I can only find one queue named icsk_accept_queue in  inet_connection_sock struct, and I find that when the function tcp_conn_request() is called, the connection in the queue will be removed. But I haven't seen the connection being added to another queue. The accept() just return this connection. So I'm really confused.

- Why is there only one queue icsk_accept_queue?

- Is  icsk_accept_queue the syn queue? 

- If it is, then where is the accept queue?

Thanks for reading, hope for any possible help.