rwatson 0fb4154318 Merge ipx_pcb.c:1.45, ipx_pcb.h:1.25, ipx_usrreq.c:1.53, spx_usrreq.c:1.76
from HEAD to RELENG_6:

  Rework IPX/SPX socket and pcb reference model:

  - Introduce invariant that all IPX/SPX sockets will have valid so_pcb
    pointers to ipxpcb structures, and that for SPX, the control block
    pointer will always be valid.  Don't attempt to free the socket or
    pcb at various odd points, such as disconnect.

  - Add a new ipxpcb flag, IPXP_DROPPED, which will be set in place of
    freeing PCB's so that this invariant can be maintained.  This flag
    is now checked instead of a NULL check in various socket protocol
    calls.

  - Introduce many assertions that this invariant holds.

  - Various pieces of code, such as the SPX timer code, no longer needs
    to jump through hoops in case it frees a PCB while running.

  - Break out ipx_pcbfree() from ipx_pcbdetach().  Likewise
    spx_pcbdetach().

  - Comment on some SMP-related limitations to the SPX code.

  - Update copyrights.
2006-06-08 23:31:16 +00:00
..
2006-06-08 23:05:53 +00:00

$FreeBSD$

This protocol implements IPX/SPX over Ethernet_II frame type 0x8137.
Please note: the SPX implementation may require further work and testing
to insure proper operation.

Mike Mitchell, Network Engineer
AMTECH Systems Corporation, Technology and Manufacturing
8600 Jefferson Street, Albuquerque, New Mexico 87113 (505) 856-8000
supervisor@alb.asctmd.com

John Hay
Some Company
Some Address
jhay@mikom.csir.co.za

Adapted for multi-processor, multi-threaded network stack by Robert N. M.
Watson, Computer Laboratory, University of Cambridge.

--- Copyright Information ---
/*-

Copyright (c) 1984, 1985, 1986, 1987, 1993
The Regents of the University of California.  All rights reserved.

Modifications Copyright (c) 1995, Mike Mitchell
Modifications Copyright (c) 1995, John Hay
Modifications Copyright (c) 2004-2006 Robert N. M. Watson

*/