Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Mar 1997 05:11:20 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        hackers@FreeBSD.ORG, jkh@time.cdrom.com
Subject:   Re: Weirdie with SLIP line seen here too...
Message-ID:  <199703061811.FAA12675@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>Strange, now I'm seeing that magic "bit pattern-o-death" that
>guarantees that the download of a given file over a slip line will
>always hang in a given place.  See if any of you fellow sufferers can
>download the following file:
>
>	ftp://freefall.freebsd.org/pub/jkh/badbits
>
>If not, we may be onto something which could enable more reasonable
>failure analysis to take place.

Oops.  I made the clist limit too small by a factor of 2 (special
characters like the ones in "badbits" get expanded by a factor of 2).
This problem only affects the sender.  The problem was rare because the
limit had 0-254 bytes of slop, depending on the mtu and the buffer state.
The default mtu of 552 had 48-175 bytes of slop depending on the buffer
state.  An mtu of 352 works for "badbits" for some reason.

Try this fix.

Bruce

diff -c2 if_sl.c~ if_sl.c
*** if_sl.c~	Mon Feb 24 00:37:09 1997
--- if_sl.c	Fri Mar  7 04:46:33 1997
***************
*** 298,303 ****
  			clist_alloc_cblocks(&tp->t_canq, 0, 0);
  			clist_alloc_cblocks(&tp->t_outq,
! 					    sc->sc_if.if_mtu + SLIP_HIWAT,
! 					    sc->sc_if.if_mtu + SLIP_HIWAT);
  			clist_alloc_cblocks(&tp->t_rawq, 0, 0);
  
--- 295,300 ----
  			clist_alloc_cblocks(&tp->t_canq, 0, 0);
  			clist_alloc_cblocks(&tp->t_outq,
! 			    SLIP_HIWAT + 2 * sc->sc_if.if_mtu + 1,
! 			    SLIP_HIWAT + 2 * sc->sc_if.if_mtu + 1);
  			clist_alloc_cblocks(&tp->t_rawq, 0, 0);
  
***************
*** 974,979 ****
  			if (tp != NULL)
  				clist_alloc_cblocks(&tp->t_outq,
! 						    ifp->if_mtu + SLIP_HIWAT,
! 						    ifp->if_mtu + SLIP_HIWAT);
  		}
  		break;
--- 971,976 ----
  			if (tp != NULL)
  				clist_alloc_cblocks(&tp->t_outq,
! 				    SLIP_HIWAT + 2 * ifp->if_mtu + 1,
! 				    SLIP_HIWAT + 2 * ifp->if_mtu + 1);
  		}
  		break;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703061811.FAA12675>