freebsd-nq/sys/netipx
Robert Watson 818812244b 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.

MFC after:	1 month
2006-03-25 17:28:42 +00:00
..
ipx_cksum.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ipx_if.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ipx_input.c Comment that raw output filter code for IPX should run in a netisr so as 2006-03-24 00:00:23 +00:00
ipx_ip.c Include kernel.h to get NET_NEEDS_GIANT() definition, which for some 2006-03-24 20:08:48 +00:00
ipx_ip.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
ipx_outputfl.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ipx_pcb.c Rework IPX/SPX socket and pcb reference model: 2006-03-25 17:28:42 +00:00
ipx_pcb.h Rework IPX/SPX socket and pcb reference model: 2006-03-25 17:28:42 +00:00
ipx_proto.c Use sparse initializers for "struct domain" and "struct protosw", 2005-11-09 13:29:16 +00:00
ipx_usrreq.c Rework IPX/SPX socket and pcb reference model: 2006-03-25 17:28:42 +00:00
ipx_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ipx.c Recent changes have locked down most of the highly dynamic data 2005-01-09 05:34:37 +00:00
ipx.h Back out ipx.h:1.18, which introduced a Linux API compatibility field in 2005-05-27 12:25:42 +00:00
README Update copyright to 2006, comment on my contribution to this code in the 2006-03-24 00:02:15 +00:00
spx_debug.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
spx_debug.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
spx_timer.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
spx_usrreq.c Rework IPX/SPX socket and pcb reference model: 2006-03-25 17:28:42 +00:00
spx_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
spx.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +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

*/