Subject: CVS commit: src/sys
To: None <>
From: Jonathan Stone <>
List: source-changes
Date: 05/27/2004 19:19:00
Module Name:	src
Committed By:	jonathan
Date:		Thu May 27 19:19:00 UTC 2004

Modified Files:
	src/sys/kern: uipc_socket2.c
	src/sys/netipsec: key.c
	src/sys/sys: socketvar.h

Log Message:
Rework to make  FAST_IPSEC PF_KEY dumps unicast and reliable:

Introduce new socket-layer function sbappendaddrchain() to
sys/kern/uipc_socket2.c: like sbappendaddr(), only takes a chain of
records and appends the entire chain in one pass. sbappendaddrchain()
also takes an `sbprio' argument, which indicates the caller requires
special `reliable' handling of the socket-buffer.  `sbprio' is
described in sys/sys/socketvar.h, although (for now) the different
levels are not yet implemented.

Rework sys/netipsec/key.c PF_KEY DUMP responses to build a chain of
mbuf records, one record per dump response. Unicast the entire chain
to the requestor, with all-or-none semantics.

Changed files;
 	sys/socketvar.h kern/uipc_socket2.c netipsec/key.c
Reviewed by:
	Jason Thorpe, Thor Lancelot Simon, post to tech-kern.

Todo: request pullup to 2.0 branch.  Post-2.0, rework sysctl() API for
dumps to use new record-chain constructors. Actually implement
the distinct service levels in sbappendaddrchain() so we can use them
to make PF_KEY ACQUIRE messages more reliable.

To generate a diff of this commit:
cvs rdiff -r1.62 -r1.63 src/sys/kern/uipc_socket2.c
cvs rdiff -r1.18 -r1.19 src/sys/netipsec/key.c
cvs rdiff -r1.75 -r1.76 src/sys/sys/socketvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.