>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"

Reply via email to