xref: /original-bsd/share/doc/smm/18.net/3.t (revision 3839ed90)
Copyright (c) 1983, 1986 The Regents of the University of California.
All rights reserved.

%sccs.include.redist.roff%

@(#)3.t 6.5 (Berkeley) 04/17/91

.nr H2 1 .ds RH Goals

\s+2Goals\s0

The networking system was designed with the goal of supporting multiple protocol families and addressing styles. This required information to be ``hidden'' in common data structures which could be manipulated by all the pieces of the system, but which required interpretation only by the protocols which ``controlled'' it. The system described here attempts to minimize the use of shared data structures to those kept by a suite of protocols (a protocol family), and those used for rendezvous between ``synchronous'' and ``asynchronous'' portions of the system (e.g. queues of data packets are filled at interrupt time and emptied based on user requests).

A major goal of the system was to provide a framework within which new protocols and hardware could be easily be supported. To this end, a great deal of effort has been extended to create utility routines which hide many of the more complex and/or hardware dependent chores of networking. Later sections describe the utility routines and the underlying data structures they manipulate.