Subject: lib/11464: libc won't do RPC packets for UDP larger than 8k total
To: None <gnats-bugs@gnats.netbsd.org>
From: None <fredette@mit.edu>
List: netbsd-bugs
Date: 11/10/2000 09:47:21
>Number: 11464
>Category: lib
>Synopsis: libc won't do RPC packets for UDP larger than 8k total
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: lib-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Nov 10 09:47:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: Matthew Fredette
>Release: NetBSD/i386 1.5_ALPHA
>Organization:
self
>Environment:
NetBSD sofa.home 1.5_ALPHA NetBSD 1.5_ALPHA (SOFA) #16: Thu Aug 31 17:59:32 EDT 2000
root@sofa.home:/usr/src/sys/arch/i386/compile/SOFA i386
>Description:
You cannot write an RPC server that will receive or send RPC UDP
packets larger than 8192 bytes when fully assembled. The function
__rpc_get_t_size (in lib/libc/rpc/rpc_generic.c) enforces this.
For example, this prevents writing a userspace NFS server that can
handle 8k data blocks in reads or writes.
>How-To-Repeat:
Inspection. __rpc_get_t_size clips any requested buffer size
for UDP to 8192.
>Fix:
Increase this value. I'm not sure to what; I'm not familiar
enough with how RPCs get encoded. Maybe an additional 256 or
512 bytes would do it?
>Release-Note:
>Audit-Trail:
>Unformatted: