On Thu, 17 Nov 2011, Gao feng wrote: > I has a question about the tcp reopen request in func tcp_in_window. > The code is below,what confuse me is that the var end is never after sender->td_end. > > static int tcp_in_window(struct ip_ct_tcp *state, > ... > if (sender->td_end == 0) { > ... > } else if (((state->state == TCP_CONNTRACK_SYN_SENT > && dir == IP_CT_DIR_ORIGINAL) > || (state->state == TCP_CONNTRACK_SYN_RECV > && dir == IP_CT_DIR_REPLY)) > && after(end, sender->td_end)) { > > ... > } > ... > } > > > When nf_conn rcv a syn request in TIME_WAIT state,the new_state is SYN_SNET. > in func tcp_packet, this nf_conn will be kill by nf_ct_kill and the syn packet will repeat. No, the connection entry won't be destroyed by nf_ct_kill. Why do you think so? > So we will have a new nf_conn,whose sender->td_end is reset in func tcp_new. > > finally,when this syn packet arrive tcp_in_window,the var end is equal to sender->td_end. > > Maybe there is the other situation Or what I understand is totally wrong? Best regards, Jozsef - E-mail : kadlec@xxxxxxxxxxxxxxxxx, kadlec@xxxxxxxxxxxx PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt Address : KFKI Research Institute for Particle and Nuclear Physics H-1525 Budapest 114, POB. 49, Hungary -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html