From archie@whistle.com  Mon Jul  7 19:24:22 1997
Received: from whistle.com (s205m131.whistle.com [207.76.205.131])
          by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA22475
          for <FreeBSD-gnats-submit@freebsd.org>; Mon, 7 Jul 1997 19:24:20 -0700 (PDT)
Received: (from smap@localhost) by whistle.com (8.7.5/8.6.12) id TAA27109 for <FreeBSD-gnats-submit@freebsd.org>; Mon, 7 Jul 1997 19:23:47 -0700 (PDT)
Received: from bubba.whistle.com(207.76.205.7) by whistle.com via smap (V1.3)
	id sma027105; Mon Jul  7 19:23:29 1997
Received: (from archie@localhost) by bubba.whistle.com (8.8.5/8.6.12) id TAA18159; Mon, 7 Jul 1997 19:23:29 -0700 (PDT)
Message-Id: <199707080223.TAA18159@bubba.whistle.com>
Date: Mon, 7 Jul 1997 19:23:29 -0700 (PDT)
From: Archie Cobbs <archie@whistle.com>
Reply-To: archie@whistle.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: VJ compression drops packets with IP+TCP header length > MLEN
X-Send-Pr-Version: 3.2

>Number:         4052
>Category:       kern
>Synopsis:       VJ compression drops packets with IP+TCP header length > MLEN
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul  7 19:30:01 PDT 1997
>Closed-Date:    Wed Apr 5 11:34:19 PDT 2000
>Last-Modified:  Wed Apr  5 11:34:55 PDT 2000
>Originator:     Archie Cobbs
>Release:        FreeBSD 2.2-STABLE i386
>Organization:
Whistle Communications, Inc.
>Environment:


>Description:

/sys/net/slcompress.h contains this definition:

  #define MAX_HDR MLEN   /* XXX 4bsd-ism: should really be 128 */

MLEN is 108 or therabouts. This means any packet with combined
IP and TCP header length greater than MLEN will be dropped when
Van Jacobson compression is enabled (ie., slip or ppp).

>How-To-Repeat:


>Fix:

One possibility...

1. Increase MAX_HDR to 128
2. Make sl_compress_tcp() and sl_uncompress_tcp() not require
   a contiguous buffer

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: brian 
Responsible-Changed-When: Sat Oct 4 18:45:31 PDT 1997 
Responsible-Changed-Why:  
I guess I'll have this - nobody else seems to want it. 

From: Bill Fenner <fenner@parc.xerox.com>
To: brian@freebsd.org, freebsd-gnats-submit@freebsd.org
Cc:  Subject: Re: kern/4052: VJ compression drops packets with IP+TCP header length > MLEN
Date: Sat, 4 Oct 1997 20:44:51 PDT

 My impression was that this should just be suspended.  It's too bad the
 discussion afterwards didn't end up in the audit-trail, but it's in the
 freebsd-bugs mail archive.
 
   Bill

From: Bill Fenner <fenner@parc.xerox.com>
To: brian@freebsd.org, freebsd-gnats-submit@freebsd.org
Cc: fenner@parc.xerox.com
Subject: Re: kern/4052: VJ compression drops packets with IP+TCP header length > MLEN
Date: Sat, 4 Oct 1997 21:59:58 PDT

 Oops; the discussion wasn't on freebsd-bugs in response to this PR.
 The discussion was on freebsd-hackers and inspired sending this PR.
 (Search for MAX_HDR on freebsd-hackers.)  The PR was filed so that we
 would remember to fix it some day, not because it's a pressing problem
 that is actually causing anyone trouble and desperately needs to be
 fixed.
 
 So, if you have a brilliant solution, please feel free to fix it,
 but this is not a problem that is affecting anyone now and probably
 won't in the near future, so it might be better to focus limited
 resources elsewhere.
 
   Bill
Responsible-Changed-From-To: brian->freebsd-bugs 
Responsible-Changed-By: brian 
Responsible-Changed-When: Sun Oct 5 01:17:56 PDT 1997 
Responsible-Changed-Why:  
I've got lots of more pressing things on my list 
State-Changed-From-To: open->suspended 
State-Changed-By: phk 
State-Changed-When: Mon May 4 03:50:27 PDT 1998 
State-Changed-Why:  
Tricky, tricky... 
State-Changed-From-To: suspended->closed 
State-Changed-By: archie 
State-Changed-When: Wed Apr 5 11:34:19 PDT 2000 
State-Changed-Why:  
MAX_HDR was increased to 128 by rev. 1.15 of net/slcompress.h 
. 
>Unformatted:

Something relevent from the -hackers archive from Bill:
: Date:      Sun, 6 Jul 1997 20:57:57 PDT
: From:      Bill Fenner <fenner@parc.xerox.com>
: To:        dg@root.com
: Sender:    owner-hackers@freebsd.org
: Subject:   Re: VJ compression and MAX_HDR 
: 
: David Greenman <dg@root.com> wrote:
: >   I think the case of IP+TCP header > MLEN is more than rare...I think it 
: >never happens. Even with all options, the IP header doesn't exceed 64 bytes.
: 
: Both IP and TCP headers have maximum lengths of 60 bytes.  A maximum size
: IP + max size TCP header, however, is 120 bytes, which > MLEN.
: 
: sl_compress_tcp() requires the IP and TCP headers to be contiguous; the
: only way to require that without requiring them to be shorter than MLEN
: is to require that sl_compress_tcp() be passed a cluster mbuf.  Failing
: that, the code that checks TCP options (maybe just the last BCMP in the
: check-if-we-should-send-this-one-compressed) needs to learn about mbuf
: chains.
: 
:   Bill
