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: