>Number: 175153 >Category: kern >Synopsis: will there miss a FIN when do TSO? >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jan 09 06:10:00 UTC 2013 >Closed-Date: >Last-Modified: >Originator: Zhouyi Zhou >Release: FreeBSD current >Organization: ICT CAS >Environment: FreeBSD host48 8.2-RELEASE FreeBSD 8.2-RELEASE root@host48:/usr/src/sys.orig/amd64/compile/GENERIC >Description: Hi, I guess there will miss a FIN when do TSO in function tcp_output, following is the code piece from CVS: /* * Adjust data length if insertion of options will * bump the packet length beyond the t_maxopd length. * Clear the FIN bit because we cut off the tail of * the segment. */ if (len + optlen + ipoptlen > tp->t_maxopd) { flags &= ~TH_FIN;
if (tso) { .... if (tp->t_flags & TF_NEEDFIN) sendalot = 1; /////////////////////////////////////////////////////// My question is when the FreeBSD close the established tcp connection actively, the TF_NEEDFIN will not be set (am I got wrong?), and when previous computation has not set sendalot to 1, the the tsoed packet will be the last packet to send out in this round, so a FIN is missed. Thanks for your time >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"