diff --git a/share/doc/iso/README b/share/doc/iso/README deleted file mode 100644 index 7f3c679ea344..000000000000 --- a/share/doc/iso/README +++ /dev/null @@ -1,3 +0,0 @@ -The documentation contained here is horribly out of -date and not to be trusted. However, it's probably -better than nothing at all. diff --git a/share/doc/iso/ucb/addr.nr b/share/doc/iso/ucb/addr.nr deleted file mode 100644 index 92ea9fafb90e..000000000000 --- a/share/doc/iso/ucb/addr.nr +++ /dev/null @@ -1,157 +0,0 @@ -.\" $Id$ -.\" -.NC "NSAP Addresses & Routing" -.sh 1 "OSI Address Formats" -.pp -ARGO supports an ISO address family, AF_ISO, in addition to the -DoD Internet address family, AF_INET. -Addresses in the family AF_ISO -take the form described by ISO 8348/DAD2, which is an addendum to the -OSI network service standard that describes network layer addressing. -.sh 2 "ISO 8348/DAD2 Tutorial" -.pp -.\" FIGURE -.\".so figs/osi_addr.nr -.so ../wisc/figs/addrfmt.nr -.CF -shows the -format of an OSI NSAP-address. -The address has two major parts: the initial domain part -(IDP) and the domain specific part (DSP). The IDP is further divided into -two parts: the authority and format identifier (AFI) and the -initial domain identifier (IDI). The AFI specifies the format of the -IDI, the authority responsible for allocating values of the IDI, and -the syntax of the DSP. The IDI specifies the network addressing domain -from which DSP values are allocated, and the authority responsible for -allocating DSP values. -.sh 2 "Supported Formats" -.pp -ARGO supports three types of ISO NSAP-addresses: -one type with AFI 37(hex) and two types with AFI 47(hex). -.sh 3 "AFI 37" -.pp -This value of the AFI defines the IDI to be an X.121 address or DTE -address. -The DTE address is encoded in binary coded decimal. -The DSP syntax is binary. -This form is intended to be used when communicating -across a public data network (PDN). -The ARGO software and documentation -refer to this type of NSAP-address as a -\*(lqtype 37.\*(rq -address. -.sh 3 "AFI 47" -.pp -The value of 47 for the AFI defines the IDI to be a 4 digit International -Code Designator (ICD) allocated according to ISO 6523. -ARGO support two -ICD values. -.sh 4 "ICD 0004" -.pp -The ICD value of 0004 is assigned to OSINET, -an experimental OSI network overseen by -National Institute of Science and Technology.\** -.(f -\** formerly the National Bureau of Standards -.)f -When this style of NSAP-address -is used, -the DSP is divided into four parts: an organization identifier (2 bytes), -a subnet identifier (2 bytes), -an SNPA-part (4-8 bytes), and -an NSAP selector (1 byte). -The use of these fields is defined by the OSINET steering committee. -This type of address is known as an -\*(lqOSINET\*(rq -address. -.sh 4 "ICD 0006" -.pp -The ICD value of 0006 is assigned to the Department of Defense (DoD). -In ARGO, NSAP-addresses with an ICD value of 0006 -are of the format defined in RFC 986, a proposal for embedding DARPA Internet -addresses within an OSI NSAP-address. -In this case, the DSP takes the form: -version (1 byte), DARPA Internet Address (4 bytes), upper layer protocol -identifier (1 byte). -This is called an -\*(lqrfc986\*(rq -address. -.sh 1 "Internal Representation" -.pp -Internally, an NSAP address takes the form -.(b -\fC -.TS -tab(+); -l s s s s. -struct iso_addr { -.T& -l l l l l. -+u_char+isoa_afi;+/* authority & -+++format id */ -+union+{+ -++struct addr_37+addr_37;+/* x.121 */ -++struct addr_osinet+addr_osinet;+/* OSINET */ -++struct addr_rfc986+addr_rfc986;+/* Internet*/ -+}+isoa_u; -+u_char+isoa_len;+/* length */ -} -.TE -\fR -.)b -The field \fIisoa_afi\fR contains the AFI for the address. -The union -\fIisoa_u\fR contains the remainder of the address. -The length of the entire address (the AFI, IDI, and DSP) is -stored in \fIisoa_len\fR. -.sh 1 "Network Layer Routing" -.pp -Routing at the network layer is performed by the -routing procedure \fIrtalloc()\fR as described in Chapter 5. -\fIRtalloc()\fR was designed for used in the DoD Internet -domain. -An unfortunate -effect of this is that routing decisions are based upon either the -entire NSAP address or the network portion of the address. -The problem is defining the network portion of an NSAP address. -The location and extent of the -network portion of an NSAP address depends on the -style of NSAP address. -This decision is made by the function \fIiso_netof()\fR. -.sh 2 "Network Portion of Type 37 Addresses" -.pp -There is no network portion of an X.121 address. -In ARGO, the network portion of a type 37 address -is defined to be just the AFI. -The obvious consequence of this is that all type 37 addresses will -match all other type 37 addresses -in a network-portion comparison. -.sh 2 "Network Portion of OSINET Addresses" -.pp -The network portion of an OSINET address is the organization identifier and -the subnet identifier. -.sh 2 "Network Portion of RFC986 Addresses" -.pp -The network portion of an RFC986 address is the network portion of the -embedded DARPA Internet address. -ARGO does not support subnetting, a method of subdividing Internet addresses. -.sh 1 "NSAP Address / Subnetwork Point of Attachment Mapping" -.pp -In order to transmit a packet on a real subnetwork, the destination -NSAP address -must be mapped to an SNPA address. -An SNPA address is the real, "hardware" address -of a system on a network. -This address corresponds to the 6 byte Ethernet or Token Ring -Adapter address, -or to the DTE address, which may be up to 7 bytes -long (14 decimal digits). -.pp -A table, \fIsnpa_cache\fR is kept in the kernel which contains the -translation between NSAP-addresses and SNPA-addresses. -This table is used by \fIiso_snparesolve()\fR whenever a -datagram must be dispatched. -The table is maintained by the ISO ES-IS protocol entity. -Entries can be added and deleted -by the user program \fIclnlutil(8)\fR and -by the CONS entity. diff --git a/share/doc/iso/ucb/def.nr b/share/doc/iso/ucb/def.nr deleted file mode 100644 index 9d8e8b8449d4..000000000000 --- a/share/doc/iso/ucb/def.nr +++ /dev/null @@ -1,144 +0,0 @@ -.NC "Definitions" -.sh 1 "General Terms" -.ip "Kernel" 5 -The source code or binary module for the Acis Operating System -(also know as AOS and IBM/4.3). -.ip "User process" 5 -An instance of a program that is -running in unprivileged mode, in the unprivileged address space -commonly know as "user address space", in other words, not -part of the kernel. -.ip "IPC" 5 -Interprocess communication, the mechanism by which two different -user processes send messages to each other. -.ip "Unix, AOS" 5 -ACIS Operating System, the special testing release of Berkeley Unix 4.4BSD. -.ip "PCB, pcb" 5 -Protocol control block. Each instance of a protocol machine -keeps status information, addresses, and in some cases queues -in a pcb for each connection or socket. -.ip "Domain" 5 -In the Berkeley Unix environment, a domain is an abstract entity which -comprises a network architecture, addressing scheme, address format, -network protocols, and transport protocols. -.sh 1 "Transport Layer Terms" -.ip "ISO 8073" -ISO Draft International Standard 8073, Transport Protocol Specification -.ip "TP" 5 -The collection of transport -classes that have been implemented in ARGO, classes 0 and 4. -Also means the ARGO implementation of TP. -.ip "TP 0" 5 -Transport class 0. -.ip "TP 4" 5 -Transport class 4. -.ip "Transport entity" 5 -Software or hardware that implements the elements of procedure -described in ISO 8073. -.ip "Transport user" 5 -User process that make use of the services -provided by a transport entity. -.ip "Transport service interface" 5 -The syntax and semantics of the set of procedures, functions, and system calls -that are invoked by a transport user, -through which the services of the transport entity are delivered. -.ip "TPDU" 5 -Transport protocol data unit, a packet that is -passed from one transport entity to another. -.ip "TSDU" 5 -Transport service data unit, the logical unit of data that is -passed from a transport entity to a transport user, or from -a transport user to a transport entity. -.ip "CR TPDU" 5 -Connection request TPDU. -.ip "CC TPDU" 5 -Connection confirm TPDU. -.ip "DR TPDU" 5 -Disconnect request TPDU. -.ip "DC TPDU" 5 -Disconnect confirm TPDU. -.ip "DT TPDU" 5 -Normal data TPDU. -.ip "XPD TPDU" 5 -Expedited data TPDU. -.ip "AK TPDU" 5 -Normal data acknowledgment TPDU. -.ip "XAK TPDU" 5 -Expedited data acknowledgment TPDU. -.ip "ER TPDU" 5 -Error TPDU. -.sh 1 "Network Layer Terms" -.ip "ISO 8473" -ISO Draft International Standard 8473, connectionless network protocol. -.ip "CONS" -Connection Oriented Network Service. -.ip "COSNS" -Connection Oriented Sub-Network Service. -.ip "CLNS" -Connectionless Network Service. -.ip "CLNP" -Connectionless Network Protocol, or ISO 8473. -.ip "Network Entity" -Software or hardware that implements the elements of procedure described -in ISO 8473. -.ip "Network Service User" -Software components that make use of the services provided by a network -entity. -.ip "Network Service Provider" -Software components that provide the services of a network entity. -.ip "NSAP" -Network Service Access Point. The point at which the OSI network service -is made available to the network service user by the network service -provider. -.ip "NSAP address" -Information that the network service provider needs to identify an -NSAP. The source and destination address fields of a CLNP packet -are NSAP addresses. -.ip "ES" -End system. A system running the complete suite of OSI protocols which can -act as an end point for communication. -.ip "IS" -Intermediate system. A system running the OSI layers 1, 2, and 3 which -can act only a packet router. -.ip "SNPA" -The Subnetwork Point of Attachement is the point where a \fIreal\fR -end or intermediate system is attached to a \fIreal\fR subnetwork. -.ip "SNPA address" -Information that a \fIreal\fR subnetwork need to identify a \fIreal\fR end -or intermediate system. This is commonly referred to as the hardware address. -.ip "NPDU" -Network Protocol Data Unit. The unit of data which is exchanged between -network entities. -.ip "DT NPDU" -Normal data NPDU. -.ip "ER NPDU" -Error report NPDU. -.ip "Initial NPDU" -A NPDU carrying the whole of the user data from an N-UNITDATA request. -.ip "Derived NPDU" -a NPDU whose field ar identical to those of an initial NPDU, except that it -carries only a segment of the user data from an N-UNITDATA request. -.ip "Segment" -A distinct unit of data consisting of part or all of the user data provided -in the N-UNITDATA request and delivered in the N-UNITDATA indication. -.ip "Segmentation" -The act of generation two or more derived NPDUs from an initial or derived -NPDU. -.ip "Fragment" -A DoD Internet Protocol term with the same meaning as "segment". Used -synonymously with "segment." -.ip "Fragmentation" -A DoD Internet Protocol term with the same meaning as "segmentation". Used -synonymously with "segmentation." -.ip "Reassembly" -The act of regenerating an initial NPDU from two ore more derived NPDUs. -.ip "MTU" -Maximum transmission unit. The maximum size of a packet that can be -transmitted on a medium or through a protocol. -For example, the MTU of the TP protocol is 8192 bytes, the MTU -of and Ethernet device is 1500 bytes, and the MTU of the OSI Network -service is 512 bytes. -.ip "Network interface" -The device used to attach a computer to a network, for example, -an Ethernet adapter, or a Token Ring adapter. -This terminology is inherited from BSD Unix. diff --git a/share/doc/iso/ucb/intro.nr b/share/doc/iso/ucb/intro.nr deleted file mode 100644 index 196b7ae21fee..000000000000 --- a/share/doc/iso/ucb/intro.nr +++ /dev/null @@ -1,72 +0,0 @@ -.NC "Introduction" -.sh 1 "Introduction" -.pp -This document describes the usage of the ISO -transport and network layers written for the ACIS Operating System, -the IBM ACIS port of Berkeley 4.3 Unix\** -.(f -\** Unix is a registered trademark of AT&T. -.)f -for the IBM RT PC, -hereafter called AOS, as modified by UC Berkeley. -This document describes work in progress and is an extremely -hasty job of editing an earlier document written by colleagues -at the university of Wisconsin. -It is to be regarded as an emergency manual prepared for testers -at NIST and should not be redistributed further. -As such, there are philosophical -statements that Berkeley fundamentally disagrees with, which -we do not presently have the time to rip out. -Collectively, this work is called the Wisconsin ARGO kernel. -The ARGO kernel supports the -the connection-oriented ISO transport service (COTS), the -ISO connectionless network service (CLNS) -and a -connection-oriented network service (CONS). -The COTS is provided by the ISO transport protocol TP, -ISO 8073 Revised. -The CLNS is provided by the connectionless network protocol, -ISO 8473. -The CONS is provided by the X.25 protocols. -The ARGO implementation of the CONS is not a complete -ISO CONS, but contains enough of the CONS to support -the COTS and the CLNS (in the latter case, the CONS can be -viewed as a subnetwork service). -.pp -The purposes of this document are -.ip "1) " -to describe the transport service and the software interface -between the user and provider of this service, -.ip "2) " -to describe the network service and the software interface it -provides. -.pp -It is assumed that the reader is familiar with the \fBC\fR -programming language, -with Unix conventions, and with the ISO specifications listed in Appendix A. -.sh 1 "Organization" -.pp -This document is composed of several chapters. -Chapter One contains this introduction. Chapter Two presents a -definition of terms and phrases used throughout the document. -Chapter Three describes the transport service interface, which is -the interface between the transport protocol implementation software and the transport user software. -Chapter Four describes the network service interface, and the interface -above and below the network layer. -Chapter Five explains the format of an OSI address. -Chapter Six describes the -the architecture of the interprocess communication support in the -kernel, which to a large degree mandates -the design of a protocol implementation for a 4.3 Unix kernel. -.\" Appendix A is a list of the applicable ISO standards. -.\" The manual pages relevant to the transport and network layers -.\" are included as Appendix B. -.pp -Several conventions are followed in this document. -All procedure names and system call names are followed -by a pair of parentheses, for example, -.i read (). -References to manual pages consist of the name of the -manual page, followed by the section in which -the man page is found: -.i read (2). diff --git a/share/doc/iso/ucb/ipc.nr b/share/doc/iso/ucb/ipc.nr deleted file mode 100644 index 694497087d47..000000000000 --- a/share/doc/iso/ucb/ipc.nr +++ /dev/null @@ -1,331 +0,0 @@ -.NC "The Design of Unix IPC" -.sh 1 "General" -.pp -The ARGO implementation of -TP and CLNP was designed to fit into the AOS -kernel -as easily as possible. -All the standard protocol hooks are used. -To understand the design, it is useful to have -read -Leffler, Joy, and Fabry: -\*(lq4.2 BSD Networking Implementation Notes\*(rq July 1983. -This section describes the -design of the IPC support in the AOS kernel. -.sh 1 "Functional Unit Overview" -.pp -The -AOS -kernel -is a monolithic program of considerable size and complexity. -The code can be separated into parts of distinct function, -but there are no kernel processes per se. -The kernel code is either executed on behalf of a user -process, in which case the kernel was entered by a system call, -or it is executed on behalf of a hardware or software interrupt. -The following sections describe briefly the major functional units -of the kernel. -.\" FIGURE -.so ../wisc/figs/func_units.nr -.CF -shows the arrangement of these kernel units and -their interactions. -.sh 2 "The file system." -.pp -.sh 2 "Virtual memory support." -.pp -This includes protection, swapping, paging, and -text sharing. -.sh 2 "Blocked device drivers (disks, tapes)." -.pp -All these drivers share some minor functional units, -such as buffer management and bus support -for the various types of busses on the machine. -.sh 2 "Interprocess communication (IPC)." -.pp -This includes -support for various protocols, -buffer management, and a standard interface for inter-protocol -communication. -.sh 2 "Network interface drivers." -.pp -These drivers are closely tied to the IPC support. -They use the IPC's buffer management unit rather -than the buffers used by the blocked device drivers. -The interface between these drivers and the rest of the kernel -differs from the interface used by the blocked devices. -.sh 2 "Tty driver" -.pp -This is terminal support, including the user interface -and the device drivers. -.sh 2 "System call interface." -.pp -This handles signals, traps, and system calls. -.sh 2 "Clock." -.pp -The clock is used in various forms by many -other units. -.sh 2 "User process support (the rest)." -.pp -This includes support for accounting, process creation, -control, scheduling, and destruction. -.pp -.sh 2 "IPC" -.pp -The major functional unit that supports IPC -can be divided into the following smaller functional -units. -.sh 3 "Buffer management." -.pp -All protocols share a pool of buffers called \fImbufs\fR. -The internal structure has changed considerably since 4.3: -.(b -\fC -.TS -tab(+); -l s s s. -struct mbuf { -.T& -l l l l. -+struct mbuf+*m_next;+/* next buffer in chain */ -+struct mbuf+*m_act;+/* link in 2-d structure */ -+u_long+m_len;+/* amount of data */ -+char *+m_data;+/* location of data */ -+short+m_type;+/* type of data */ -+short+m_flags;+/* note if EOR, Packet HDR, Ext. stored */ -+++/* If packet header add: */ -int+m_pkthdr.len;+/* total packet length */ -struct ifnet+*m_pkthdr.recvif;+/* rcv interface*/ -+++/* If external storage add: */ -+char +*m_ext.ext_buf;+/* start of buffer */ -+void+(*m_ext.ext_free)();+/* free routine if not the usual */ -+u_int+m_ext.ext_size;+/* size of buffer, for ext_free */ -+++/* For non external */ -+char+m_dat[depending];+/* done by unions, etc. */ -}; -.TE -\fR -.)b -.pp -There are two forms of mbufs - with and without external storage. -Small ones are 128 octets in 4.4BSD. -The data in these mbufs are located -in the mbuf structure itself. -Large mbufs, called \fIclusters\fR, are page-sized -and page-aligned. -They may be \*(lqcopied\*(rq by multiply mapping the pages they occupy. -They consist of a page of memory plus a small mbuf structure -whose fields are used -to link clusters into chains, but whose \fIm_dat\fR array is -not used. -The \fIm_data\fR field of the structure -is a pointer to the active data in all cases. -The remainder of the description in the argo document -is generally obsolete, and I am merely deleting the -rest of it at this point. -.sh 3 "Routing." -.pp -Routing decisions in the kernel are made by the procedure \fIrtalloc()\fR. -This procedure will scan the kernel routing tables (stored in mbufs) -looking for a route. -The argo document here also is quite obsolete. -We know keep a tree structure routing table, -and do matching under masks. -The structure for the routing entry contains tree related -stuff pointers (parent, l-r child for internal nodes, mask and address -for external nodes), and may be completely revised again -to make use of patricia trees. -.pp -If a route is not found, then a default route is used (if present). -.pp -If a route is found, the entity which called \fIrtalloc()\fR can use information -from the \fIrtentry\fR structure to dispatch the datagram. Specifically, the -datagram is queued on the interface identified by the interface -pointer \fIrt_ifp\fR. -.sh 3 "Socket code." -.pp -This is the protocol-independent part of the IPC support. -Each communication endpoint (which may or may not be associated -with a connection) is represented by the following structure: -.(b -\fC -.TS -tab(+); -l s s s. -struct socket { -.T& -l l l l. -+short+so_type;+/* type, e.g. SOCK_DGRAM */ -+short+so_options;+/* from socket call */ -+short+so_linger;+/* time to linger @ close */ -+short+so_state;+/* internal state flags */ -+caddr_t+so_pcb;+/* network layer pcb */ -+struct protosw+*so_proto;+/* protocol handle */ -+struct socket+*so_head;+/* ptr to accept socket */ -+struct socket+*so_q0;+/* queue of partial connX */ -+short+so_q0len;+/* # partials on so_q0 */ -+struct socket+*so_q;+/* queue of incoming connX */ -+short+so_qlen;+/* # connections on so_q */ -+short+so_qlimit;+/* max # queued connX */ -+struct sockbuf+{ -++short+sb_cc;+/* actual chars in buffer */ -++short+sb_hiwat;+/* max actual char count */ -++short+sb_mbcnt;+/* chars of mbufs used */ -++short+sb_mbmax;+/* max chars of mbufs to use */ -++short+sb_lowat;+/* low water mark (not used yet) */ -++short+sb_timeo;+/* timeout (not used ) */ -++struct mbuf+*sb_mb;+/* the mbuf chain */ -++struct proc+*sb_sel;+/* process selecting */ -++short+sb_flags;+/* flags, see below */ -+} so_rcv, so_snd; -+short+so_timeo;+/* connection timeout */ -+u_short+so_error;+/* error affecting connX */ -+short+so_oobmark;+/* oob mark (TCP only) */ -+short+so_pgrp;+/* pgrp for signals */ -} -.TE -\fR -.)b -.pp -The socket code maintains a pair of queues for each socket, -\fIso_rcv\fR and \fIso_snd\fR. -Each queue is associated with a count of the number of characters -in the queue, the maximum number of characters allowed to be put -in the queue, some status information (\fIsb_flags\fR), and -several unused fields. -For a send operation, data are copied from the user's address space -into chains of mbufs. -This is done by the socket module, which then calls the underlying -transport protocol module to place the data -on the send queue. -This is generally done by -appending to the chain beginning at \fIsb_mb\fR. -The socket module copies data from the \fIso_rcv\fR queue -to the user's address space to effect a receive operation. -The underlying transport layer is expected to have put incoming -data into \fIso_rcv\fR by calling procedures in this module. -.in -5 -.sh 3 "Transport protocol management." -.pp -All protocols and address types must be \*(lqregistered\*(rq in a -common way in order to use the IPC user interface. -Each protocol must have an entry in a protocol switch table. -Each entry takes the form: -.(b -\fC -.TS -tab(+); -l s s s. -struct protosw { -.T& -l l l l. -+short+pr_type;+/* socket type used for */ -+short+pr_family;+/* protocol family */ -+short+pr_protocol;+/* protocol # from the database */ -+short+pr_flags;+/* status information */ -+++/* protocol-protocol hooks */ -+int+(*pr_input)();+/* input (from below) */ -+int+(*pr_output)();+/* output (from above) */ -+int+(*pr_ctlinput)();+/* control input */ -+int+(*pr_ctloutput)();+/* control output */ -+++/* user-protocol hook */ -+int+(*pr_usrreq)();+/* user request: see list below */ -+++/* utility hooks */ -+int+(*pr_init)();+/* initialization hook */ -+int+(*pr_fasttimo)();+/* fast timeout (200ms) */ -+int+(*pr_slowtimo)();+/* slow timeout (500ms) */ -+int+(*pr_drain)();+/* free some space (not used) */ -} -.TE -\fR -.)b -.pp -Associated with each protocol are the types of socket -abstractions supported by the protocol (\fIpr_type\fR), the -format of the addresses used by the protocol (\fIpr_family\fR), -the routines to be called to perform -a standard set of protocol functions (\fIpr_input\fR,...,\fIpr_drain\fR), -and some status information (\fIpr_flags\fR). -The field pr_flags keeps such information as -SS_ISCONNECTED (this socket has a peer), -SS_ISCONNECTING (this socket is in the process of establishing -a connection), -SS_ISDISCONNECTING (this socket is in the process of being disconnected), -SS_CANTSENDMORE (this socket is half-closed and cannot send), -SS_CANTRCVMORE (this socket is half-closed and cannot receive). -There are some flags that are specific to the TCP concept -of out-of-band data. -A flag SS_OOBAVAIL was added for the ARGO implementation, to support -the TP concept of out-of-band data (expedited data). -.sh 3 "Network Interface Drivers" -.pp -The drivers for the devices attaching a Unix machine to a network -medium share a common interface to the protocol -software. -There is a common data structure for managing queues, -not surprisingly, a chain of mbufs. -There is a set of macros that are used to enqueue and -dequeue mbuf chains at high priority. -A driver -delivers an indication to a protocol entity when -an incoming packet has been placed on a queue by -issuing a -software -interrupt. -.sh 3 "Support for individual protocols." -.pp -Each protocol is written as a separate functional unit. -Because all protocols share the clock and the mbuf pool, they -are not entirely insulated from each other. -The details of TP are described in a section that -follows. -.\"***************************************************** -.\" FIGURE -.so ../wisc/figs/unix_ipc.nr -.pp -.CF -shows the arrangement of the IPC support. -.pp -The AOS -IPC was designed for DoD Internet protocols, all of -which run over DoD IP. -The assumptions that DoD Internet is the domain -and that DoD IP is the network layer -appear in the code and data structures in numerous places. -An example is that the transport protocols all directly call -IP routines. -There are no hooks in the data structures through -which the transport layer can choose a network level protocol. -Another example is that headers are assumed to -fit in one small mbuf (112 bytes for data in AOS). -Another example is this: -It is assumed in many places that buffer space is managed -in units of characters or octets. -The user data are copied from user address space into the kernel mbufs -amorphously -by the socket code, a protocol-independent part of the kernel. -This is fine for a stream protocol, but it means that a -packet protocol, in order to \*(lqpacketize\*(rq the data, -must perform a memory-to-memory copy -that might have been avoided had the protocol layer done the original -copy from user address space. -Furthermore, protocols that count credit in terms of packets or -buffers rather than characters do not work efficiently because -the computation of buffer space is not in the protocol module, -but rather it is in the socket code module. -This list of examples is not complete. -.pp -To summarize, adding a new transport protocol to the kernel consists of -adding entries to the tables in the protocol management -unit, -modifying the network interface driver(s) to recognize -new network protocol identifiers, -adding the -new system calls to the kernel and to the user library, -and -adding code modules for each of the protocols, -and correcting deficiencies in the socket code, -where the assumptions made about the nature of -transport protocols do not apply. -.i -(Touchy touchy, aren't we!?! -- Sklower) diff --git a/share/doc/iso/ucb/macros.nr b/share/doc/iso/ucb/macros.nr deleted file mode 100644 index 88ec2d3637ef..000000000000 --- a/share/doc/iso/ucb/macros.nr +++ /dev/null @@ -1,50 +0,0 @@ -.\" -.\" Macro to initialize chapter macros -.\" -.de IC -.nr CN 0 1 -.. -.\" -.\" Macro to begin new chapter -.\" -.de NC -.he 'ARGO user\'s Guide, Berkeley Hack Job''Chapter \\n+(CN' -.bp -.sh 0 "_" 1 1 1 1 1 1 -.sz +2 -.(l C -CHAPTER \\n(CN - -\fB\\$1\fR -.)l -.sp 1 -.(x -Chapter \\n(CN \\$1 -.)x -.sz -2 -.. -.\" -.\" Figure conventions: -.\" 1) do .so of figure source - figure reg incremented here -.\" 2) make references to figure via CF -.\" -.\" -.\" Macro to initialize figure register -.\" -.de IF -.nr FG 0 1 -.. -.\" -.\" Macro for current figure number -.\" -.de CF -Figure \\n(FG -.. -.\" -.\" Define this macro to include section headings in table of contents -.\" -.de $0 -.(x -Section \\$2 \\$1 -.)x -.. diff --git a/share/doc/iso/ucb/net_serv.nr b/share/doc/iso/ucb/net_serv.nr deleted file mode 100644 index c24eebd36557..000000000000 --- a/share/doc/iso/ucb/net_serv.nr +++ /dev/null @@ -1,163 +0,0 @@ -.NC "Network Service Interface" -.sh 1 "Connectionless Network Service" -.pp -This section describes the interface to the ISO connectionless network service. -There are really two interfaces to the CLNS: the internal interface -and the IPC interface. -The internal interface is based on -procedure calls. It is used only within the kernel. The IPC interface -allows a user process to access the CLNS directly. This is used only -for testing and debugging purposes. -.sh 2 "Primitives" -.pp -The CLNS is, by definition, connectionless. Therefore, there are no -primitives associated with connection establishment or connection release. -There is one primitive associated with data transfer: N-UNITDATA. -The parameters to a N-UNITDATA request are: source NSAP address, -destination NSAP address, quality of service, and user data. -The parameters of a N-UNITDATA indication are identical to those of the -request. -In this implementation, the quality of service parameter is not supported. -.sh 2 "Internal Interface" -.pp -Within the kernel, an N-UNITDATA request is effected by the procedure -\fIclnp_output()\fR: -.(b -\fC -.TS -tab(+); -l s s. -clnp_output(m0, isop, datalen, flags) -.T& -l l l. - +struct mbuf+*m0;+/* data */ - +struct isopcb+*isop;+/* ISO protocol control block */ - +int+datalen;+ - +int+flags;+/* flags */ -.TE -\fR -.)b -This procedure will construct a DT NPDU, route it, and transmit it on -the appropriate subnetwork. \fIM0\fR is an mbuf chain containing the -user data portion of the N-UNITDATA request. \fIIsopcb\fR is the iso protocol -control block previously allocated. \fIClnp_output\fR will use the following -fields: \fIisop_laddr\fR, isop_faddr, isop_route, isop_options, -isop_optindex, \fI and \fRisop_clnpcache\fR. -\fIDatalen\fR specifies the number of bytes of user data. -The \fIflags\fR parameter will be discussed in a subsequent chapter. -.pp -A N-UNITDATA indication occurs when a DT NPDU arrives. The indication is -generated by calling the appropriate upper layer protocol input routine. -In the case of TP, the procedure \fItpclnp_input()\fR is called: -.(b -\fC -.TS -tab(+); -l s s. -tpclnp_input(m, src, dst, len) -.T& -l l l. - +struct mbuf+*m;+/* DT NPDU */ - +struct iso_addr+*src;+/* source of packet */ - +struct iso_addr+*dst;+/* destination of packet */ - +int+len;+/* length of clnp header */ -.TE -\fR -.)b -\fIM\fR contains the entire DT NPDU packet. \fILen\fR indicates the size -of the CLNP header. In other words, the user data of the DT NPDU begins -\fIlen\fR bytes into \fIm\fR. \fISrc\fR and \fIdst\fR indicate the -source and destination NSAP addresses of the packet. -.sh 3 "CLNP/Subnetwork Interface" -.pp -The design of the interface between the subnetwork and the CLNP is -determined by the design of the Unix network interface drivers. CLNP -follows the conventional mechanisms for exchanging packets with a network -interface. See the section on Network Interface Drivers in Chapter Five -for more information on these conventions. -.sh 2 "IPC (\*(lqRaw\*(rq) Interface" -.pp -The IPC interface to the CLNS allows direct (called \*(lqraw\*(rq) -access to CLNP. -This interface is intended for testing and debugging only. -Its use results in the -transmission of CLNP datagrams with nonstandard identification fields. -These raw packets may be rejected by a system not employing the same -convention. See the section on network implementation for more information -about the conventions. -.pp -In order to gain access to the raw interface -a \fIsocket\fR, with address family AF_ISO and type SOCK_RAW must be created. -With this socket in hand, -the system calls \fIsendto()\fR and \fIrecvfrom()\fR can be used to -transmit and receive raw CLNP datagrams. -.sh 3 "Sending raw datagrams" -.pp -The format of the \fIsendto()\fR system call is: -.(b -\fC -.TS -tab(+); -l s s. -cc = sendto(s, msg, len, flags, to, tolen) -.T& -l l l. -int+cc,s; -char+*msg; -int+len,flags; -struct sockaddr+*to; -int+to; -.TE -\fR -.)b -\f\fIS\fR is the socket previously created. \fIMsg\fR is a pointer to -the data for the NPDU. CLNP will prepend a header to this data before -transmission. \fILen\fR specifies the number of bytes of data. The -\fIflags\fR parameter is unused and should be zero. \fITo\fR specifies the -NSAP address to be used as the destination address. The size (in bytes) -of \fIto\fR is given in \fItolen\fR. CLNP will automatically insert -the source address based upon the route taken by the packet. The number of -user data bytes transmitted is returned as \fIcc\fR. See \fIsendto(2)\fR -for more information on this system call. -.sh 3 "Receiving raw datagrams" -.pp -The format of the \fIrecvfrom()\fR system call is: -.(b -\fC -.TS -tab(+); -l s s. -cc = recvfrom(s, buf, len, flags, from, fromlen) -.T& -l l l. -int+cc,s; -char+*buf; -int+len,flags; -struct sockaddr+*from; -int+*fromlen; -.TE -\fR -.)b -When used with a CLNP raw socket \fIs\fR, \fIrecvfrom()\fR will read a -NPDU from the CLNS. If no packet is available, the call will block. -\fIBuf\fR specifies a buffer of \fIlen\fR bytes into which the NPDU will -be read. The entire packet, including the header, will be read into the -buffer. The \fIflags\fR parameter is unused, and should be zero. If -\fIfrom\fR is non-zero, the source address of the NPDU is filled in. -\fIFromlen\fR is a value-result parameter, initialized to the size of -the buffer associated with \fIfrom\fR, and modified on return to -indicate the actual size of the address stored there. The total number -of bytes received (header and data) is returned as \fIcc\fR. -See \fIrecvfrom(2)\fR for more information about this system call. -.sh 1 "Connection Oriented Network Service" -.pp -The ARGO Connection Oriented Network Service (CONS) is not a complete -implementation of the -OSI network service. -It is that subset of the OSI network service that is used -by ARGO Transport and by ARGO CLNP. -.\" FIGURE -.so ../wisc/figs/NS_primitives.nr -.pp -.CF -shows which CONS service elements are provided. diff --git a/share/doc/iso/ucb/program.nr b/share/doc/iso/ucb/program.nr deleted file mode 100644 index a43166176bc6..000000000000 --- a/share/doc/iso/ucb/program.nr +++ /dev/null @@ -1,42 +0,0 @@ -.\"$Header: program.nr,v 1.1 88/12/05 18:10:57 nhall Exp $ -.\"$Source: /usr/argo/doc/kernel/RCS/program.nr,v $ -.\" -.\" -.\" FONT CONVENTIONS -.\" -.\" \fIprocedure()\fR -.\" \fIsyscall()\fR -.\" \fImanpage(3)\fR -.\" \fIdata_structure_name\fR -.\" \fC/file/or/directory/name\fR -.\" \fC -.\" section of code -.\" \fR -.\" -.\" -.\" LOOK FOR ALL CASES OF 'writing' (as in, "at this writing") -.\" to be sure you've updated everything before distributing this! -.\" -.\"This file uses -me and tbl macros. -.so macros.nr -.\" .pn 1 -.IC -.IF -.\" .(l C -.\" .sz 16 -.\" Berkeley's Hack at the first 6 chapters of -.\" Wisconsin ARGO 1.0 Kernel Programmer's Guide for -.\" Academic Operating Systems 4.3 -.\" .sz 8 -.\" .)l -.he 'ARGO 1.0 Berkeley Revision User\'s Guide''' -.fo '%''December 9, 1988' -.\" .bp -.so intro.nr -.so def.nr -.so trans_serv.nr -.so net_serv.nr -.so ipc.nr -.so addr.nr -.bp -.xp diff --git a/share/doc/iso/ucb/trans_serv.nr b/share/doc/iso/ucb/trans_serv.nr deleted file mode 100644 index 2f6d15625443..000000000000 --- a/share/doc/iso/ucb/trans_serv.nr +++ /dev/null @@ -1,697 +0,0 @@ -.NC "Transport Service Interface" -.sh 1 "General" -.pp -It is assumed that the reader is acquainted with the -set of system calls and library routines that -compose the -Berkeley -Unix interprocess communication service (IPC). -To every extent possible -the ARGO transport service is provided by the same IPC mechanisms -that support -the transport-level services -included in the -AOS distribution. -In some instances, the interface -provided by AOS does not support -the services required by ISO 8073, -so system calls were added to support these services. -It is felt that this is superior to modifying -existing system calls, in order to avoid the -recoding of existing Unix utilities. -.pp -What follows is a description of the system calls -that are used to provide the transport service. -According to Unix custom, -the return value of a system call is 0 -if the call succeeds and -1 if -the call fails for any reason. -In the latter case, -the global variable -\fIerrno\fR contains more information -about the error that caused the failure. -In the descriptions of all the system calls for which -this custom is followed, -the return value is named -\fIstatus\fR. -.sh 1 "Connection establishment" -.pp -Establishing a TP connection is similar to -establishing a connection using any other -transport protocol supported by Unix. -The same system calls are used, and the passive open -is required. -Some of the parameters to the system calls differ. -.pp -The following call creates a communication endpoint called a -\fIsocket\fR. -It returns -a positive integer called a -\fIsocket descriptor\fR, -which -will be a parameter in all communication primitives. -.(b -\fC -.TS -tab(+); -l s s s. -s = socket( af, type, protocol ) -.T& -l l l. - +int+s,af,type,protocol; -.TE -\fR -.)b -.pp -The \fIaf\fR parameter describes the format of addresses -used in this communication. -Existing formats include AF_INET (DoD Internet addresses), -AF_PUP (Xerox PUP-I Internet addresses), and AF_UNIX -(addresses are Unix file names, for intra-machine IPC only). -TP runs in either the Internet domain or the ISO domain (AF_ISO). -When using the Internet domain, the network layer is the DoD Internet IP -with Internet-style addresses. The ISO domain uses the ISO -network service and ISO-style addresses\**. -.(f -\**ISO/DP 8348/DAD2 Addendum to the Network -Service Definition Covering Network Layer Addressing. -.)f -Regardless of the address family used, an address takes the -general form, -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr { -.T& -l l l l. - +u_char+sa_len;+/* length of sockaddr */ - +u_char+sa_family;+/* address family */ - +char+sa_data[14];+/* space for an address */ -}+ -.TE -\fR -.)b -.lp -.i -A sockaddr is no longer required to be precisely 16 bytes long. -The allocation of 14 bytes for sa_data is intended for backwards -compatibility. -.r -.sp 1 -When viewed as an Internet address, it takes the form -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr_in { -.T& -l l l l. - +u_char+sin_len;+/* address length */ - +u_char+sin_family;+/* address family */ - +u_short+sin_port;+/* internet port */ - +struct in_addr+sin_addr;+/* network addr A.B.C.D */ - +char+sin_zero[8];+/* unused */ -} -.TE -\fR -.)b -.sp 1 -When viewed as an ISO address, as supplied by the -university of wisconsin, it takes the form -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr_iso { -.T& -l l l l. - +u_char+siso_len;+/* address length */ - +u_char+siso_family;+/* address family */ - +u_short+siso_tsuffix;+/* transport suffix */ - +struct iso_addr+siso_addr;+/* ISO NSAP addr */ - +char+siso_zero[2];+/* unused */ -} -.TE -\fR -.)b -The address described by a \fIsockaddr_iso\fR structure -is a TSAP-address (transport service access point address). -It is made of an NSAP-address (network service access point address) -and a TSAP selector (also called a transport suffix or -transport selector, hereafter called a TSEL). -The structure \fIsockaddr_iso\fR contains a 2-byte TSEL. -This is for compatibility with Internet addressing. -ARGO supports -TSELs of length 1-64 bytes. -TSELs of any length other than 2 -are called \*(lqextended TSELs\*(rq. -They are described in detail in the section \fB\*(lqExtended TSELs\*(rq\fR. -If extended TSELs are not requested, 2-byte TSELs are used by default. -.pp -Refer to Chapter Five for more information about ISO NSAP-addresses. -.pp -.i -It is our intent at Berkeley to revamp the sockaddr_iso -to use a more natural and uniform model, for ISO addresses. -We cannot guarantee this modification to be complete by the -time we are ready to have something for NIST to test. -We hope to remove this notion of extended TSEL's as soon as -possible, certainly by formal beta testing of 4.4. -.r -Since sockaddr can be 108 bytes long without breaking anything -in the current Berkeley kernel, we should be able to eliminate -extended TSEL's entirely by -providing a sockaddr_iso along the lines of: -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr_iso { -.T& -l l l l. - +u_char+siso_len;+/* address length */ - +u_char+siso_family;+/* address family */ - +u_char+siso_slen;+/* session suffix length */ - +u_char+siso_tlen;+/* transport suffix length */ - +u_char+siso_nlen;+/* nsap length */ - +char+siso_data[22];+/* minimum nsap + tsel */ -} -.TE -\fR -.)b -.pp -The \fItype\fR parameter in the \fIsocket()\fR call -distinguishes -datagram protocols, stream protocols, sequenced -packet protocols, reliable datagram protocols, and -"raw" protocols (in other words, the absence of a transport protocol). -Unix provides manifest named constants for each of these types. -TP supports the sequenced packet protocol abstraction, to which -the manifest constant SOCK_SEQPACKET applies. -.pp -The \fIprotocol\fR -parameter is an integer that identifies the protocol to be used. -Unix provides a database of protocol names and their associated -protocol numbers. -Unix also provides user-level tools -for searching the database. -The tools take the form of library routines. -A protocol number for TP has been chosen -by the Internet NIC to allow TP to run in the Internet domain, and this -has been added to the Unix network protocol database. -The standard Internet database tools that serve TCP users -can -also serve user of TP -in the Internet domain, if the TP protocol number is added to the -proper Internet database file, -\fC/etc/protocols\fR. -This change must be made for TP to run in either the Internet or -in the ISO domain. -The ARGO package contains a set of tools and a database -for use with TP in the ISO domain. -This set of tools is described in the manual pages -\fIisodir(5)\fR and -\fIisodir(3)\fR. -.pp -When a socket is created, it is not given an address. -Since a socket cannot be reached by a remote entity unless it has an address, -the user must request that a socket be given an address by -using the \fIbind()\fR system call: -.(b -\fC -.TS -tab(+); -l s s s. -status = bind( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The address is expected to be in the format specified by the -\fIaf\fR parameter to the \fIsocket()\fR -call that yielded the socket descriptor \fIs\fR. -If the user -passes an address parameter with a zero-valued transport suffix, -the transport layer -assigns an unused 2-byte transport selector. -This is a 4.3 Unix convention; it is not part of any ISO standard. -.pp -The \fIconnect()\fR system call effects an active open. -It is used to establish a connection with an entity that is -passively waiting for connection requests, and whose -transport address is known. -.(b -\fC -.TS -tab(+); -l s s s. -status = connect( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The first parameter is a socket descriptor. -The \fIaddr\fR parameter is a transport address in the format -specified by the \fIaf\fR parameter to the \fIsocket()\fR -call that yielded the socket descriptor \fIs\fR. -.pp -A passive open is accomplished with two system calls, -\fIlisten()\fR followed by \fIaccept()\fR. -.(b -\fC -.TS -tab(+); -l s s s. -status = listen( s, queuelen ) -.T& -l l l. - +int+s; - +int+queuelen; -.TE -\fR -.)b -.pp -The \fIqueuelen\fR argument specifies the maximum -number of pending connection -requests that will be queued for acceptance by this user. -Connections are then accepted by the -system call \fIaccept()\fR. -There is no way to refuse connections. -The functional equivalent of connection -refusal is accomplished by accepting a connection and immediately -disconnecting. -.(b -\fC -.TS -tab(+); -l s s s. -new_s = accept( s, addr, addrlen ) -.T& -l l l. - +int+new_s, s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The \fIaccept()\fR call completes the connection -establishment. If a connection request from a prospective peer -is pending on the socket described by \fIs\fR, it is removed and -a new socket is created for use with this connection. -A socket descriptor for the new socket is returned by the -system call. -If no connection requests are pending, this call blocks. -If the \fIaccept()\fR call fails, -1 is returned. -The transport address of the entity requesting the connection -is returned in the \fIaddr\fR parameter, and the length -of the address is returned in the \fIaddrlen\fR parameter. -The address associated with the new socket is inherited -from the socket on which the \fIlisten()\fR and \fIaccept()\fR were performed. -.pp -It is possible for the \fIaccept()\fR call to be interrupted -by an asynchronous event such as the arrival of expedited -data. -When system calls are interrupted, Unix returns the value -1 -to the caller and puts the constant -EINTR in the global variable \fIerrno\fR. -This can create problems with the system call \fIaccept()\fR. -In the case of incoming expedited data, the interruption does -not indicate a problem, but the data may have arrived before -the caller has received the new socket descriptor, which is the -socket descriptor on which the expedited data are to be received. -In order to prevent this problem from occurring, the caller must -prevent the issuance of asynchronous indications until the -\fIaccept()\fR -call has returned. -Asynchronous indications are discussed below, in -the section titled -"Indications from the transport layer to the transport user". -.pp -It is possible to discover the -address bound to a -socket with the -\fIgetsockname()\fR system call. -.(b -\fC -.TS -tab(+); -l s s s. -status = getsockname( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -If the socket has a peer, that is, it is connected, -the system call -\fIgetpeername()\fR -is used to discover the peer's address. -.(b -\fC -.TS -tab(+); -l s s s. -status = getpeername( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.lp -The names returned by -\fIgetsockname()\fR and \fIgetpeername()\fR -do not contain extended TSELs. -Extended TSELs can be retrieved with -the \fIgetsockopt()\fR and -\fIsetsockopt()\fR system calls, described below. -.pp -Unix supports several protocol-independent options -and protocol-specific options -associated with sockets. -These options can be inspected and changed by using -the \fIgetsockopt()\fR and -\fIsetsockopt()\fR system calls. -.(b -\fC -.TS -tab(+); -l s s s. -status = getsockopt( s, level, option, value, valuelen ) -.T& -l l l. - +int+s, level, option; - +char+*value; - +int+*valuelen; -.TE -\fR -.)b -.(b -\fC -.TS -tab(+); -l s s s. -status = setsockopt( s, level, option, value, valuelen ) -.T& -l l l. - +int+s, level, option; - +char+*value; - +int+valuelen; -.TE -\fR -.)b -.pp -The \fIlevel\fR argument may indicate -either -that this option applies to sockets or that it applies to -a specific protocol. -The constants SOL_SOCKET, SOL_TRANSPORT, and SOL_NETWORK -are possible values for the \fIlevel\fR argument. -The \fIoption\fR argument is an integer that identifies -the option chosen. -.\" LIST THE OPTIONS HERE -The options available to TP users provide the -user with the ability to control various TP protocol options -including but not limited to -TP class, TPDU size negotiated, TPDU format used, -acknowledgment and retransmission strategies. -For a detail list of the options, see the manual page \fItp(4p)\fR. -.sh 1 "Extended TSELs" -.pp -ARGO supports TSELs -of length 1 byte - 64 bytes for sockets bound to addresses in the -AF_ISO address family. -The ARGO user program uses the -\fIgetsockopt()\fR -and -\fIsetsockopt()\fR -system calls to -discover and assign extended TSELs. -.pp -To create a socket with an extended TSEL, -the process -.ip \(bu 5 -opens a socket with \fCsocket(AF_ISO, SOCK_SEQPACKET, ISOPROTO_TP)\fR -.ip \(bu 5 -binds an NSAP-address to the socket with \fIbind()\fR. -The address bound may contain a 2-byte selector (\fIiso_tsuffix\fR). -.ip \(bu 5 -uses \fIsetsockopt()\fR with the command TPOPT_MY_TSEL, -to assign a TSEL to the socket. -.ip \(bu 5 -calls \fIlisten(), connect()\fR, or any other appopriate system calls -to use the socket as desired. -.lp -To connect to a transport entity that is bound to a TSAP-address with -an extended TSEL, the -process -.ip \(bu 5 -opens a socket with \fCsocket(AF_ISO, SOCK_SEQPACKET, ISOPROTO_TP)\fR -.ip \(bu 5 -uses \fIsetsockopt()\fR, with the command TPOPT_PEER_TSEL, -to assign a PEER TSEL to the socket. -This TSEL is used by the transport entity -for all subsequent connect requests made on this socket, -unless the peer TSEL is changed by another call to -\fIsetsockopt()\fR employing the command TPOPT_PEER_TSEL. -.lp -To discover the TSEL of the peer of a connected socket, -the process -.ip \(bu 5 -uses \fIgetsockopt()\fR with the command TPOPT_PEER_TSEL. -.lp -To discover the TSEL of socket's own address, -the process -.ip \(bu 5 -uses \fIgetsockopt()\fR with the command TPOPT_MY_TSEL. -.sh 1 "Data transfer" -.pp -Earlier BSD-based systems have provided system calls for data transfer -having bugs and semantics that are problematic for TP. -These should be correct as presented in the test system. -The problem was in the manner in which the kernel -handled interrupted system calls. -The send and receive primitives -may be interrupted by signals. -A signal is the mechanism used to indicate -the presence of expedited data or out-of-band data. -If the send primitive as interrupted before completion, -the user could not determine how many octets of data were sent. -All forms of the existing interface -(\fIsend()\fR, -\fIrecv()\fR, -\fIsendmsg()\fR, -\fIrecvmsg()\fR, -\fIsendto()\fR, -\fIrecvfrom()\fR, -\fIwrite()\fR, -\fIread\fR, -\fIwritev()\fR, -and \fIreadv()\fR system calls) -return an octet count -when the system call completes, and to return a short count -if the system call is interrupted. -.pp -The system calls sendmsg and recvmsg -have been revised to make them more convenient for receipt of -out of band data. -.(b -\fC -.TS -tab(+); -l s s s. -cc = sendmsg( s, msg, flags ) -.T& -l l l. - +int+s; - +istruct msghdr+msg; - +unsigned int+flags; -.TE -\fR -.)b -.(b -\fC -.TS -tab(+); -l s s s. -cc = recvmsg( s, msg, flags ) -.T& -l l l. - +int+s; - +istruct msghdr+msg; - +unsigned int+flags; -.TE -\fR -.)b -.pp -The reader should now consult the manual page for recvmsg -for an explanation of the elements of the msghdr structure, -and how the calls may be used to glean user-connection-request data. -.pp -The \fIflags\fR parameter serves several purposes. -The TP specification requires that TSDUs be unlimited in size. -System calls cannot pass unlimited amounts of data between the user -and the kernel, so -there cannot be a one-to-one correspondence between TSDUs and -system calls. -The \fIflags\fR -parameter is used to mark the end-of-TSDU on sending data. -When receiving, -TP sets this bit -in the flags element of the msghdr structure -when the end of a TSDU is consumed. -This way one TSDU can span several system calls. -It is possible for the peer to send an empty TPDU with the end-of-TSDU -flag set, in which case the transport user -may receive zero octets with the end-of-TSDU flag set. -.pp -The \fIflags\fR parameter also serves to distinguish data transfer primitives -from expedited data transfer primitives. -The flag bit MSG_OOB is provided for "out of band data" in the -DoD Internet protocols. It is also used to provide the expedited data service -of the ISO protocols. -The transport layer will deliver one expedited datum (there will be a -one-to-one correspondence between expedited TSDUs and XPD TPDUs) -at a time. -The user must receive the datum before the transport -layer will accept more expedited data. -Each expedited datum my contain up to 16 octets. -.pp -.sh 1 "Disconnection" -.pp -The \fIclose\fR system call will disconnect any association -between two TP entities. -.(b -\fC -.TS -tab(+); -l s s s. -status = close( s ) -.T& -l l l. - +int+s; -.TE -\fR -.)b -.pp -The argument \fIs\fR is a socket descriptor. -If a Unix user process terminates, Unix will close all files and -sockets associated with the process, which means all transport -connections associated with the process will be disconnected. -.sh 1 "Indications from the transport layer to the transport user" -.pp -The above set of system calls allows you to establish -a connection, transfer data, and disconnect. -The -presence or reception of expedited data is indicated -by TP setting the MSG_OOB bit in the flags element of the msg structure. -A disconnection initiated by the peer or by one of the -cooperating TP entities can be signalled by a control message, -although we have not yet implemented this. -.pp -The Unix signal mechanism may be used to provide these -service elements, as well. -When an expedited data TSDU arrives, the TP may interrupt -the user with a SIGURG signal ("urgent condition present on socket"). -The user must have previously registered a procedure to handle -the signal by using the \fIsigvec()\fR system call or the -\fIsignal()\fR library routine provided for that purpose. -The signal handler takes the form -.(b -\fC -.TS -tab(+); -l s s s. -int sighandler( signal_number) -.T& -l l l. - +int+signal_number; -.TE -\fR -.)b -.pp -The \fIsignal_number\fR argument will be the well-known constant SIGURG. -There are two reasons for -the transport layer to issue -a SIGURG: -expedited data -are present or -disconnection was initiated by a transport entity or by the peer. -Should the user have more than one transport connection open, -another system call is used to determine to which socket(s) -the urgent condition applies. -This is the \fIselect()\fR system call, described below. -.pp -When the SIGURG indicates a disconnection, there may be -user data from the peer present. -TP saves the disconnect data for the user to receive via the -\fIgetsockopt()\fR system call, or through the -.IR recvmsg () -ancillary data mechanism. -.\" -.\"If the user does not receive the disconnect data before the -.\"reference timer expires, the data will be discarded and the -.\"socket will be closed. -.pp -Transport service users may use more than one transport -connection at a time. -The \fIselect()\fR system call facilitates this. -.(b -\fC -.TS -tab(+); -l s s s. -#include -+ -nfound = select( num_to_scan, recvmask, sendmask, -+exceptmask, timeout ) -.T& -l l l. - +int+nfound, num_to_scan; - +fd_set+*recvmask, *sendmask, *exceptmask; - +time+timeout; -.TE -\fR -.)b -.pp -This system call takes as parameters a set of masks -that specify a subset of the socket descriptors that are in -use by the user program. -\fISelect()\fR inspects the sockets to see if they have data -to be received, can service a send without blocking, or -have an exceptional condition pending, respectively. -The masks will be set upon return to indicate the socket descriptors -for which the respective conditions exist. -The \fInum_to_scan\fR argument limits the number of sockets that are -inspected. -The call will return within the amount of time given in the -\fItimeout\fR parameter, or, if the parameter is zero, \fIselect()\fR -will block indefinitely. -.\" FIGURE -.so ../wisc/figs/TS_primitives.nr -.pp -.CF -summarizes the mapping of the transport service primitives -to Unix facilities. diff --git a/share/doc/iso/wisc/Makefile b/share/doc/iso/wisc/Makefile deleted file mode 100644 index fde985b42134..000000000000 --- a/share/doc/iso/wisc/Makefile +++ /dev/null @@ -1,73 +0,0 @@ -# -# Makefile for the tp documents: -# design: TP design/source guide -# appendix_a: index of tp kernel routines & macros by macro/routine name -# appendix_b: index of tp kernel routines & macros by file name -# -PRINTER = 3a -TAGS = ../../sys/tags -SRCS = ../../sys/netargo/tp_*.c ../../sys/netargo/tp_*.h ../../sys/netargo/tp*.trans -TROFF = /usr/local/lib/troff - -# -# Print via speedy for cycles sake... -# (assumes postscript printer...) -# -program: - @echo printer is $(PRINTER) - (cd figs; make) - format -P$(PRINTER) -t program.nr | rsh speedy psdit \| lpr -P$(PRINTER) - -parts: - @echo printer is $(PRINTER) - (cd figs; make) - format -P$(PRINTER) -t parts.nr | rsh speedy psdit \| lpr -P$(PRINTER) -# format -P$(PRINTER) -t parts.nr > /dev/null -# soelim parts.nr | grn -P$(PRINTER) |\ -# $(TROFF) -Tpsc | rsh speedy psdit \> /tmp/test -# soelim parts.nr | tbl > /tmp/parts.nr - -clean: - /bin/rm -f core junk* a.out *.o spell_errs made - touch spell_errs - -spell: - (cd figs; make) - (cd ../icon; make) - /usr/ucb/soelim program.nr | /usr/bin/spell -d hlista > spell_errs - -newdict: - cat spell_errs | spellin /usr/dict/hlista > hlista - -all: program appendix_a appendix_b appendix_c - - -appendix_c: - format -P$(PRINTER) appendix_c.nr - tbl ../man/man4/table1.src > ../man/man4/table1.nr - tbl ../man/man4/table2.src > ../man/man4/table2.nr - tbl ../man/man4/table3.src > ../man/man4/table3.nr - soelim ../man/man4/tp.4p.src > ../man/man4/tp.4p - ditroff -man -P$(PRINTER) ../man/man1/xebec.1 - ditroff -man -P$(PRINTER) ../man/man2/sendv.2 - ditroff -man -P$(PRINTER) ../man/man2/recvv.2 - ditroff -man -P$(PRINTER) ../man/man3/libtp.3 - ditroff -man -P$(PRINTER) ../man/man4/tp.4p - ditroff -man -P$(PRINTER) ../man/man8/tppt.8 - ditroff -man -P$(PRINTER) ../man/man8/tpdebug.8 - ditroff -man -P$(PRINTER) ../man/man8/tpstat.8 - -appendix_a: - ctags -x $(SRCS) | awk '{printf("%s %s %s\n", $$1, $$3, $$2)}'\ - | sed -e 's-../../sys/netargo/--' > index_by_func.nr - format -P$(PRINTER) appendix_a.nr - -appendix_b: - ctags -x $(SRCS) | awk '{printf("%s %s %s\n", $$3, $$1, $$2)}'\ - | sed -e 's-../../sys/netargo/--' \ - | sort \ - | fmtxref -w 80 \ - | sed -e 's/ / /' \ - -e 's/ / /' \ - > index_by_file.nr - format -P$(PRINTER) appendix_b.nr diff --git a/share/doc/iso/wisc/Outline b/share/doc/iso/wisc/Outline deleted file mode 100644 index 30ea7b86a921..000000000000 --- a/share/doc/iso/wisc/Outline +++ /dev/null @@ -1,18 +0,0 @@ -Ch 1 Intro -Ch 2 Definitions -Ch 3 Transport Service Interface -Ch 4 Network Service Interface - - user interface - - kernel interface -Ch 5 Addressing -Ch 6 Design of Transport -Ch 7 Design of Network -Ch 8 Error Handling - - transport - - network -Ch 9 Guide to Transport Source Code -Ch 10 Guide to Network Source Code -Ch 11 Guide to Common Source Code -Ch 12 Testing & Debugging - - transport - - network diff --git a/share/doc/iso/wisc/TODO b/share/doc/iso/wisc/TODO deleted file mode 100644 index 8e7bf647f267..000000000000 --- a/share/doc/iso/wisc/TODO +++ /dev/null @@ -1,2 +0,0 @@ -update clnp echo doc -add esis diff --git a/share/doc/iso/wisc/addr.nr b/share/doc/iso/wisc/addr.nr deleted file mode 100644 index e1b5fbb48be9..000000000000 --- a/share/doc/iso/wisc/addr.nr +++ /dev/null @@ -1,157 +0,0 @@ -.\" $Id$ -.\" -.NC "NSAP Addresses & Routing" -.sh 1 "OSI Address Formats" -.pp -ARGO supports an ISO address family, AF_ISO, in addition to the -DoD Internet address family, AF_INET. -Addresses in the family AF_ISO -take the form described by ISO 8348/DAD2, which is an addendum to the -OSI network service standard that describes network layer addressing. -.sh 2 "ISO 8348/DAD2 Tutorial" -.pp -.\" FIGURE -.\".so figs/osi_addr.nr -.so figs/addrfmt.nr -.CF -shows the -format of an OSI NSAP-address. -The address has two major parts: the initial domain part -(IDP) and the domain specific part (DSP). The IDP is further divided into -two parts: the authority and format identifier (AFI) and the -initial domain identifier (IDI). The AFI specifies the format of the -IDI, the authority responsible for allocating values of the IDI, and -the syntax of the DSP. The IDI specifies the network addressing domain -from which DSP values are allocated, and the authority responsible for -allocating DSP values. -.sh 2 "Supported Formats" -.pp -ARGO supports three types of ISO NSAP-addresses: -one type with AFI 37(hex) and two types with AFI 47(hex). -.sh 3 "AFI 37" -.pp -This value of the AFI defines the IDI to be an X.121 address or DTE -address. -The DTE address is encoded in binary coded decimal. -The DSP syntax is binary. -This form is intended to be used when communicating -across a public data network (PDN). -The ARGO software and documentation -refer to this type of NSAP-address as a -\*(lqtype 37.\*(rq -address. -.sh 3 "AFI 47" -.pp -The value of 47 for the AFI defines the IDI to be a 4 digit International -Code Designator (ICD) allocated according to ISO 6523. -ARGO support two -ICD values. -.sh 4 "ICD 0004" -.pp -The ICD value of 0004 is assigned to OSINET, -an experimental OSI network overseen by -National Institute of Science and Technology.\** -.(f -\** formerly the National Bureau of Standards -.)f -When this style of NSAP-address -is used, -the DSP is divided into four parts: an organization identifier (2 bytes), -a subnet identifier (2 bytes), -an SNPA-part (4-8 bytes), and -an NSAP selector (1 byte). -The use of these fields is defined by the OSINET steering committee. -This type of address is known as an -\*(lqOSINET\*(rq -address. -.sh 4 "ICD 0006" -.pp -The ICD value of 0006 is assigned to the Department of Defense (DoD). -In ARGO, NSAP-addresses with an ICD value of 0006 -are of the format defined in RFC 986, a proposal for embedding DARPA Internet -addresses within an OSI NSAP-address. -In this case, the DSP takes the form: -version (1 byte), DARPA Internet Address (4 bytes), upper layer protocol -identifier (1 byte). -This is called an -\*(lqrfc986\*(rq -address. -.sh 1 "Internal Representation" -.pp -Internally, an NSAP address takes the form -.(b -\fC -.TS -tab(+); -l s s s s. -struct iso_addr { -.T& -l l l l l. -+u_char+isoa_afi;+/* authority & -+++format id */ -+union+{+ -++struct addr_37+addr_37;+/* x.121 */ -++struct addr_osinet+addr_osinet;+/* OSINET */ -++struct addr_rfc986+addr_rfc986;+/* Internet*/ -+}+isoa_u; -+u_char+isoa_len;+/* length */ -} -.TE -\fR -.)b -The field \fIisoa_afi\fR contains the AFI for the address. -The union -\fIisoa_u\fR contains the remainder of the address. -The length of the entire address (the AFI, IDI, and DSP) is -stored in \fIisoa_len\fR. -.sh 1 "Network Layer Routing" -.pp -Routing at the network layer is performed by the -routing procedure \fIrtalloc()\fR as described in Chapter 5. -\fIRtalloc()\fR was designed for used in the DoD Internet -domain. -An unfortunate -effect of this is that routing decisions are based upon either the -entire NSAP address or the network portion of the address. -The problem is defining the network portion of an NSAP address. -The location and extent of the -network portion of an NSAP address depends on the -style of NSAP address. -This decision is made by the function \fIiso_netof()\fR. -.sh 2 "Network Portion of Type 37 Addresses" -.pp -There is no network portion of an X.121 address. -In ARGO, the network portion of a type 37 address -is defined to be just the AFI. -The obvious consequence of this is that all type 37 addresses will -match all other type 37 addresses -in a network-portion comparison. -.sh 2 "Network Portion of OSINET Addresses" -.pp -The network portion of an OSINET address is the organization identifier and -the subnet identifier. -.sh 2 "Network Portion of RFC986 Addresses" -.pp -The network portion of an RFC986 address is the network portion of the -embedded DARPA Internet address. -ARGO does not support subnetting, a method of subdividing Internet addresses. -.sh 1 "NSAP Address / Subnetwork Point of Attachment Mapping" -.pp -In order to transmit a packet on a real subnetwork, the destination -NSAP address -must be mapped to an SNPA address. -An SNPA address is the real, "hardware" address -of a system on a network. -This address corresponds to the 6 byte Ethernet or Token Ring -Adapter address, -or to the DTE address, which may be up to 7 bytes -long (14 decimal digits). -.pp -A table, \fIsnpa_cache\fR is kept in the kernel which contains the -translation between NSAP-addresses and SNPA-addresses. -This table is used by \fIiso_snparesolve()\fR whenever a -datagram must be dispatched. -The table is maintained by the ISO ES-IS protocol entity. -Entries can be added and deleted -by the user program \fIclnlutil(8)\fR and -by the CONS entity. diff --git a/share/doc/iso/wisc/appendix_a.nr b/share/doc/iso/wisc/appendix_a.nr deleted file mode 100644 index 25228542e66d..000000000000 --- a/share/doc/iso/wisc/appendix_a.nr +++ /dev/null @@ -1,51 +0,0 @@ -.\" $Header: appendix_a.nr,v 1.3 88/12/07 10:42:12 nhall Exp $ -.(x -Appendix A -.)x -.bp -.sz +2 -.ce 3 -Appendix A - -\fBStandards Documents\fR -.sz -2 -.lp -The following appendix lists many of the standards documents which were -consumed during development. -.ip "\fBNetwork Layer\fR" -.ip "ISO 8348" 15 -Network Service Definition -.ip "ISO 8348/AD1" 15 -Connectionless-mode Transmission -.ip "ISO 8348/AD2" 15 -Network Layer Addressing -.ip "ISO 8648" 15 -Internal Organization of the Network layer -.ip "ISO 8473" 15 -Protocol for Providing the Connectionless Network Service -.ip "ISO 8473/DAD1" 15 -Provision of the Underlying Service Assumed by ISO 8473 -.ip "ISO 8473/DAD2" 15 -Formal Description of ISO 8473 -.ip "ISO 9542" 15 -End System to Intermediate System Routing Exchange Protocol -for use in conjuction with the Protocol providing the Connectionless-mode -Network Service -.ip "ISO 8208" 15 -X.25 packet level protocol for data terminal equipment -.ip "ISO 8878" 15 -Use of X.25 to Provide the Connection-mode Network Service -.ip "\fBTransport Layer\fR" -.ip "ISO 8072" 15 -Transport Service -.ip "ISO 8073" 15 -Transport Protocol -.ip "ISO 8073/PDAD2" 15 -Class 4 over Connectionless Network -.ip "\fBFunctional Standards Profiles\fI" -.ip "OSINET" 15 -Implementation Agreements Among Participants of OSINET, December 1987 -.ip "NBS" 15 -Implementors's Agreements -.ip "GOSIP" 15 -Government OSI Profile diff --git a/share/doc/iso/wisc/appendix_b.nr b/share/doc/iso/wisc/appendix_b.nr deleted file mode 100644 index 01ade558e652..000000000000 --- a/share/doc/iso/wisc/appendix_b.nr +++ /dev/null @@ -1,10 +0,0 @@ -.\" $Header: appendix_b.nr,v 1.1 88/12/05 18:08:02 nhall Exp $ -.(x -Appendix B -.)x -.bp -.sz +2 -.ce 3 -Appendix B - -\fBManual Pages\fR diff --git a/share/doc/iso/wisc/debug.nr b/share/doc/iso/wisc/debug.nr deleted file mode 100644 index 352eeee05e7f..000000000000 --- a/share/doc/iso/wisc/debug.nr +++ /dev/null @@ -1,1043 +0,0 @@ -.\"$Header: debug.nr,v 1.4 88/12/06 16:05:36 nhall Exp $ -.\"$Source: /usr/argo/doc/kernel/RCS/debug.nr,v $ -.\" -.\" Program names should be in italics -.\" -.NC "Debugging, Testing, and Statistics" -.sh 1 "Introduction" -.pp -This section describes the methods used -to test and debug the ARGO kernel. -Three facilities are used in combination: -debug options, -simple statistics gathering, -and -protocol event tracing. -Many of the debug options -simply cause information to be printed on the console, but -several of these options cause -TP to behave pathologically -so that errors are be introduced in desirable ways. -.pp -TP and CLNP keep simple statistics. -These statistics include such things as the total -number of PDUs that are sent and received, -a count of various types of errors -that can be encountered when parsing an incoming PDU, -and the average and standard deviation of round trip times for -transport PDUs. -These statistics are useful for debugging. -For example, -if an incoming CC TPDU is rejected because one of the optional -parameters is faulty, this are noted in the statistics. -The statistics are kept on a system-wide basis rather than -on a per-connection basis. -They can be printed or cleared by user-level utility programs. -.pp -The tracing facility allows selective tracing of events. -Events are grouped into categories relating to different -functions of TP. -For example, it is possible to -trace only the events that pertain to acknowledgments. -.pp -At run time the debugging and tracing options can -be set and cleared by privileged utility programs. -Each of these facilities is described in more -detail below. -.sh 1 "Debugging" -.pp -Most of the debugging options -print messages on the console. -Kernel printing is done by busy-waiting at high priority, -so debugging options should be used very sparingly. -A sample of the code is: -.(b -.nf -\fC -IFDEBUG(D_TPINPUT) - printf("tp_input m 0x%x tpdu_len 0x%x\n", m, tpdu_len); -ENDDEBUG -\fR -.fi -.)b -.sp 1 -.lp -IFDEBUG and ENDDEBUG are macros that are defined in one of two ways. -If the system is configured with the ARGO_DEBUG -option, an array -\fCargo_debug[128]\fR -is declared, and -IFDEBUG and ENDDEBUG are defined thus: -.(b -.nf -\fC -#define IFDEBUG(option) if(argo_debug[option]) { -#define ENDDEBUG ; } -\fR -.fi -.)b -.lp -If the system is configured without the ARGO_DEBUG option, these -two macros resolve to the C comment delimiters, \fC/*\fR and \fC*/\fR, -causing all the debugging code lying between the macros -to be elided. -.pp -TP, CLNP, and CONS debugging can be enabled independently. -All debugging requires that the code be compiled with the -option ARGO_DEBUG. -The \fIconfig(8)\fR option CLNP_DEBUG will include debugging printfs for CLNP. -TP_DEBUG has the same effect for TP. -.pp -The array elements of \fCargo_debug[]\fR are set by -the utility program -\fIbark\fR, -which reads and writes -\fC/dev/kmem\fIN\fR. -See the manual page \fIbark(8)\fR. -.pp -Several debugging options cause TP to behave pathologically, -for the purpose of reproducing difficult-to-reproduce -error conditions that the protocol must correct. -For example, the -\fID_DROP\fR, or \fIbark -on T.drop\fR -option causes -\fItp_input()\fR -to discard TPDUs on a pseudo-random basis. -These will be described below. -.sh 1 "Statistics" -.pp -.sh 2 "CLNP Statistics" -.pp -CLNP keeps a set of statistics related to its operation. -Statistics include such things as NPDUs sent, received, and dropped. -These statistics are stored in the global structure \fIclnp_stat\fR. -The utility program \fInetstat(8)\fR may be used to print these statistics. -.sh 2 "TP Statistics" -.pp -TP keeps a set of running counts of certain events. -The statistics include such things as the numbers -of each type of TPDU sent and received, TPDUs dropped, -and the numbers of occurrences of certain types of errors. -The statistics are stored in the global structure \fItp_stat\fR. -The utility programs -\fItpstat\fR and -\fItpmon\fR -read \fC/dev/kmem\fIN\fR -and prints the contents of the statistics structure -in a human-readable form. -\fITpstat\fR prints the statistics on any ascii screen or printer. -\fITpmon\fR uses the \fIcurses\fR library and assumes that is has -a screen or window of size 53(long) X 80(wide), and it updates the -screen every 30 seconds. -.pp -\fITpstat\fR and \fItpmon\fR can be used to clear the statistics (set them -all to zero); the \fB-c\fR option causes the statistics to be cleared. -.pp -Statistics are observed using \fItpstat(8)\fR -to clear statistics before a test, and to print -the statistics after the test. -See the manual pages \fItpstat(8)\fR and \fItpmon(8)\fR. -.sh 1 "Tracing" -.pp -.sh 2 "CLNP Tracing" -.pp -CLNP does not support event tracing. -.sh 2 "TP Tracing" -.pp -The tracing facility consists of a circular buffer (an array) -of structures that are written by the kernel at various times, -and a utility program that reads \fC/dev/kmem\fIN\fR -to interpret the contents of the buffer. -The trace structure is a union of the structures that -will be interpreted by the utility program. -A trace event consists of a call to the trace routine \fItpTrace\fR -with a set of arguments containing the information relevant to the -event being traced. -The procedure tpTrace is actually called through a macro \fItptrace\fR. -For example, -.(b -.nf -\fC -IFTRACE(D_INPUT) - tptrace(TPPTtpduin, h->tpdu_type, h, h->tpdu_li+1, 0, 0); -ENDTRACE -\fR -.fi -.)b -.pp -The tracing macros are defined in the same manner as the -debugging macros: -.(b -.nf -\fC -#define IFTRACE(option) if(tp_traceflags[option]) { -#define ENDTRACE } -\fR -.fi -.)b -.lp -If the kernel is configured with the option TPPT, these macros -are defined as shown above, but if the TPPT option is not -used, these macros become C-style comment delimiters. -.pp -The tracing procedure copies \fIh->tpdu_li + 1\fR bytes beginning at -location \fIh\fR into a trace structure in the circular buffer. -The utility program \fItppt\fR -reads the trace structure, -interprets the data as a TPDU header, -and prints the header in hexadecimal form, with a banner identifying -the event as an incoming TPDU: -.(b -.nf -\fC -1a: Ref 22 arg 14(0xe), @ 91990 : 0000.453125 tpdu -INPUT total len 22 -HDRLEN: 21+1 CR_TPDU_type cdt 0(0x0) dref 0x0 - + 0: 0x15 0xe0 0x00 0x00 4: 0x00 0x03 0x00 0xc1 - + 8: 0x06 0x74 0x70 0x70 12: 0x69 0x6e 0x67 0xc2 - +16: 0x02 0x00 0x07 0xc0 20: 0x01 0x08 0x00 0x00 - -\fR -.fi -.)b -.pp -In addition to the data copied from the arguments to tpTrace(), -each trace structure contains -a time stamp and an event sequence number, and in many cases, the -connection reference to which the traced event applies. -The utility program \fItppt\fR is be used to turn on and off the -tracing options. -.pp -This facility can be used for debugging the source -code as well as for studying the behavior of the protocol. -For example, by adding the appropriate trace events, -it is possible to "see" the resequencing function of TP -working when a debug option is used to cause -TPDUs to be dropped occasionally. -.pp -See the manual page \fItppt(8)\fR. -.sh 1 "Testing" -.pp -.sh 2 "CLNP Testing" -.pp -CLNP was tested in two rather different ways. -The first method of testing used the -raw CLNP interface with the program \fIclnptest\fR. -\fIclnptest\fR allows a user to send or receive CLNP NSDUs. -With \fIclnptest\fR, a user can send CLNP NSDUs with various -combinations of options and observe the result. -.pp -The second method of testing CLNP was to have TP use CLNP as its network -layer protocol. -This method provides a good stress test for CLNP. -Unfortunately, TP generally calls CLNP in the same manner, so that not all -of the CLNP options are exercised. -.sh 3 "Clnptest" -.pp -The program \fIclnptest\fR can be invoked as either -a reader or as a writer: -.(b -\fC -clnptest -\fR -.)b -The \fI-r\fR option invokes \fIclnptest\fR as a reader, the -\fI-w\fR option invokes it as a writer. -Other options allow the user to indicate the destination, number of NSDUs, -size of NSDUs, -and NSDUs options. -See \fIclnptest(8)\fR for more information. -.pp -\fIclnptest\fR is normally used in the following manner. -On one machine, invoke \fIclnptest\fR as a reader: -.(b -\fC -clnptest -r -\fR -.)b -On a different machine, transmit an NSDU. -For example, to test the source route function, one invokes: -.(b -\fC -clnptest -w -h a -oR "b, c, d" -\fR -.)b -This sends an NSDU to host 'a', source routing it via -hosts 'b', 'c', and 'd'. -.sh 3 "The Troll" -In order to test CLNP reassembly certain errors must be generated. -The mechanism used has two parts, -the user program \fIclnptroll\fR, which enables and disables -the generation of these errors, and the -kernel resident error-creation routines. -.pp -Troll options allow one to duplicate an NSDU with a specified frequency. -The kernel must be compiled with the \fIconfig\fR option \fITROLL\fR -in order to include troll code. -See \fIclnptroll(8)\fR for more information. -.sh 3 "Debugging CLNP" -.pp -The following sections describe the \fIbark\fR options -appropriate for testing parts of CLNP. -Refer to \fIbark(8)\fR for more information about debugging -using \fIbark\fR.. -.sh 4 "Sending NSDUs" -.pp -Turning on the \fIbark\fR -option \fIC.output\fR causes information to be -printed whenever an NSDU is transmitted. -Translation of NSAP addresses to SNPA can be monitored by turning on -the \fIC.un\fR, or \fIC.lan\fR options. -Parts of outgoing NSDUs can be dumped when the \fIC.dumpout\fR -option is on. -Routing activity can be watched by turning on \fIC.route\fR and \fIC.iso\fR. -Information about CLNP option processing is available with \fIC.options\fR. -.sh 4 "Forwarding NSDUs" -.pp -The \fIforward\fR switch will cause debugging information to be displayed -whenever NSDUs are forwarded. -.sh 4 "Receiving NSDUs" -.pp -Information is displayed about incoming NSDUs when the \fIC.input\fR -option is enabled. -A portion of incoming NSDUs can be dumped by turning on the -\fIC.dumpin\fR option. -.sh 4 "Fragmentation and Reassembly" -.pp -The options \fIC.frag\fR and \fIC.reass\fR turn on debugging for the -CLNP fragmentation and reassembly functions. -.sh 2 "TP Testing" -.pp -Five services were used for most of the testing: -the \fIdiscard\fR service, -the \fIecho\fR service, -the \fIremote login\fR service, -the \fIremote shell\fR service, -and -the \fIsimple file transfer\fR service.\** -.(f -\** In fact, ancestors of these services were used for testing the -ARGO transport implementation during development. -These programs in their original forms were very cumbersome to use; -consequently they evolved to become the services described here. -.)f -Each service consists of a daemon process or server that listens -on a well-known transport selector (which is listed in the -ARGO directory service), and an active process that contacts the -server. -Four of these services, -discard, echo, remote login, and remote shell, -are supported by the -\fIisod\fR suite of daemons, which is a -version of the \fIinetd\fR programs that uses -the ISO protocol suite. -.sh 3 "The Discard Service" -The discard server listens on the transport selector -registered in the ARGO directory service for the application -"discard". -The server accepts incoming connection requests, -receives TSDUs, and throws away the TSDUs. -It never initiates a disconnect, but expects its peer -to disconnect the transport connection. -.PP -The program \fItpdiscard\fR connects to the -discard server. -The transport service and protocol options it uses are those -indicated in the ARGO directory service. -By changing the directory service entry for the -discard service, each of the transport service options and -protocol options can be demonstrated. -See the manual pages -\fItpdiscard(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 3 "The Echo Service" -The echo server listens on the transport selector -registered in the ARGO directory service for the application -"echo". -The server accepts incoming connection requests, -receives TSDUs, and returns the TSDUs to the sender. -It never initiates a disconnect, but expects its peer -to disconnect the transport connection. -.pp -The -program \fItpping\fR connects to the -echo server. -The transport service and protocol options it uses are those -indicated in the ARGO directory service. -By changing the directory service entry for the -echo service, each of the transport service options and -protocol options can be demonstrated. -See the manual pages -\fItpping(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 3 "The Remote Login Service" -The remote login server listens on the transport selector -registered in the ARGO directory service for the application -"login". -The server accepts incoming connection requests, -implements the BSD remote login protocol, checks permissions using -the \fC~/.rhosts\fR, and \fC/etc/passwd\fR files, and -uses the ARGO directory service to discover name-to-NSAP-address -mappings. -If the remote user is authorized to log in to the end system on which -the server runs, a login is started. -.pp -The program \fIrlogin.iso\fR connects to the remote login server. -The transport service and protocol options it uses are those -indicated in the ARGO directory service. -By changing the directory service entry for the -login service, each of the transport service options and -protocol options can be demonstrated. -See the manual pages -\fIrlogin.iso(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 3 "The Remote Shell Service" -The remote shell server listens on the transport selector -registered in the ARGO directory service for the application -"shell". -The server accepts incoming connection requests, -implements the BSD remote command authorization protocol, -checks permissions using -the \fC~/.rhosts\fR, and \fC/etc/passwd\fR files, and -uses the ARGO directory service to discover name-to-NSAP-address -mappings. -If the remote user is authorized to execute a shell on -the end system on which -the server runs, a shell is started. -.pp -The program \fIrcp.iso\fR connects to the remote shell server to -effect a remote copy. -The transport service and protocol options it uses are those -indicated in the ARGO directory service. -By changing the directory service entry for the -shell service, each of the transport service options and -protocol options can be demonstrated. -See the manual pages -\fIrcp.iso(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 3 "The Simple File Transfer Service" -.pp -The last service consists of a pair of programs, -\fItpfileget\fR and -\fItpfileput\fR, -which cooperate to transfer one file. -The passive program, \fItpfileget\fR, -listens on the transport selector registered in the ARGO directory service -to support the application named "tptestsel". -The sending program, \fItpfileput\fR, -connects to the passive program, transfers in one TSDU -the file named on the \fItpfileput\fR command line, and waits for the -passive end to close the connection. -\fITpfileget\fR -opens a file of the name given on its command line, -accepts one connection request, receives -one TSDU, writes the contents of that TSDU to the opened file, -and when it receives the end-of-TSDU indication, -\fItpfileget\fR closes the transport connection. -The transport service options and protocol options used by -\fItpfileput\fR are determined by the ARGO directory service -record that describes the applicaition "tptestsel". -See the manual pages -\fItpfileget(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 3 "Internal TP Testing" -.pp -The methods used to test each of the various functions -of TP are described in this section. -One or more of the services described above were used, while -the TP activity was observed with tracing or debugging or both. -The statistics were cleared before each test and inspected -after each test. -Each test can be run with different protocol and service options, -by changing the transport parameters in records -in the ARGO directory service file. -See the manual pages -\fItpstat(8)\fR, -\fItpmon(8)\fR, -\fItppt(8)\fR, -\fIbark(8)\fR, -\fItp(4p)\fR, -and -\fIisodir(5)\fR -for more information. -.sh 4 "Normal and Expedited Data Transfer:" -.pp -TSDUs are -distinguished by the presence or absence of the -EOTSDU bit in the \fIflags\fR parameter of the -\fIsendv()\fR system call. -The data of a TSDU are copied into chains of \fImbufs\fR -in the kernel so that the end of a TSDU lies in an mbuf -with the \fIm_act\fR field non-zero. -The end of a TSDU never lies in the middle of an -mbuf. -This is true on the receiving side as well. -On output, the segmenting function, -the function that copies user data into mbuf chains -reorganizes mbuf chains into TPDUs, -is observed using several debug options -and trace options -in the routines \fIsosend()\fR -and \fItp_sbsend()\fR. -On input, the reassembling mechanism -is observed in the routine \fItp_stash()\fR. -The debug options -\fBT.ndata\fR, -\fBT.sb\fR, and -\fBT.xpd\fR -print information -pertinent to this function. -.pp -Expedited data complicates the matter of segmenting -because markers must be kept in the chains of outgoing -TPDUs to indicate the precedence of expedited data TPDUs -over normal data TPDUs. -The pertinent trace options are \fBT.sb\fR and \fBT.ndata\fR. -With the trace and (or) debugging options on, -and with \fItpdiscard\fR running, one can observe the segmentation -and reassembly of TPDUs. -.pp -Using the file transfer programs to transfer a file, -then transferring it back with \fIrcp\fR (the TCP version) if necessary, and -using -\fIdiff\fR, one can see that data are transferred correctly. -The \fBT.input\fR trace option creates a readable hexadecimal dump of incoming TPDUs. -The -\fBT.emit\fR -trace option creates the same sort of dump for outgoing -TPDUs in \fItp_emit()\fR. -Sequencing -can be observed by using the -\fBT.ndata\fR -and -\fBT.input\fR -or -\fBT.emit\fR -trace options -to see the sequence numbers assigned to TPDUs. -.pp -The -\fBT.drop\fR -debug option causes \fItp_input()\fR -to throw away occasional TPDUs. -(The formula for determining when to discard a TPDU -is ad hoc and simplistic. It causes TPDUs to be -discarded frequently but not so frequently that the -receiving side has no chance to recover.) -With tracing on and the file transfer programs running, -resequencing can be observed -and the correctness of the transferred data -can be verified with \fIdiff(1)\fR. -.pp -The use of both normal and extended formats -can be observed with the \fBT.input\fR and \fBT.emit\fR trace options. -.pp -The following statistics are of interest: -.(b -.nf -\fIn\fR connections used extended format -\fIn\fR connections allowed transport expedited data -\fIn\fR connections turned off checksumming -\fIn\fR connections dropped due to retrans limit -\fIn\fR EOT bits on incoming TPDUs -\fIn\fR EOT bits on outgoing TPDUs -\fIn\fR XPD marks discarded -\fIn\fR XPD stopped data flow \fIm\fR times -\fIn\fR DTs out of order -\fIn\fR DTs not in window -\fIn\fR duplicate DTs -\fIn\fR XPDs not in window -\fIn\fR XPDs w/o credit to stash -\fIn\fR DT (sent) -\fIn\fR DT (received) -\fIn\fR DT (retransmitted) -\fIn\fR XPD (sent) -\fIn\fR XPD (received) -\fIn\fR random DTs dropped -.fi -.)b -.sh 4 "Checksumming, use and non-use:" -.pp -The checksum generation and checking -routines were first written and debugged as user-level -routines before they were modified for kernel use. -The kernel routines may be observed with the -\fBT.chksum\fR -debug option. -Various sizes of mbufs can be created by creative use of the -ARGO directory service, particularly by changing the value of the -attribute \fItp.tpdusize\fR. -There is no trace option for checksumming. -Checksumming has been used with transfers to and from at least -one other TP implementation. -.pp -The statistics that are pertinent to checksumming are: -.(b -.nf -\fIn\fR connections turned off checksumming -\fIn\fR invalid checksums -.fi -.)b -.sh 4 "Acknowledgment:" -.pp -Acknowledgment can be observed by using the -debug and trace options -\fBT.aks\fR, -\fBT.akr\fR, -\fBT.input\fR, -\fBT.emit\fR, -and -\fBT.driver\fR. -The transport driver (finite state machine) and the routine -\fItp_goodack()\fR dump information appropriate to acknowledgments. -If the \fBT.ndata\fR, and \fBT.emit\fR or \fBT.input\fR trace options are used -along with the \fBT.aks\fR and \fBT.akr\fR trace options, -a complete picture of the data transfer and acknowledgment -activity can be created. -The acknowledgments for expedited data are traced with -the -\fBT.xpd\fR -trace option. -The routine \fItp_goodXack()\fR and the finite state -machine dump information when the -\fBT.xpd\fR -debug and trace options are used. -To cause expedited data to be generated, -the -e or -E option on the discard programs or the file -transfer programs are used. -To observe the different acknowledgment strategies, -the protocol options were changed in the ARGO directory service. -.pp -The pertinent statistics are: -.(b -.nf -\fIn\fR AK (received) -\fIn\fR AK (sent) -ACK reasons: -\fIn\fR not acked immediately -\fIn\fR strategy==each -\fIn\fR strategy==fullwindow -\fIn\fR duplicate DT -\fIn\fR EOTSDU -\fIn\fR reordered -\fIn\fR user rcvd -\fIn\fR fcc reqd -.fi -.)b -.pp -The smoothed average round trip time is kept -for outgoing TPDUs for each transport connection -and for the entire TP entity. -The time each TPDU is transmitted is recorded, and when an acknowledgment -arrives, the round trip time is computed for the lowest -sequence number that this AK TPDU acknowledges. -The computation of round trip times can be observed -in a trace with the -\fBT.rtt\fR -option. -.pp -In addition to average round trip times, the kernel -maintains the standard deviation of the round trip times. -This statistic is kept for each connection and for the entire -TP entity. -In fact, four such sets of statistics are kept for the TP entity: -.np -for traffic not on a public data network (PDN) and on the same network as this end system, -.np -for traffic not on a public data network (PDN) and on not the same network as this end system, -.np -for traffic on a public data network (PDN) and on the same network as this end system, -and -.np -for traffic on a public data network (PDN) and not on the same network as this end system. -The determination of whether traffic is on the same network as this end system -is based on the "network portion" of the peer's NSAP-address. -For more information about this, see the section of this document titled -\fB"Network Layer Routing"\fR. -.pp -The smoothed average round trip time statistics for a given -can be observed with the -t option to -\fItpstat(8)\fR. -The global round trip statistics can be observed with the -s option to -\fItpmon(8)\fR. -.sh 4 "Flow Control:" -.pp -Flow control activity is the transfer of credit information -from end to end and the proper use of that information. -To see that it works properly, one must observe three -things: -the receiving window must shut down and reopen, -the sender must transmit enough TPDUs to fill the receiver's window -but no more, and the receiver must renege previously advertised credit. -These three behaviors have been observed as follows. -.pp -Tracing with the -\fBT.ndata\fR, -\fBT.aks, \fR -\fBT.akr, \fR -\fBT.emit\fR -and -\fBT.input\fR -trace options -are used. -The program \fItpdiscard\fR or a simple file transfer -is run with various window -and maximum TPDU sizes, various acknoledgment strategies, and -various retransmission strategies, -and the activity is observed with the trace. -The debug option -\fBT.reneg\fR -must be used to fake a reneging of credit, since -the ARGO transport entity does not renege its advertised credit -under normal operation. -At the beginning of a connection a closed window may almost always -be observed. -The receiving user process may be stopped -to force a window to shut down. -The interesting statistics are -.(b -.nf -\fIn\fR times local cdt reneged (receiving) -\fIn\fR foreign window closed (sending) -\fIn\fR faked reneging of cdt -\fIn\fR DT TPDUs (sent) -\fIn\fR DT TPDUs (received) -\fIn\fR AK TPDUs (sent) -\fIn\fR AK TPDUs (received) -ACK reasons: -\fIn\fR not acked immediately -\fIn\fR strategy==each -\fIn\fR strategy==fullwindow -\fIn\fR duplicate DT -\fIn\fR EOTSDU -\fIn\fR reordered -\fIn\fR user rcvd -\fIn\fR fcc reqd -.fi -.)b -.sh 4 "Retransmission and retention until acknowledgment:" -.pp -To observe that the sender retains TPDUs until they are -acknowledged, one needs only to use the -\fBT.drop\fR -debug option to cause TPDUs to be dropped by the receiving side. -They are then retransmitted by the sender -and finally dropped when the acknowledgment arrives. -That the buffers used to hold retained TPDUs are freed -can be observed by -running \fInetstat(8)\fR with the -m option -on a quiescent system to observe the number of mbufs in use, -then -running a test with the -\fBT.drop\fR debug option on to cause retransmission, -and -finally -running netstat -m again after the test is over, -to see that all the mbufs have been freed by TP. -The actual retransmission activity can be observed in a trace -with the -\fBT.ndata, \fR -\fBT.emit\fR and -\fBT.input\fR trace options. -The retransmission strategy to be used is controlled by the -ARGO directory service. -The statistics -.(b -.nf -\fIn\fR DT (retransmissions) -\fIn\fR XPD (retransmissions) -\fIn\fR CR (retransmissions) -\fIn\fR CC (retransmissions) -\fIn\fR DR (retransmissions) -.fi -.)b -.lp -indicate the number of retransmissions that actually occurred. -.sh 4 "Timers:" -.pp -The debug and trace option -\fBT.timer\fR -dumps information about the timers as they are set, -as they are cancelled, and as they expire. -The statistics -.(b -.nf -\fIn\fR ticks -\fIn\fR timers set -\fIn\fR timers expired -\fIn\fR timers cancelled -\fIn\fR inactive timers cancelled -\fIn\fR connections dropped due to retrans limit -\fIn\fR CCs sent to zero dref -.fi -.)b -.lp -are printed for both the E-type timers and for the C-type timers. -The effect of timers can be seen by observing retransmissions. -Two simple ways to force retransmissions are: -.np -to use the \fBT.zdref\fR debug option, -which causes CCs to contain a zero destination reference, -so that connection establishment will time out, and -.np -to attempt to open a connection to a transport selector on which -no process is listening. -Either of these actions, along with the -\fBT.connect\fR -trace or debug option will permit -observation of the timeout facilities. -.sh 4 "TPDU creation and parsing:" -.pp -TPDUs are created for output in -\fItp_emit()\fR. -The -\fBT.emit\fR -trace -option dumps TPDUs as they are transmitted. -\fITp_input()\fR parses TPDUs on input. -The -\fBT.input\fR -trace -option dumps TPDUs as they are received. -The debug options \fBT.emit\fR and \fBT.input\fR dump a lot of excess information -to the console, and are used primarily for debugging -extremely pathological behavior. -.pp -By tracing the execution of -\fItpdiscard\fR or a simple file transfer, -with a variety protocol and service options, -using the -\fBT.connect,\fR -\fBT.emit,\fR -\fBT.input,\fR -\fBT.ndata,\fR -\fBT.aks,\fR -\fBT.akr,\fR -and -\fBT.xpd\fR -options, -one can verify the correct placement of TPDU options -on all types of TPDUs. -The interesting statistics are -.(b -.nf -\fIn\fR variable parameters ignored -\fIn\fR invalid parameter codes -\fIn\fR invalid parameter values -\fIn\fR invalid dutypes -\fIn\fR invalid negotiation failures -\fIn\fR invalid destinagion referencess -\fIn\fR invalid suffix parameters -\fIn\fR invalid checksums -\fIn\fR connections used extended format -\fIn\fR connections allowed transport XPD -\fIn\fR connections turned off checksumming -\fIn\fR TP 4 connections -\fIn\fR TP 0 connections -.fi -.)b -.sh 4 "Separation and concatenation:" -.pp -Concatenation is not supported by this implementation. -Separation is supported, however, and to test separation, -some sort of concatenated TPDUs had to be created. -The code for this is no longer supported. -After testing locally with some temporary code to create concatenated -TPDUs, -the ARGO transport implementation was tested with another transport -implementation that does generate concatenated TPDUs. -The interesting statistics are: -.(b -.nf -\fIn\fR concatenated TPDUs -\fIn\fR TPDUs input -.fi -.)b -.sh 4 "Length limits for TPDUs:" -.pp -Some TPDUs may take user data: -the CR, CC, DR, DT, and XPD. -All of these but the DT TPDU have limits to the amount -of data they may carry. -The limits are enforced for CR, CC, and DR TPDUs by -\fItp_ctloutput()\fR, -the routine that accepts data from the user. -The limit for XPD TPDUs is enforced by -\fItp_usrreq()\fR, which accepts expedited -data from the user. -To test the effectiveness of the checks on output, one may attempt -to send expedited data with amounts larger than the limit (16 bytes). -.pp -On input the limits are checked in -\fItp_input()\fR. -To test the effectiveness of the checks on input, it was necessary -to create an illegally large TPDU. -The -\fBT.badsize\fR -debug option -does this - it will turn a legitimate -XPD TPDU into a XPD TPDU with 18 bytes -of expedited data. -The interesting statistics are: -.(b -.nf -\fIn\fR illegally large XPD TPDU -\fIn\fR invalid length -.fi -.)b -.sh 4 "Frozen References:" -.pp -The key issue here is to see that references are not reassigned -until the reference timer expires. -This can be observed by watching the timer activity as described -above and by observing the reference numbers chosen for sockets -with the \fBT.emit\fR -or \fBT.input\fR trace options, which trace the TPDU headers. -.sh 4 "Inactivity Control:" -.pp -Inactivity control can be observed by turning on the trace options -\fBT.aks\fR, \fBT.akr\fR and \fBT.emit\fR -during a simple file transfer. -In the middle of the transfer, if the sender process -is stopped, both TP entities continue -to send acknowledgments. -This can be observed in the trace. -If the file tranfer is between machines, taking down one of the machines -will cause the inactivity timer on the other machine to expire. -The TP entity will respond to this by sending a DR TPDU -to close the connection, which can be observed in the trace. -The expiration of the timer can be observed in a trace if the -\fBT.driver\fR option is used. -This option traces all events and state changes in the -TP -finite state machine. -.sh 4 "Connection establishment:" -.pp -The process of connection establishment can be observed with the -\fBT.connect\fR -trace and debug options, and -the -\fBT.driver \fR -trace option. -Various states of the connection establishment state machine -may be observed with the -the debug option -\fBT.zdref\fR. -This option -causes \fItp_input()\fR -to change the foreign reference on an incoming CC TPDU to zero, -eventually causing the CC TPDU to be dropped, -retransmissions of the CC to occur, -and the connection to time out before being established. -The statistics of interest are: -.(b -.nf -\fIn\fR CCs sent to zero dref -\fIn\fR invalid dest refs -\fIn\fR CC (received) -\fIn\fR CC (sent) -\fIn\fR CC (retransmitted) -\fIn\fR (connections) timed out on retrans -.fi -.)b -.sh 4 "Disconnection:" -.pp -Various states of the connection breakdown part of the state machine -may be observed with the -the trace options -\fBT.input\fR -or -\fBT.emit\fR, -\fBT.driver\fR -and -running the -discard or file transfer programs. -.sh 4 "Association of TPDUs with Transport Connection:" -.pp -The problem of locating a transport connection -given a TPDU is handled in -\fItp_input()\fR in one of two ways. -For an incoming CR TPDU, the transport suffix -is used to locate a transport protocol -control block (PCB), to which a transport -connection is made by creating a new socket and PCB. -For all other TPDU types, the destination reference is used -to locate the appropriate transport connection. -This is done by scanning the list of reference blocks. -Debug and trace options -were used to debug these sections of code but have since been -removed due to their effect on the readability -and maintainability of this code. -The trace options -\fBT.connect\fR -and -\fBT.newsock\fR -creates trace records that contain the address of the -socket as well as that of the PCB -when a socket is opened. -When a TPDU arrives for a given socket, -the trace records created by the -\fBT.input \fR -option will also contain the address of the PCB that is found -in -\fItp_input()\fR. -These two addresses can be compared in the trace output to observe -that the proper association is made. -.sh 4 "Protocol Errors and the ER TPDU:" -.pp -Certain types of errors are intended to evoke the response -from the TP entity of sending an ER or a DR TPDU. -The routine -\fItp_error_emit()\fR -creates ER and DR TPDUs for this purpose. -The debug and trace option -\fBT.erroremit\fR -dumps information about the activity of this routine. -Since ER TPDUs are not generated under normal circumstances, -the parsing of ER TPDUs was tested in this -implementation by code that generated (illegitimate) ER TPDUs, -This code was removed because it significantly complicated code maintenance. -.sh 4 "User Interface:" -.pp -The debug and trace options -\fBT.request\fR, -\fBT.params,\fR -\fBT.indication\fR -and -\fBT.syscall\fR and -dump information about the user interface. -Most of the debugging code added to the socket-layer -routines for debugging has since been removed so that -the source (which is functionally unchanged from the 4.3 release) -would not unnecessarily be changed. -\fIRlogin.iso\fR, the TP version of remote login, -exercises some of the original BSD data transfer system calls -(\fIread()\fR and \fIwrite()\fR) -rather than \fIsendv()\fR and \fIrecv()\fR. -The interesting statistics are -.(b -.nf -\fIn\fR EOT indications -\fIn\fR user rcvd -\fIn\fR connections used extended format -\fIn\fR connections allowed transport XPD -\fIn\fR connections turned off checksumming -\fIn\fR TP 4 connections -\fIn\fR TP 0 connections -.fi -.)b diff --git a/share/doc/iso/wisc/def.nr b/share/doc/iso/wisc/def.nr deleted file mode 100644 index 1e691bf545a0..000000000000 --- a/share/doc/iso/wisc/def.nr +++ /dev/null @@ -1,144 +0,0 @@ -.NC "Definitions" -.sh 1 "General Terms" -.ip "Kernel" 5 -The source code or binary module for the Acis Operating System -(also know as AOS and IBM/4.3). -.ip "User process" 5 -An instance of a program that is -running in unprivileged mode, in the unprivileged address space -commonly know as "user address space", in other words, not -part of the kernel. -.ip "IPC" 5 -Interprocess communication, the mechanism by which two different -user processes send messages to each other. -.ip "Unix, AOS" 5 -ACIS Operating System, the IBM ACIS port of Berkeley Unix 4.3BSD. -.ip "PCB, pcb" 5 -Protocol control block. Each instance of a protocol machine -keeps status information, addresses, and in some cases queues -in a pcb for each connection or socket. -.ip "Domain" 5 -In the Berkeley Unix environment, a domain is an abstract entity which -comprises a network architecture, addressing scheme, address format, -network protocols, and transport protocols. -.sh 1 "Transport Layer Terms" -.ip "ISO 8073" -ISO Draft International Standard 8073, Transport Protocol Specification -.ip "TP" 5 -The collection of transport -classes that have been implemented in ARGO, classes 0 and 4. -Also means the ARGO implementation of TP. -.ip "TP 0" 5 -Transport class 0. -.ip "TP 4" 5 -Transport class 4. -.ip "Transport entity" 5 -Software or hardware that implements the elements of procedure -described in ISO 8073. -.ip "Transport user" 5 -User process that make use of the services -provided by a transport entity. -.ip "Transport service interface" 5 -The syntax and semantics of the set of procedures, functions, and system calls -that are invoked by a transport user, -through which the services of the transport entity are delivered. -.ip "TPDU" 5 -Transport protocol data unit, a packet that is -passed from one transport entity to another. -.ip "TSDU" 5 -Transport service data unit, the logical unit of data that is -passed from a transport entity to a transport user, or from -a transport user to a transport entity. -.ip "CR TPDU" 5 -Connection request TPDU. -.ip "CC TPDU" 5 -Connection confirm TPDU. -.ip "DR TPDU" 5 -Disconnect request TPDU. -.ip "DC TPDU" 5 -Disconnect confirm TPDU. -.ip "DT TPDU" 5 -Normal data TPDU. -.ip "XPD TPDU" 5 -Expedited data TPDU. -.ip "AK TPDU" 5 -Normal data acknowledgment TPDU. -.ip "XAK TPDU" 5 -Expedited data acknowledgment TPDU. -.ip "ER TPDU" 5 -Error TPDU. -.sh 1 "Network Layer Terms" -.ip "ISO 8473" -ISO Draft International Standard 8473, connectionless network protocol. -.ip "CONS" -Connection Oriented Network Service. -.ip "COSNS" -Connection Oriented Sub-Network Service. -.ip "CLNS" -Connectionless Network Service. -.ip "CLNP" -Connectionless Network Protocol, or ISO 8473. -.ip "Network Entity" -Software or hardware that implements the elements of procedure described -in ISO 8473. -.ip "Network Service User" -Software components that make use of the services provided by a network -entity. -.ip "Network Service Provider" -Software components that provide the services of a network entity. -.ip "NSAP" -Network Service Access Point. The point at which the OSI network service -is made available to the network service user by the network service -provider. -.ip "NSAP address" -Information that the network service provider needs to identify an -NSAP. The source and destination address fields of a CLNP packet -are NSAP addresses. -.ip "ES" -End system. A system running the complete suite of OSI protocols which can -act as an end point for communication. -.ip "IS" -Intermediate system. A system running the OSI layers 1, 2, and 3 which -can act only a packet router. -.ip "SNPA" -The Subnetwork Point of Attachement is the point where a \fIreal\fR -end or intermediate system is attached to a \fIreal\fR subnetwork. -.ip "SNPA address" -Information that a \fIreal\fR subnetwork need to identify a \fIreal\fR end -or intermediate system. This is commonly referred to as the hardware address. -.ip "NPDU" -Network Protocol Data Unit. The unit of data which is exchanged between -network entities. -.ip "DT NPDU" -Normal data NPDU. -.ip "ER NPDU" -Error report NPDU. -.ip "Initial NPDU" -A NPDU carrying the whole of the user data from an N-UNITDATA request. -.ip "Derived NPDU" -a NPDU whose field ar identical to those of an initial NPDU, except that it -carries only a segment of the user data from an N-UNITDATA request. -.ip "Segment" -A distinct unit of data consisting of part or all of the user data provided -in the N-UNITDATA request and delivered in the N-UNITDATA indication. -.ip "Segmentation" -The act of generation two or more derived NPDUs from an initial or derived -NPDU. -.ip "Fragment" -A DoD Internet Protocol term with the same meaning as "segment". Used -synonymously with "segment." -.ip "Fragmentation" -A DoD Internet Protocol term with the same meaning as "segmentation". Used -synonymously with "segmentation." -.ip "Reassembly" -The act of regenerating an initial NPDU from two ore more derived NPDUs. -.ip "MTU" -Maximum transmission unit. The maximum size of a packet that can be -transmitted on a medium or through a protocol. -For example, the MTU of the TP protocol is 8192 bytes, the MTU -of and Ethernet device is 1500 bytes, and the MTU of the OSI Network -service is 512 bytes. -.ip "Network interface" -The device used to attach a computer to a network, for example, -an Ethernet adapter, or a Token Ring adapter. -This unfortunate terminology is inherited from BSD Unix. diff --git a/share/doc/iso/wisc/dogrn b/share/doc/iso/wisc/dogrn deleted file mode 100755 index 83964ae2e6f3..000000000000 --- a/share/doc/iso/wisc/dogrn +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/csh -f -set dev=fa -foreach m ($argv) - echo grn -P$dev $m.grn ">" $m.nr - grn -P$dev $m.grn > $m.nr -end diff --git a/share/doc/iso/wisc/eicon.nr b/share/doc/iso/wisc/eicon.nr deleted file mode 100644 index a99c4c5a9164..000000000000 --- a/share/doc/iso/wisc/eicon.nr +++ /dev/null @@ -1,731 +0,0 @@ -.\" $Id$ -.\" -.sh 2 "X.25 Public Data Network Support" -.pp -This ARGO release includes support for an X.25 Public Data Network (PDN) -in the form of a device driver for the Eicon Technology -Network Adapter \**. -.(f -This adapter, its software, and its documentation are -available from Eicon Technology Corporation, 3452 Ashby Street, Montreal, -Quebec, Canada H4R 2C1. -.)f -The adapter and its software, together with -the ARGO \fIecn(4)\fR driver, implement -the X.25 packet layer protocol as required to support the OSI connection -oriented network service. -The remainder of this section of this manual -destribes the ARGO device driver (hereinafter called "the driver") -for the Eicon Technology Network Adapter (hereinafter called "the adapter"), -the interface between the driver -and the CONS software described above, and the interface -between the driver and the software on the adapter. -.sh 3 "Software Modules" -.lp -The modules relevant to the design of the driver are listed below. -.ip "\fICONS -\fR" -The Connection Oriented Network Service (CONS) provides the upper ISO layers -with an interface to the PDN. -In this release, -the PDN is 1980 X.25, although support for 1984 X.25 is included. -CONS can receive requests -from the CLNP entity and -from the OSI transport entity. -In addition, the CONS module -supports \fIioctl()\fR commands used by -\fIifconfig(8)\fR to configure -the X.25 network address and to -declare the adapter to be up or down. -See \fIcons(4p)\fR. -.ip "\fIDriver -\fR" -The driver accepts commands from CONS, formats these commands -for the adapter, and interprets error indications delivered by the adapter. -This driver supports all the UNIX configuration device structures. -See \fIecn(4)\fR. -.ip "\fIEcnconf -\fR" -\fIEcnconf\fR is a program that allows the privileged user to -reconfigure -the options offered by the software on the adapter. -\fIEcnconf\fR can be run at any time. -See \fIecnconf(8)\fR. -.ip "\fIEcnload -\fR" -\fIEcnload\fR is a program that downloads Eicon Technology software -to the adapter and passes the configuration changes made -with the \fIecnconf\fR program to the driver. -\fIEcnload must be run only when the X.25 link is considered down\fR. -See \fIecnload(8)\fR. -.ip "\fIEcnstat -\fR" -\fIEcnstat\fR is a program that -prints the connection state information and counters kept by -the adapter and by the driver. -The statistics include the number of sends and receives, -active connections, and errors. -For more information, see \fI ecnstat(8)\fR. -.ip "\fIAdapter -\fR" -The adapter's interface to the driver is the Network Control -Block and Request Vector that exist within the adapter's shared memory (often -called the "Common Data Area"). -This is described in detail below. -.sh 3 "Interactions Among the Modules" -.lp -The commands -passed between CONS and the driver can be any one of the \fIECN\fR -commands outlined in the -sections "ECN Requests" and "ECN Replies", below. -CONS uses the \fCecnrestart()\fR procedure for restart requests, -\fCecnshutdown()\fR procedure for shutdown requests, and -\fCecnoutput()\fR procedure for all -normal data transfer requests. -CONS uses the \fCecnioctl()\fR procedure call for -servicing adapter status requests from the X.25 statistics program \fIecnstat\fR. -.lp -Commands passed between the driver and the adapter can -be any one of the network control block (\fINCB\fR) -commands described in the section "NCB Commands", below. -All commands to and from the adapter are -communicated in the Network Control Block and Request Vector within -the adapter's Common Data Area. -.lp -\fIEcnload\fR starts the -Eicon Technology Network Adapter software on the adapter -and downloads the validated configuration -to the driver. -.sh 3 "ECN Requests" -.lp -The \fIECN\fR request types that CONS can pass to the driver are listed below. -.ip "\fIECN_STOP - (by calling ecnshutdown())\fR" -This request instructs the driver to restart the network but not to listen for -any incoming calls. -CONS issues this request in response to an \fIioctl()\fR command -issued by the utility program \fIifconfig\fR, when -\fIifconfig\fR is used to bring down the adapter. -.ip "\fIECN_RESTART - (by calling ecnrestart())\fR" -This request instructs the driver to restart the network \fIand\fR to listen -and accept any incoming calls. -CONS issues this request in response to an \fIioctl()\fR command -issued by the utility program \fIifconfig\fR, when -\fIifconfig\fR is used to bring the adapter up. -.ip "\fIECN_CALL - 0x90\fR" -This request instructs the driver to place -a call request -to the specified DTE. -.ip "\fIECN_CLEAR - 0x92\fR" -This request instructs the driver to clear a given virtual circuit. -All outbound data are acknowledged by the remote DTE -before the circuit is cleared. -.ip "\fIECN_SEND - 0x94\fR" -This request instructs the driver to transmit a data buffer across a given -virtual circuit. -.ip "\fIECN_RESET - 0x04\fR" -This request instructs the driver to reset the given virtual circuit and -clear out all outstanding requests -associated with that virtual circuit. -.ip "\fIECN_STATUS - 0xb4 (exclusively through ecnioctl())\fR" -This requests instructs the driver to -solicit the adapter's current connection state information and -counters. -.sh 3 "ECN Replies" -.lp -The \fIECN\fR responses -the driver can give -to CONS are listed below. -.ip "\fIECN_CONNECT - 0x01\fR" -This reply notifies CONS that the driver has established a virtual circuit -connection initiated by the remote DTE. -.ip "\fIECN_ACCEPT - 0x03\fR" -This reply notifies CONS that an ECN_CALL request has succeeded. The -reply contains a pointer to a protocol control block. -.ip "\fIECN_REFUSE - 0x02\fR" -This reply notifies CONS that a previous \fIECN_CALL\fR request has failed. -The reply contains a pointer to a protocol control block. -.ip "\fIECN_CLEAR - 0x92\fR" -This reply notifies CONS that a given virtual circuit has been cleared -either by the DCE or by the remote DTE. -.ip "\fIECN_RECEIVE - 0x95\fR" -This reply notifies CONS that the driver has received a data packet from -the remote DTE. -.ip "\fIECN_RESET - 0x04\fR" -This reply notifies CONS that the virtual circuit has been reset either -by the DCE or by the remote DTE. -.ip "\fIECN_ACK - 0x05\fR" -This reply tells CONS that the associated ECN_SEND request has been -completed by the adapter. -.sh 3 "NCB Commands" -.lp -The driver hides from the CONS module -many of the idiosyncrasies of the adapter's -software interface -by mapping many of the above \fIECN\fR requests into corresponding -\fINCB\fR commands. Below is a list of requests that the driver can place to -the adapter. For each request that the driver places to the adapter, the adapter -returns with a command completion. -.ip "\fINCB_CALL - 0x90\fR" -This command creates a virtual circuit. -.ip "\fINCB_LISTEN - 0x91\fR" -This command tells the adapter that our host is -willing to accept incoming calls. -.ip "\fINCB_CLEAR (and NCB_ABORT) - 0x92\fR" -This command clears a virtual circuit. An option exists to clear the circuit -immediately, without waiting first for outstanding acknowledgments. -.ip "\fINCB_SEND (and NCB_RESET) - 0x94\fR" -This command sends data to the remote DTE. An option is -available for resetting the -virtual circuit. This command can return a status indicating that the -circuit has been cleared by the DCE or the remote DTE. -.ip "\fINCB_RECEIVE - 0x95\fR" -This command tells the adapter that our host is -willing to receive data on a given virtual circuit. This command can return -received data, a reset circuit, M-, D-, and Q-bits, interrupt packets, -or a cleared circuit. -.ip "\fINCB_STATUS - 0xb4\fR" -This command queries the adapter about -the status of a virtual circuit. -The driver uses this command to support the ECN_STATUS request. -.ip "\fINCB_RESTART - 0xb2\fR" -This command restarts the network. This command requires that a corresponding -configuration file be passed down to the adapter. -.bp -.sh 3 "ECN Request and Reply Structure" -.lp -Below is -the data structure used in CONS-driver -communications. -This data structure is a parameter to the -\fIecnoutput()\fR procedure. -\fC -.nf -/* Eicon Driver Request Structure -- used between CONS and the driver */ - -struct eicon_request { - struct ecn_ncb eicon_req_ncb; /* the network control block */ - caddr_t eicon_req_pcb; /* CONS pcb used on CALL requests */ - int eicon_req_state; /* used internally by the driver */ - int eicon_retry_cnt; /* used internally by the driver */ - int eicon_more; /* used internally by the driver */ - u_char eicon_reason; /* source of CLEAR requests */ -}; -\fR -.lp -The \fCeicon_req_ncb\fR field in the eicon request structure is of -type \fCecn_ncb\fR, defined in the following section. This structure stores -the command block -that the driver uses in communicating with the adapter. -The command block contains a \fIlogical session number\fR (LSN), -which identifies a virtual circuit. -Requests such as ECN_CALL are made without an LSN to identify -a circuit. -When an LSN is not available, the request is identified by -the field -\fCeicon_req_pcb\fR, which is a pointer to a CONS protocol control block. -The \fCeicon_req_state\fR field is used by the driver to keep track -of the status of the given request. -The following list defines the various values for this field: -.ip "\fIREQ_NEW\fR" -The driver recognizes a new request, has placed the request into the driver's -own request queue, but has yet to interrupt the -adapter. (The driver maintains a pointer \fCecn_pending_req\fR that indicates -whether an interrupt to the adapter is outstanding. If one is outstanding, the -driver places any new requests in this \fIREQ_NEW\fR state. If an interrupt -is not -outstanding, the driver places the request immediately in the -\fIREQ_INTERRUPT\fR state defined below.) -.ip "\fIREQ_INTERRUPT\fR" -The driver has dequeued the CONS request, assigned \fCecn_pending_req\fR to -point to the request, and -interrupted the adapter for a chance to post this request. -.ip "\fIREQ_POSTED\fR" -The driver has sent the request to the adapter. -.ip "\fIREQ_COMPLETE\fR" -The driver has just completed the request, and if necessary, is now posting -it to CONS. -.lp -The \fCeicon_retry_cnt\fR field in the eicon request structure keeps track -of how many times the driver has tried posting this command to the adapter. -After the second retry, the driver gives up and performs the appropriate -error routine. -The \fCeicon_more\fR field defines a \fIRECEIVE\fR request that -has been re-posted to the adapter to take care of m-bit transfers. -The \fCeicon_reason\fR field quantifies the reason for a connection being -cleared. These reasons are defined in the include file \fCiso_errno.h\fR. -.lp -Any data associated with the request are linked to the request through the -request mbuf's \fCm_next\fR field. -This is done so that when -the driver calls the \fIMFREE_M\fR deallocation routine, both the request -and the data are freed together. -.lp -The following chart defines those fields within the eicon request structure -that are relevant in any CONS request -to the driver via the \fIecnoutput()\fR call. -.sp -.sz 8 -.TS -center,box,tab(:); -c s s s s -c||c s s s -c||c|c|c|c -l||l|l|l|l. -\fBField Definitions for CONS \(-> Driver Requests\fR -_ -\fI:Request Types (CONS \(-> Driver)\fR -\fIField:ECN_CALL:ECN_CLEAR:ECN_SEND:ECN_RESET\fR -= -\fIncb\(->command\fR:0x90:0x92:0x94:0x04 -_ -\fIncb\(->loc_ses_num\fR:T{ -.na -leave as zero -T}:VC #:VC #:VC # -_ -\fIncb\(->info\fR:0x0:0x0:0x0:0x2 -_ -\fIeicon_req_pcb\fR:T{ -.na -address of CONS' protocol control block -T}:NULL:NULL:NULL -_ -\fIeicon_req_data\fR:T{ -.na -address of mbuf containing contents of Call Request packet (including DTE address, facilities, and call user data) -T}:T{ -.na -NULL or address of mbuf containing contents of Clear Request packet -T}:T{ -.na -address of mbuf containing contents of user data -T}:T{ -.na -NULL or the address of mbuf containing a one byte Reset Diagnostic code -T} -.TE -.sz 10 -.sh 3 "Structure of the Network Control Block (NCB)" -.lp -The \fCecn_ncb\fR structure is used by the driver to -make requests of the adapter. -\fC -.nf -/* Network Control Block -- used between the driver and the Eicon adapter */ - -struct ecn_ncb { - u_char command; /* command field */ - u_char retcode; /* return code field */ - u_char lsn; /* local session number */ - u_char info; /* additional information */ - caddr_t buffer; /* pointer to data buffer's mbuf */ - u_short length; /* buffer length */ - u_char callname[16]; /* module name on NA "X25" */ - u_char appl_name[16]; /* application name */ - u_char rxto; /* receive timeout in secs */ - u_char txto; /* send(tx) timeout in secs */ - caddr_t post; /* NULL */ - u_char lana_num; /* specifies Eicon Tech NA */ - u_char cmd_cplt; /* command status */ - u_char reserve[14]; /* reserved area */ -}; -\fR -.sp -.lp -The chart below defines those fields that are relevant in any -reply passed by the driver back up to CONS. -.sp -.sz 7 -.TS -center,box,tab(:); -c s s s s s s -c||c s s s s s -c||c|c|c|c|c|c -l||l|l|l|l|l|l. -\fBField Definitions for Driver \(-> CONS Replies\fR -_ -\fI:Reply Types (Driver \(-> CONS)\fR -\fIField:ECN_CONNECT:ECN_ACCEPT:ECN_REFUSE:ECN_CLEAR:ECN_RECEIVE:ECN_RESET\fR -= -\fIncb\(->command\fR:0x01:0x03:0x02:0x92:0x95:0x04 -_ -\fIncb\(->loc_ses_num\fR:VC #:VC #:ignore:VC #:VC #:VC # -_ -\fIncb\(->info\fR:ignore:ignore:ignore:ignore:T{ -.na -Interrupt received (bit 0), D-bit set (bit 6), and/or Q-bit set (bit 7). Zero -info field implies a normal receive. -T}:ignore -_ -\fIeicon_req_pcb\fR:NULL:T{ -.na -address of CONS's protocol control block -T}:T{ -.na -address of CONS's protocol control block -T}:ignore:ignore:ignore -_ -\fIeicon_req_data\fR:T{ -.na -NULL or address of mbuf containing contents of Call Indication packet -T}:T{ -.na -NULL or address of mbuf containing contents of Call Connected data -T}:T{ -.na -NULL or address of mbuf containing contents of Call Cleared data -T}:T{ -.na -NULL or address of mbuf containing contents of Call Cleared data -T}:T{ -.na -address of mbuf containing contents of user data -T}:T{ -.na -NULL or address of mbuf containing one byte Reset Diagnostic code -T} -_ -\fIeicon_reason\fR:ignore:ignore:T{ -.na -reason for refusal -T}:T{ -.na -reason for clear -.T}:ignore:T{ -.na -reason for reset -T} -.TE -.sz 10 -.bp -.sh 3 "Internal Driver Data Sructures" -.lp -The main driver data structure -is the \fIecn_softc\fR structure. -This structure keeps track of the interface request queue -(\fCecn_if\fR and \fCecn_pending_req\fR), -magic addresses on the adapter (\fCecn_iom_base, ecn_mem_base,\fR and -\fCecn_data_base\fR), -error statistics (\fCecn_errors\fR), the state -of each virtual circuit (\fCecn_vc_state\fR), the state of the \fILISTEN\fR -request (\fCecn_listen_pending\fR), and the current caller (\fCecn_cause\fR). -\fC -.nf -struct ecn_softc { - int ecn_errors[NCB_MAX][ST_MAX]; - int ecn_cause[CAUSE_MAX]; /* ecn_work() causes */ - struct mbuf *ecn_pending_req; /* waiting for command req */ - char ecn_listen_pending; /* boolean = listen req pending? */ - char ecn_vc_state[LSN_MAX]; /* the current state of each vc */ - struct ecn_device - *ecn_iom_base; /* base address of io map */ - struct ecn_request_vector - *ecn_mem_base; /* base address of memory map */ - caddr_t ecn_data_base; /* base address for data area */ - struct ifnet ecn_if; /* queue of new requests */ -} -\fR -.so figs/ecn_queue.nr -.sh 2 "Queueing in the Driver" -.lp -.CF -illustrates the queueing mechanism used by the driver. -.lp -CONS queues its data transfer requests at the end of the queue managed by -\fCecn_if\fR field in the \fCecn_softc\fR structure. -At this point, each request has the state value of -\fIREQ_NEW\fR. -Once the driver notifies the adapter that it has a command to post, -the driver dequeues the first request from the \fCecn_if\fR queue -and sets the pointer -\fCecn_pending_req\fR to point to the request. -At this point, the request is in the \fIREQ_INTERRUPT\fR state. -.lp -Once the driver posts the request to the adapter, it -dequeues the next request in the \fCecn_if\fR queue, reassigns the -\fCecn_pending_req\fR pointer, and then indicates to the adapter -that it is ready to post another request. -The driver no longer has to keep track of the previous request, -because for every reply, the adapter includes the associated -mbuf pointer. -While the request is outstanding, the request is in the \fIREQ_POSTED\fR state. -.so figs/ecn_vc.nr -.lp -After the adapter completes the command, the driver may want to reply to CONS. -It does this by placing its reply in CONS's \fCconsintrq\fR queue, defined as -an external \fCifqueue\fR in the driver code. -.sh 2 "Virtual Circuit States" -.lp -The \fCecn_vc_state\fR array in the \fCecn_softc\fR structure above keeps track -of the state of each virtual circuit (VC). -This is necessary to avoid handing -the adapter any commands that may not apply during a given state. -This mechanism -is especially useful in dealing with unexpected aborts or clears where there -is the potential for all outstanding commands to complete with errors. -By changing -states, the driver can prevent redundant commands (like clears and aborts) -from being passed either to the adapter or to CONS. -.lp -The driver only keeps track of four different states, as illustrated in -.CF -. -These states are: -.ip "\fIVC_NO_CONNECTION\fR" -When a virtual circuit is in this state, the virtual circuit does not exits. -Only \fICALL\fR and \fILISTEN\fR commands are valid. -.ip "\fIVC_DATA_XFER\fR" -All commands, except \fICALL\fR and \fILISTEN\fR commands are valid once the -connection exists. -.ip "\fIVC_RESET_IN_PROGRESS\fR" -In this state, either the driver has issued an \fINCB_RESET\fR or it has -received a reset error code on the completion of a command. -Only reissued \fIRESET\fR commands and \fIRECEIVE\fRs are -valid. -\fIRECEIVE\fR is valid in this state because the adapter uses the -completion of this command to hand back the cause of the reset (the RESET -INDICATION packet). -.ip "\fIVC_CLEAR_IN_PROGRESS\fR" -The driver has either issued an \fINCB_CLEAR\fR command or has just -received a clear error code on the completion of a command. -Within this state, only reissued -\fICLEAR\fR and \fIABORT\fR commands are valid. -.sh 2 "Error Statistics" -.lp -With the \fCecn_errors\fR field in the \fCecn_softc\fR structure, -the driver maintains a two dimensional array of counters -if the frequencies of errors. -In order to inspect this array easily with -the kernel debugger, the first index to every command ( ) is -reserved for a four character ASCII command identifier. -.bp -.sh 3 "The Driver State Machine" -.sh 2 "Handling of Normal Command Completions" -.lp -The chart below lists -all the available adapter request types, at what level each of -these requests can be used, options, and the driver's action after a normal -completion of the command. -.sp -.sz 7 -.TS -center,box,tab(:); -c s s s -c|c s|c -c|c|c|c -l|l|l|l. -\fBNormal Completion Handling\fR -_ -\fINCB:Options:Action Based on Normal Competion of\fR -\fICommand:To Adapter:From Adapter:Driver\(->Adapter Command\fR -= -\fINCB_RESTART\fR:none:none:T{ -.na -dequeue the request, and issue an NCB_LISTEN request to the adapter. -T} -_ -\fINCB_CALL\fR:none:connected:T{ -.na -dequeue the request, pass an ECN_ACCEPT reply to CONS, and issue a RECEIVE to -the adapter. -T} -_ -\fINCB_LISTEN\fR:T{ -.na -use zero-length Call User Data and a zero-length Calling DTE address -T}:none:T{ -.na -dequeue the request, pass an ECN_CONNECT to CONS, and issue a RECEIVE to the -adapter. Re-issue another NCB_LISTEN -for another possible virtual circuit connection. -T} -_ -\fINCB_CLEAR\fR:T{ -.na -normal clearing with all outstanding ACKs returned -T}:none:T{ -.na -dequeue the request. -T} -:_:_:_ -:T{ -.na -immediate clearing -T}:none:T{ -.na -dequeue the request. -T} -_ -\fINCB_SEND\fR:T{ -.na -normal send -T}:none:T{ -.na -dequeue the request and reply to CONS with an ECN_ACK. -T} -:_:_:_ -:T{ -.na -reset the virtual circuit -T}:none:T{ -dequeue the request. -T} -_ -\fINCB_RECEIVE\fR:none:T{ -.na -normal, uncomplicated receive -T}:T{ -.na -dequeue the request and bcopy the data into the request's associated mbuf. Ship to CONS. Re-issue another NCB_RECEIVE. -T} -:_:_:_ -:none:T{ -.na -m-bit set -T}:T{ -.na -same as above (adapter does the resegmentation automatically). -T} -:_:_:_ -:none:T{ -.na -d-bit set -T}:T{ -.na -same as above. -T} -:_:_:_ -:none:T{ -.na -q-bit set -T}:T{ -.na -same as above. -T} -:_:_:_ -:none:T{ -.na -interrupt received -T}:T{ -.na -same as above. -T} -:_:_:_ -:none:T{ -.na -reset received -T}:T{ -dequeue the request, send an ECN_RESET back up to CONS, and issue another -receive. -T} -.TE -.sz 10 -.sp -.uh "CONS \(-> Driver" -.lp -All entries in this column indicate that the CONS module can send this request -down to the driver. Command names in parenthesis define the mapping between -the \fIECN\fR and \fINCB\fR commands. -.uh "Driver \(-> Adapter" -.lp -All checks in this column indicate that the driver can send this request -to the adapter. The last column in the above table defines what the driver must -do upon normal completion of the command from the adapter. -Note that not all driver-to-adapter -commands have a CONS-to-driver equivalent. -This shows that this -command request is generated within the driver, rather than originating from -the CONS driver. -.uh "Driver \(-> CONS" -.lp -All entries in this column indicate that the driver can send this reply -back to CONS. Command names in parenthesis define the mapping between -the \fIECN\fR and \fINCB\fR commands. -.bp -.sh 3 "Handling of Errors upon Command Completion" -.lp -Below is listed all the driver request and pseudo request types, along with the -actions the driver must perform given a command completion error delivered by -the Eicon Network Adapter. -.sp -.sz 7 -.TS -center,box,tab(:); -c s s s s s s s -c||c s s s s s s -c||c|c|c|c|c|c|c -c||c|c|c|c|c|c|c -l||l|l|l|l|l|l|l. -\fBError Completion Handling\fR -_ -:\fIAction Based on Error Completion of Driver \(-> Adapter Command\fR -\fIError Returned\fR:_:_:_:_:_:_:_ -\fI:NCB_CALL:NCB_LISTEN:NCB_CLEAR:NCB_ABORT:NCB_RESET:NCB_SEND:NCB_RECEIVE\fR -= -\fIST_BAD_LEN\fR::::::: -_ -\fIST_INVALID\fR::::::: -_ -\fIST_COMMAND_TO\fR::::::: -_ -\fIST_ISSUE_ANOTHER_RCV\fR:::::::T{ -.na -requeue request and increment "more" count -T} -_ -\fIST_BAD_LSN\fR::::::: -_ -\fIST_NO_RESOURCES\fR::::::: -_ -\fIST_CALL_CLEARED\fR::::::: -_ -\fIST_COMMAND_CANCELLED\fR:::::::: -_ -\fIST_NO_CIRCUITS\fR::::::: -_ -\fIST_CALL_UNSUCCESSFUL\fR::::::: -_ -\fIST_INCORRECT_CALLNAME\fR::::::: -_ -\fIST_X25_RESET\fR::::::: -_ -\fIST_TOO_MANY_COMMANDS\fR::::::: -_ -\fIST_L1_NO_DATA_SET_READY\fR::::::: -_ -\fIST_L1_NO_CLEAR_TO_SEND\fR::::::: -_ -\fIST_L1_NO_CLOCK\fR::::::: -.TE -.sz 10 -.sp -.lp -Each of the actions from the above chart are defined as follows. -.ip "\fI\fR -" -The driver should clear the connection by issuing an \fINCB_ABORT\fR -to the adapter and sending an \fIECN_CLEAR\fR to CONS. -.ip "\fI\fR -" -The driver should send an \fIECN_REFUSE\fR back to CONS. -.ip "\fI\fR -" -The driver should simply dequeue the request. Usually these errors occur when a -reset or clear occurs on the adapter while the driver is in the midst of -issuing the command which subsequently completes with an error status. -.ip "\fI\fR -" -The driver should send an \fIECN_CLEAR\fR back up to CONS. -.ip "\fI\fR -" -The driver should requeue the request if and only if the -\fCecn_retry_cnt\fR field in the request structure does not exceed the -retry maximum. -.ip "\fI\fR -" -This action only takes place when a software error has occurred. The driver -should -print the error to the console in big bold letters and then panic. -.bp -.sh 3 "The IFP Flags" -.lp -The IFP flags in the standard \fCifnet\fR structure -should be used in the following way. -.ip "\fIIFF_UP on -\fR" -This flag is set by the driver only after the procedure \fIecnrestart()\fR -successfully completes. -.ip "\fIIFF_UP off -\fR" -This flag is set immediately upon entry into the procedure \fIecnshutdown()\fR. -.ip "\fIIFF_RUNNING on -\fR" -This flag is set on whenever the \fIecnwork()\fR procedure is active, eg. the -driver is actually doing something. -.ip "\fIIFF_RUNNING off -\fR" -This flag is turned off upon exit from the \fIecnwork()\fR procedure. diff --git a/share/doc/iso/wisc/eicon.table5.1.orig.nr b/share/doc/iso/wisc/eicon.table5.1.orig.nr deleted file mode 100644 index 78bda629abba..000000000000 --- a/share/doc/iso/wisc/eicon.table5.1.orig.nr +++ /dev/null @@ -1,126 +0,0 @@ -.TS -center,box,tab(:); -c s s s s s s -c|c s s|c s|c -c|c|c|c|c|c|c -l|c|c|c|l|l|l. -\fBNormal Completion Handling\fR -_ -\fINCB:Usage:Options:Action Based on Normal Competion of\fR -\fICommand:CONS\(->Driver:Driver\(->Board:Driver\(->CONS:To Board:From Board:Driver\(->Board Command\fR -= -\fINCB_RESTART\fR:T{ -.na -(ECN_RESTART) -T}:\(sr::none:none:T{ -.na -dequeue the request, and issue an NCB_LISTEN request to the board. -T} -_ -\fINCB_CALL\fR:(ECN_CALL):\(sr:T{ -.na -(ECN_ACCEPT) -T}:none:connected:T{ -.na -dequeue the request, pass an ECN_ACCEPT reply to CONS, and issue a RECEIVE to -the board. -T} -_ -\fINCB_LISTEN\fR::\(sr:T{ -.na -(ECN_CONNECT) -T}:T{ -.na -use zero-length Call User Data and a zero-length Calling DTE address -T}:none:T{ -.na -dequeue the request, pass an ECN_CONNECT to CONS, and issue a RECEIVE to the -board. Re-issue another NCB_LISTEN -for another possible virtual circuit connection. -T} -_ -\fINCB_CLEAR\fR:(ECN_CLEAR):\(sr:(ECN_CLEAR):T{ -.na -normal clearing with all outstanding ACKs returned -T}:none:T{ -.na -dequeue the request. -T} -:_:_:_:_:_:_ -::\(sr::T{ -.na -immediate clearing -T}:none:T{ -.na -dequeue the request. -T} -_ -\fINCB_SEND\fR:(ECN_SEND):\(sr::T{ -.na -normal send -T}:none:T{ -.na -dequeue the request and reply to CONS with an ECN_ACK. -T} -:_:_:_:_:_:_ -:T{ -.na -(ECN_RESET) -T}:\(sr::T{ -.na -reset the virtual circuit -T}:none:T{ -dequeue the request. -T} -_ -\fINCB_RECEIVE\fR::\(sr:(ECN_RECEIVE):none:T{ -.na -normal, uncomplicated receive -T}:T{ -.na -dequeue the request and bcopy the data into the request's associated mbuf. Ship to CONS. Re-issue another NCB_RECEIVE. -T} -:_:_:_:_:_:_ -:::(ECN_RECEIVE):none:T{ -.na -m-bit set -T}:T{ -.na -same as above (board does the resegmentation automatically). -T} -:_:_:_:_:_:_ -:::(ECN_RECEIVE):none:T{ -.na -d-bit set -T}:T{ -.na -same as above. -T} -:_:_:_:_:_:_ -:::(ECN_RECEIVE):none:T{ -.na -q-bit set -T}:T{ -.na -same as above. -T} -:_:_:_:_:_:_ -:::(ECN_RECEIVE):none:T{ -.na -interrupt received -T}:T{ -.na -same as above. -T} -:_:_:_:_:_:_ -:::T{ -.na -(ECN_RESET) -T}:none:T{ -.na -reset received -T}:T{ -dequeue the request, send an ECN_RESET back up to CONS, and issue another -receive. -T} -.TE diff --git a/share/doc/iso/wisc/errors.nr b/share/doc/iso/wisc/errors.nr deleted file mode 100644 index 51b5eb5ff4be..000000000000 --- a/share/doc/iso/wisc/errors.nr +++ /dev/null @@ -1,363 +0,0 @@ -.\"$Header: errors.nr,v 1.2 88/12/06 16:06:07 nhall Exp $ -.\"$Source: /usr/argo/doc/kernel/RCS/errors.nr,v $ -.NC "Error Handling" -This section describes the various ways that the ARGO kernel -handles errors. -For the purpose of this description, -errors are divided into -three classes : user errors, remote-end errors, and internal errors. -These three classes of errors and the way -the ARGO kernel handles them are described below. -.sh 1 "Network Layer Errors" -.pp -The following section describes how errors are handled by CLNP. -.sh 2 "User Errors" -.pp -User errors occur when attempting to send a CLNP packet. These errors -are reflected back to the caller of \fIclnp_output()\fR as the return value -of the function. The following table indicates the types of errors possible -and their associated return codes: -.(b L -.TS -tab(+), expand box; -l l. -Problem+Return Code -= -Unsupported option selected+EINVAL -Incorrect address+ENAMETOOLONG -Insufficient \fImbufs\fR+ENOBUFS -Can't route packet+ENETUNREACH,EHOSTUNREACH -Insufficient \fImbufs\fR+ENOBUFS -.TE -.)b -.sh 2 "Remote-end Errors" -.pp -An error that occurs as the result of incoming NPDU -is a remote-end error. -.pp -In the case of CONS, -the majority of these are addressing problems, -PDN-generated errors (network or gateway congestion, number busy), -or higher layer negotiation problems. -All ISO 8208 diagnostic codes that may appear in a call clearing packet -are passed up to the higher layer. -Some of the higher layer protocols pass this error indication to the -user level program as well. -The CONS statistics that are maintained by the "glue" module -include counters for each of the possible -ISO 8208 diagnostic codes seen on incoming packets. -In addition to these error codes, there are some codes that may appear -due to device driver problems when an NPDU arrives, for example, -the driver may run out of buffers. -All possible errors that may occur in the CONS module are listed -in the file -\fC\fR, -and the values listed in this file are passed to the user level -program in the global integer variable \fIerrno\fR. -The ARGO library -\fClibisodir.a\fR -includes an expanded version of -\fIperror()\fR that interprets these extra values. -.pp -In the case of CLNP, -the most remote-end errors are parsing errors. -When a remote-end error is discovered, processing of the NPDU stops. The -NPDU is discarded, and if error reporting is not disabled, and ER NPDU -is sent back to the source of the offending packet. The following -tables show the errors that may occur, and the error reason -that will specified when the ER NPDU is returned. -.pp -The following general errors may occur while parsing an NPDU: -.(b L -.TS -tab(+), box, expand; -l l. -Problem+Error Reason -= -NPDU arrives before interface is configured+ADDR_DESTUNREACH -Packet too short or too big+GEN_INCOMPLETE -Protocol identification wrong+GEN_HDRSYNTAX -Version wrong+DISC_UNSUPPVERS -Lifetime expired+TTL_EXPTRANSIT -Incorrect checksum+GEN_BADCSUM -Address section too short+GEN_INCOMPLETE -Segment section too short+GEN_INCOMPLETE -Options section too short+GEN_INCOMPLETE -Unknown packet type+GEN_HDRSYNTAX -Can't route packet (forwarding)+ADDR_DESTUNREACH -.TE -.)b -The following errors are related to options processing: -.(b L -.TS -tab(+), box, expand; -l l. -Problem+Error Reason -= -Duplicate option+GEN_DUPOPT -Unknown option+DISC_UNSUPPTOPT -Security format bad+GEN_HDRSYNTAX -Security option present+DISC_UNSUPPSECURE -Source route format bad+SRCRT_SYNTAX -Record route too short+GEN_INCOMPLETE -Record route format bad+GEN_HDRSYNTAX -QOS format bad+GEN_HDRSYNTAX -Priority format bad+GEN_HDRSYNTAX -Error reason format bad+GEN_HDRSYNTAX -Error reason on non-ER NPDU+DISC_UNSUPPOPT -Error reason absent from ER NPDU+GEN_HDRSYNTAX -.TE -.)b -.sh 2 "Internal Errors" -.pp -Internal errors occur as a result of a programmer error. These errors -will result in a kernel \fIpanic()\fR. The following panics have been -coded into CLNP: -.(b L -.TS -tab(+), box, expand; -l l. -\fIPanic()\fR message+Reason -= -clnp_init: no raw clnp+The raw clnp protocol is not -+configured into the kernel. -_ -clnp_srcaddr: ifp does not match interface+The ifp -+passed to \fIclnp_srcaddr()\fR is invalid. -.TE -.)b -.sh 1 "Transport Layer Errors" -.pp -.sh 2 "User Errors" -.pp -TP handles these errors in the "standard" -way for 4.3BSD: -it causes an E\fIxxx\fR error constant (from the -list in /sys/h/errno.h) -to be put into the user program's -global variable \fIerrno\fR. -In most routines, in particular -those routines called directly or indirectly -the by system-call routines, -this is done -by simply returning -this integer value. -The errors that fall into this category are described -in the following table: -.(b L -.TS -expand box tab(+); -l l. -Error+Meaning -= -EAFNOSUPPORT+Attempting to use an address family - +other than AF_ISO and AF_INET. -_ -ENOPROTOOPT+TP was not configured at boot time. -_ -ESOCKTNOSUPPORT+The given socket type is not supported. -_ -EPROTOTYPE+Attempting to use an inappropriate transport - +class for the network service. (e.g. class 0 over CLNS) - +or attempting to use an unknown network service. -_ -EISCONN+Attempting to perform on a connected socket an action - +that is permitted only on unconnected sockets. -_ -ENOTCONN+Attempting to perform on an unconnected socket an - +action that is permitted only on connected sockets. -_ -EMSGSIZE+Trying to send more data than are permitted on - +connect, disconnect, or expedited data PDUs. -_ -ENOTSOCK+The integer argument passed in the system - +call is not a socket descriptor or is a socket but - +has no transport pcb. -_ -EINVAL+Some argument to the system call is invalid. -_ -EOPNOTSUPP+Some command argument to the system call is invalid - +or the operation is not supported. -_ -EACCES+An unprivileged user tried to use a privileged command. -_ -ETOOMANYREFS+TP ran out of reference blocks. -_ -ENOBUFS+TP ran out of memory (mbufs). -.TE -.)b -Errors that should be reported to the user -by \fIerrno\fR but which occur asynchronously -are detected by the socket layer when the value -of the field \fIso_error\fR in the socket -structure is non-zero. -This is used to report such errors as -ECONNRESET, -ECONNABORTED, and -ECONNTIMEDOUT, which are really remote-end errors. -.sh 2 "Remote-end Errors" -.pp -An error that occurs is the result of a timer -or is a result of an -incoming TPDU -is a remote-end error. -The majority of these errors are parsing errors. -They also include some protocol errors. -Some of these errors cause the connection to be -closed locally. -It is unfortunate that when a connection is closed, -the kernel will not permit the user program to perform -anything on the socket in question, so the user cannot -inquire about the reason for disconnection. -There is no clean way to pass this information to a -signal handler either, since the process being signalled -may be swapped out at the time. -Some of these errors cause TP to return an ER TPDU -or a DR TPDU to the sending site. -Some have no effect on the connection locally. -These errors and their effects are described below. -.(b L -.TS -expand box tab(+); -l l l. -Error+Meaning+Return code or action taken -= -Retransmission+The remote end has not responded +ETIMEDOUT -timeout+to repeated attempts to send.+ - +This can occur during connection+ - +or after connection establishment.+ -_ -Inactivity+The remote end has not sent anything +ETIMEDOUT -timeout+within the last \fIx\fR time, where+ -+\fIx\fR is a locally defined+ -+large value.+ -_ -Unacceptable+An unacceptable TPDU has arrived, and the+TPDU dropped -TPDU +remote end can be identified.+possibly DR/ER returned -_ -DR TPDU+A DR TPDU arrived, with any+Disconnect indication, -arrived+value in the reason field.+so_error == ECONNRESET -_ -ER TPDU+An ER TPDU arrived, with any+Disconnect indication, -arrived+anything in the reason field.+so_error == ECONNABORTED -.TE -.)b -TPDUs may be unacceptable for a variety of reasons: -.(b L -.TS -expand box tab(+); -l l. -Problem+Action taken by TP -= -No connection at destination+Respond with DR, reason: session entity -reference or reference frozen+not attached to TSAP -_ -Invalid destination reference+Respond with DR, reason: mismatched -+references -_ -Invalid parameter code+Respond with ER, cause: inval. param. code -_ -Invalid DU type+Respond with ER, cause: invalid TPDU type -_ -Invalid version number+ Respond with ER, cause: inval. param. code -_ -Invalid suffix value+Respond with ER, cause: inval. param. value -_ -Suffix missing or is of+Respond with DR, reason: -invalid length+header or parameter length invalid -_ -Invalid checksum+packet discarded -_ -Can't find a connection+Respond with DR, reason: -for (dest ref, src ref) pair+mismatched references -_ -Old ACK TPDU+packet discarded, possibly send ACK w/ FCC -_ -Class requested isn't supported+Respond with DR, reason: +negotiation failed -_ -Invalid TPDU size parameter+Respond with ER, cause: inval. param. value -_ -Illegal amount of data+Respond with DR, reason: -on CR, CC, DR, or XPD+header or parameter length invalid -_ -Header length and length+Respond with DR, reason: -indicator field of TPDU don't agree+header or parameter length invalid -.TE -.)b -.lp -The file \fC\fR is a list -of the error codes and diagnostic that can be returned -from the peer transport entity in a DR TPDU or an ER TPDU, -and those that can be returned from the CONS, initiated by the DCE, -the remote DTE, or by the local network adapter. -These error values are too numerous to list here. -Most of them are taken from the ISO 8208 standard and the ISO 8073 standard. -The ARGO distribution contains an expanded form of the BSD library -routine \fIperror()\fR that prints an error messages for a given -\fIerrno\fR value. -.sh 2 "Internal Errors" -.pp -Some internal errors are the result of -a lack of resources such as buffers. -These are reported to the user with the -global variable -\fIerrno\fR -set to a value from -\fC\fR. -The errors that fall into this category are described -in the following table: -.(b L -.TS -expand box tab(+); -l l. -Return code+Problem -= -ENOBUFS+TP ran out of mbufs. -_ -EPROTONOOPT+TP hasn't been configured. -_ -ETOOMANYREFS+TP ran out of (unfrozen) reference numbers. -.TE -.)b -.pp -Other -internal errors are coding errors -or errors of misinterpretation of a specification. -They result in the printing of a message on the -console followed by a system panic. -The following panics have been coded into TP: -.(b L -.TS -expand box tab(+); -l l. -\fIPanic()\fR message+Problem -= -tp_emit CR/CC+The length indicator field of a TPDU is longer than the - +amount of space in an mbuf; TP is attempting to send a - +CR TPDU that is too large (perhaps legal but too large for - +this implementation to manage). -_ -tp_rcvoob: unexpected cluster+An incoming XPD TPDU was put into a cluster - +mbuf by a lower layer. -_ -tp timeout table overflow+The system ran out of structures for TP timers. -_ -tp: T_DETACH+The connected socket that is being detached has - +no parent socket. -_ -tp_soisdisconnected+The socket head queue is - +corrupted. -_ -tp_soisdisconnecting+The socket head queue is - +corrupted. -_ -tpclnp_input: bad clnp_len +The length parameter passed by clnp - +is bad. -_ -iso_control: SIOCDIFADDR+ioctl() system call passed down -iso_control: SIOCSIFADDR+a null interface pointer -_ -sofree dq+The list of socket structures is - +is inconsistent. -.TE -.)b diff --git a/share/doc/iso/wisc/esis_design.nr b/share/doc/iso/wisc/esis_design.nr deleted file mode 100644 index 437f3ee95071..000000000000 --- a/share/doc/iso/wisc/esis_design.nr +++ /dev/null @@ -1,114 +0,0 @@ -.NC "The Design of the ARGO Network Layer" -.sh 1 "End System to Intermediate System Routing Protocol" -.pp -The following sections describe the design of the End System to Intermediate -System (ES-IS) Routing Exchange Protocol. -.sh 2 "Overview" -.nf -- protocol involves sending/receiving hello pdus. -- timers determine - - when to send information - - when to discard information -- want to keep as much of the work outside of kernel -- only put functions and tables in kernel when necessary -.sh 2 "Supported Features (brief overview of each)" -- report configuration (both ES and IS) -- record configuration (both ES and IS) -- flush configuration (both ES and IS) -- query configuration (ES only) -- configuration response (ES only) -- request redirect (IS only) -- record redirect (ES only) -- flush old redirect (ES only) -- multicast vs. broadcast (using broadcast only) -.sh 2 "Kernel Resident Features" -.sh 3 "Support for PDU Transmission" -- need mechanism to send/receive PDUs -- utilize ES-IS socket (like raw socket) -- socket(AF_ISO, SOCK_DGRAM, ISOPROTO_ESIS) -.sh 4 "Sending PDUs" -- sendmsg() used for transmitting PDUS -- data will be pre-formed ES-IS PDU -- no checks will be made on the pdu format -- addr_snpa is the destination (to) -- before sending, socket must be associated with a particular interface - this is done via setsockopt(): - ESISOPT_SETIF - option - buffer is name of interface, ie. "un0" -.sh 4 "Receiving PDUs" -- recvmsg() used for receiving PDUs -- data will be: - #define ESIS_PDU - #define ESIS_CONFIG_RESP - #define ESIS_REDIR_REQ - struct esis_indication { - short ei_type; /* type of indication */ - union { - struct ? config_resp - struct ? redir_req - char pdu[0] - } ei_u; - } -- no checks will be made on the pdu format -- addr_snpa is the source (from) -.sh 4 "Addressing" -- ES-IS PDUs are sent to SNPA. -- addresses used are SN addresses, not NSAP addresses -- format of msg_name (part of msghdr) struct sockaddr_iso - afi = 0 /* means special snpa address */ - isoa_u is struct addr_snpa - struct addr_snpa { - char sn_addr[7]; /* snpa addr */ - } - isoa_len is number of bytes of sn_addr that are valid - -- sn_addr may be a unicast or multicast address -- multicast addresses will be faked via broadcast addresses -.sh 3 "NSAP to SNPA translation" -- translation from NSAP to SNAP required for every CLNP PDU sent -- function provided by iso_nsap_to_snpa - - iso_nsap_to_snpa(ifp, m, nsap, snpa) - struct ifnet *ifp; /* outgoing interface */ - struct mbuf *m; /* pkt */ - struct sockaddr_iso *nsap; /* destination address */ - char *snpa; /* RESULT: snpa address */ - { - if (nsap.afi == AFI_SNPAADDR) { - copy snpa addr from nsap into snpa - return SUCCESS - } else { - scan RIB for (RIB.nsap == nsap) - if (found) { - copy RIB.snpa into snpa - return SUCCESS - } - scan RIB for (RIB.type == IS) && (RIB.ifp = ifp) - if (found) { - copy RIB.snpa into snpa - return SUCCESS - } - if (ifp allows multicast) { - /* invoke query configuration function */ - copy ifp.ifaddr.ifa_all_es into snpa - return SUCCESS - } - - return FAILURE - } - } - -- NSAP to SNPA table resides in kernel so CLNP has quick access -- entries added/timed-out of table via user level ES-IS daemon -.sh 3 "Query Configuration Functon" -- invoked when iso_nsap_to_snpa - - requires snpa, but - - does not find a match for dest nsap, and - - does not find a match for Any IS. -- clnp packet is sent to address "all ES" as specified in ifnet structure - (for now, this is just the broadcast address) -.sh 3 "Configuration Response Function" -- invoked by clnp_input(), after determining that the packet received is - destined for one of its NSAPs -- checks if sn_dst == "all ES" (for now, this is all hex ffs) -- if true, a copy of packet is made, and passed up to esis_input() diff --git a/share/doc/iso/wisc/figs/CONS_primitives.nr b/share/doc/iso/wisc/figs/CONS_primitives.nr deleted file mode 100644 index 16dc3e0cf4c5..000000000000 --- a/share/doc/iso/wisc/figs/CONS_primitives.nr +++ /dev/null @@ -1,77 +0,0 @@ -.(b -.TS -tab(+) center expand box; -c c -a | a . -service primitive & arguments+provided by -= -N_CONNECT.request+cons_openvc(... faddr, ...) -called address+argument faddr -calling address+not implemented -receipt confirmation+not implemented -expedited data+not implemented -quality of service+not implemented -NS-user data+not implemented -_ -N_CONNECT.indication+not implemented -_ -N_CONNECT.response+cons_netcmd( CONN_REFUSE ) -+ or cons_netcmd( CONN_CONFIRM ) -+ however, net connection has already -+ been accepted. If REFUSE, it will -+ be cleared with E_CO_HLI_REJT -+ (higher layer rejects connection) -responding address+not implemented -receipt confirmation+not implemented -expedited data+not implemented -quality of service+not implemented -NS-user data+not implemented -_ -N_CONNECT.confirm+not implemented -= -N_DATA.request+cons_output(... m, ...) -+and cosns_output(... m, ...) -confirmation+not implemented -data+mbuf chain m -_ -N_DATA.indication+pr_input( m, ... ) -+or software interrupt -confirmation+not implemented -data+mbuf chain -_ -N_DATA_ACKNOWLEDGE.request+not implemented -_ -N_DATA_ACKNOWLEDGE.indication+not implemented -_ -N_EXPEDITED_DATA.request+not implemented -_ -N_EXPEDITED_DATA.indication+not implemented -= -N_RESET.request+not implemented -N_RESET.indication+socket->so_error = reason -+or pr_ctlinput( PRC_ROUTEDEAD ) -originator+not implemented -reason+from X.25 packet or ecn driver -N_RESET.response+not implemented -N_RESET.confirm+not implemented -= -N_DISCONNECT.request+cons_netcmd( CONN_CLOSE ) -reason+uses E_CO_HLI_DISCN (normal -+disconnect from higher layer) -responding address+not implemented -NS_user data+not implemented -_ -N_DISCONNECT.indication+socket->so_error = reason -+or pr_ctlinput( PRC_ROUTEDEAD ) -originator+not implemented -reason+from X.25 packet or ecn driver -responding address+not implemented -NS_user data+not implemented -.TE -.(c -\fBFigure \n+(FG\fR: Transport Service Primitives -.)c -.)b -.(f -\** data on disconnect is not supported at this time. -.)f diff --git a/share/doc/iso/wisc/figs/Makefile b/share/doc/iso/wisc/figs/Makefile deleted file mode 100644 index 2562b0b3e63e..000000000000 --- a/share/doc/iso/wisc/figs/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# $Id$ -# -.SUFFIXES: .nr .grn - -PRINTER = ba - -ALL = \ - func_units.nr unix_ipc.nr osi_addr.nr trans_flow.nr clnp_output.nr\ - clnp_input.nr mbufsnd.nr mbufrcv.nr\ - ecn_vc.nr ecn_network.nr ecn_queue.nr tppt.nr - -all: $(ALL) - -clean: - rm -f $(ALL) - -.grn.nr: - grn -P$(PRINTER) $*.grn > $*.nr diff --git a/share/doc/iso/wisc/figs/NS_primitives.nr b/share/doc/iso/wisc/figs/NS_primitives.nr deleted file mode 100644 index 20dc22676d95..000000000000 --- a/share/doc/iso/wisc/figs/NS_primitives.nr +++ /dev/null @@ -1,69 +0,0 @@ -.(b -.TS -tab(+) center box; -c c -a | a . -service primitive & arguments+kernel procedure call & arguments -= -N_CONNECT.request+\fIcons_openvc(copcb,dstaddr,so)\fR -called address+argument \fIdstaddr\fR -calling address, expedited data selection+not implemented -receipt confirmation selection+not implemented -quality of service, NS-user data+not implemented -_ -N_CONNECT.indication+not implemented -_ -N_CONNECT.response+not implemented -_ -N_CONNECT.confirm+return from \fIcons_openvc()\fR -responding address, quality of service+not implemented -receipt confirmation selection+not implemented -expedited data selection, NS-user data+not implemented -= -N_DATA.request+\fIcons_output(isop,m,len,isdgm)\fR, and - +\fIcosns_output(ifp,m,dstaddr)\fR -NS-user data+argument m (mbuf chain) -confirmation request+not implemented -_ -N_DATA.indication+software interrupt (CLNP), procedure -+call to \fItp_input()\fR -NS-user data+mbuf chain on \fIclnlintrq\fR or -+argument to \fItp_input()\fR -confirmation request+not implemented -= -N_DATA_ACKNOWLEDGE.request+not implemented -_ -N_DATA_ACKNOWLEDGE.indication+not implemented -= -N_EXPEDITED_DATA.request+not implemented -_ -N_EXPEDITED_DATA.indication+not implemented -= -N_RESET.request+not implemented -_ -N_RESET.response+not implemented -_ -N_RESET.indication+higher layer \fIpr_ctlinput( -+PRC_ROUTEDEAD, faddr, copcb)\fR -originator+argument \fIfaddr\fR -reason+implemented with so->so_errno for sockets -+that are attached to CONS PCBs -_ -N_RESET.confirm+not implemented -= -N_DISCONNECT.request+\fIcons_netcmd(CONN_CLOSE, -+isop, channel, isdgm)\fR -reason, NS-user data, responding address+not implemented -_ -N_DISCONNECT.indication+higher layer \fIpr_ctlinput( -+PRC_ROUTEDEAD, faddr, copcb)\fR -originator+argument \fIfaddr\fR -reason+implemented with so->so_errno for sockets -+that are attached to CONS PCBs -NS-user data, responding address+not implemented -.TE -.(c -\fBFigure \n+(FG\fR: Network Service Primitives -.\") -.)c -.)b diff --git a/share/doc/iso/wisc/figs/TS_primitives.nr b/share/doc/iso/wisc/figs/TS_primitives.nr deleted file mode 100644 index 3d27df3f307d..000000000000 --- a/share/doc/iso/wisc/figs/TS_primitives.nr +++ /dev/null @@ -1,60 +0,0 @@ -.(b -.TS -center expand box; -c c -a | a . -service primitive & arguments Unix system calls & arguments -= -T_CONNECT.request \fIsocket(), connect(), setsockopt()\fR -called address \fIconnect()\fR argument -calling address \fIconnect()\fR argument -quality of service not implemented -buffer management \fIsetsockopt()\fR argument -security not implemented -data \fIsetsockopt(), getsockopt()\fR -_ -T_CONNECT.indication return from \fIaccept(); getsockopt()\fR -called address \fIaccept()\fR argument -calling address \fIaccept()\fR argument -quality of service not implemented -security not implemented -data \fIsetsockopt(), getsockopt()\fR -_ -T_CONNECT.response no applicable system calls -_ -T_CONNECT.confirm return from \fIconnect()\fR -quality of service \fIgetsockopt()\fR argument -data \fIsetsocktopt, getsockopt()\fR -= -T_DATA.request \fIrecvv(), sendv()\fR -_ -T_DATA.indication return from \fIrecvv()\fR, \fIsendv()\fR, or \fIselect()\fR; - or signal SIGIO - ioctl(FIONREAD) tells how much has been - queued to read -= -T_EXPEDITED_DATA.request \fIsendv()\fR with MSG_OOB flag -_ -T_EXPEDITED_DATA.indication SIGURG, \fIgetsockopt()\fR with TPFLAG_XPD, - return from \fIselect()\fR with exceptional - conditions mask -= -T_DISCONNECT.request \fIclose()\fR -data \fIsetsockopt()\fR -_ -T_DISCONNECT.indication SIGURG, - error return on other primitives -reason errno -data \fIgetsockopt()\**\fR -= -T_STATUS.request \fIgetsockopt()\fR, \fItpstat\fR utility program -_ -T_STATUS.indication \fIgetsockopt()\fR, \fIselect()\fR, \fItpstat\fR -.TE -.(c -\fBFigure \n+(FG\fR: Transport Service Primitives -.)c -.)b -.(f -\** data on disconnect is not supported at this time. -.)f diff --git a/share/doc/iso/wisc/figs/addrfmt.nr b/share/doc/iso/wisc/figs/addrfmt.nr deleted file mode 100644 index 195a46e01751..000000000000 --- a/share/doc/iso/wisc/figs/addrfmt.nr +++ /dev/null @@ -1,22 +0,0 @@ -.TS -center,expand,box,tab(+); -c s|c -c|c|c. -T{ -.na -IDP: initial domain part -T}+T{ -.na -DSP: domain spedific part -T} -_+_+ -T{ -.na -AFI: authority and format identifier -T}+T{ -.na -IDI: initial domain identifier -T}+ -.TE -.ce -\fB Figure \n+(FG\fR: Format of OSI addresses diff --git a/share/doc/iso/wisc/figs/clnp_input.grn b/share/doc/iso/wisc/figs/clnp_input.grn deleted file mode 100644 index f217b9428bb0..000000000000 --- a/share/doc/iso/wisc/figs/clnp_input.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.4 -narrow 1 -medium 3 -thick 7 -pointscale off -file clnp_input.gsrc -.GE -.ce -\fB Figure \n+(FG:\fR Flow of control for processing CLNP NPDUs -.)z diff --git a/share/doc/iso/wisc/figs/clnp_input.gsrc b/share/doc/iso/wisc/figs/clnp_input.gsrc deleted file mode 100644 index 0c0852ea457a..000000000000 --- a/share/doc/iso/wisc/figs/clnp_input.gsrc +++ /dev/null @@ -1,338 +0,0 @@ -gremlinfile -0 424.00 24.00 -3 -424.00 696.00 -424.00 704.00 --1.00 -1.00 -5 0 -0 - 3 -312.00 416.00 -560.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 696.00 -125.00 701.00 -128.00 699.00 -131.00 701.00 -128.00 696.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 264.00 -560.00 264.00 -560.00 704.00 -128.00 704.00 -128.00 696.00 --1.00 -1.00 -5 0 -0 - 3 -424.00 648.00 -427.00 643.00 -424.00 645.00 -421.00 643.00 -424.00 648.00 --1.00 -1.00 -4 0 -0 - 3 -232.00 672.00 -288.00 672.00 -288.00 632.00 -424.00 632.00 --1.00 -1.00 -4 0 -0 - 3 -232.00 608.00 -424.00 608.00 --1.00 -1.00 -4 0 -0 - 3 -232.00 544.00 -424.00 544.00 --1.00 -1.00 -4 0 -0 - 3 -232.00 480.00 -424.00 480.00 --1.00 -1.00 -4 0 -0 - 3 -232.00 352.00 -424.00 352.00 -424.00 648.00 --1.00 -1.00 -4 0 -0 - 3 -351.00 689.00 -351.00 656.00 -528.00 656.00 -528.00 689.00 -351.00 689.00 --1.00 -1.00 -5 0 -0 - 0 -360.00 664.00 -360.00 679.00 -360.00 679.00 -360.00 679.00 --1.00 -1.00 -1 2 -14 Discard Packet - 3 -136.00 320.00 -141.00 323.00 -139.00 320.00 -141.00 317.00 -136.00 320.00 --1.00 -1.00 -5 0 -0 - 3 -136.00 384.00 -240.00 384.00 -240.00 320.00 -136.00 320.00 --1.00 -1.00 -5 0 -0 - 0 -56.00 280.00 -56.00 295.00 -56.00 295.00 -56.00 295.00 --1.00 -1.00 -1 2 -12 Process NPDU - 3 -48.00 304.00 -48.00 271.00 -225.00 271.00 -225.00 304.00 -48.00 304.00 --1.00 -1.00 -5 0 -0 - 0 -56.00 600.00 -56.00 615.00 -56.00 615.00 -56.00 615.00 --1.00 -1.00 -1 2 -18 Consistency Checks - 3 -47.00 498.00 -47.00 465.00 -224.00 465.00 -224.00 498.00 -47.00 498.00 --1.00 -1.00 -5 0 -0 - 0 -56.00 344.00 -56.00 359.00 -56.00 359.00 -56.00 359.00 --1.00 -1.00 -1 2 -20 Reassemble Fragments - 3 -168.00 432.00 -168.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 432.00 -48.00 400.00 -304.00 400.00 -304.00 432.00 -48.00 432.00 --1.00 -1.00 -5 0 -0 - 0 -200.00 408.00 -200.00 423.00 -200.00 423.00 -200.00 423.00 --1.00 -1.00 -1 2 -12 Forward NPDU - 0 -56.00 408.00 -56.00 423.00 -56.00 423.00 -56.00 423.00 --1.00 -1.00 -1 2 -9 Keep NPDU - 0 -56.00 472.00 -56.00 487.00 -56.00 487.00 -56.00 487.00 --1.00 -1.00 -1 2 -15 Process Options - 0 -56.00 536.00 -56.00 551.00 -56.00 551.00 -56.00 551.00 --1.00 -1.00 -1 2 -19 Extract Information - 0 -56.00 664.00 -56.00 679.00 -56.00 679.00 -56.00 679.00 --1.00 -1.00 -1 2 -14 Dequeue Packet - 3 -131.00 311.00 -128.00 316.00 -131.00 314.00 -134.00 316.00 -131.00 311.00 --1.00 -1.00 -5 0 -0 - 3 -131.00 329.00 -131.00 310.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 332.00 -130.00 332.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 373.00 -127.00 378.00 -130.00 376.00 -133.00 378.00 -130.00 373.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 394.00 -130.00 373.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 460.00 -130.00 439.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 439.00 -127.00 444.00 -130.00 442.00 -133.00 444.00 -130.00 439.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 501.00 -127.00 506.00 -130.00 504.00 -133.00 506.00 -130.00 501.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 522.00 -130.00 501.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 588.00 -128.00 567.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 567.00 -125.00 572.00 -128.00 570.00 -131.00 572.00 -128.00 567.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 631.00 -125.00 636.00 -128.00 634.00 -131.00 636.00 -128.00 631.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 652.00 -128.00 631.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 368.00 -48.00 335.00 -225.00 335.00 -225.00 368.00 -48.00 368.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 562.00 -47.00 529.00 -224.00 529.00 -224.00 562.00 -47.00 562.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 626.00 -47.00 593.00 -224.00 593.00 -224.00 626.00 -47.00 626.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 689.00 -47.00 656.00 -224.00 656.00 -224.00 689.00 -47.00 689.00 --1.00 -1.00 -5 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/clnp_input.nr b/share/doc/iso/wisc/figs/clnp_input.nr deleted file mode 100644 index 01f64688e996..000000000000 --- a/share/doc/iso/wisc/figs/clnp_input.nr +++ /dev/null @@ -1,188 +0,0 @@ -.(z -.br -.nr g1 3456u -.nr g2 2964u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D't 1u' -.sp -1 -.sp 101u -\D'l 0u 223u'\D'l 1193u 0u'\D'l 0u -223u'\D'l -1193u 0u' -.sp -1 -.sp 425u -\D'l 0u 222u'\D'l 1193u 0u'\D'l 0u -222u'\D'l -1193u 0u' -.sp -1 -.sp 431u -\D'l 0u 222u'\D'l 1193u 0u'\D'l 0u -222u'\D'l -1193u 0u' -.sp -1 -.sp 1306u -\h'7u'\D'l 0u 222u'\D'l 1192u 0u'\D'l 0u -222u'\D'l -1192u 0u' -.sp -1 -.sp -1912u -\h'546u'\D'l 0u 141u' -.sp -1 -.sp 141u -\h'546u'\D'l -20u -34u'\D'l 20u 14u'\D'l 20u -14u'\D'l -20u 34u' -.sp -1 -.sp 431u -\h'546u'\D'l -20u -33u'\D'l 20u 13u'\D'l 20u -13u'\D'l -20u 33u' -.sp -1 -.sp -141u -\h'546u'\D'l 0u 141u' -.sp -1 -.sp 444u -\h'559u'\D'l 0u 141u' -.sp -1 -.sp 141u -\h'559u'\D'l -20u -34u'\D'l 20u 14u'\D'l 21u -14u'\D'l -21u 34u' -.sp -1 -.sp 418u -\h'559u'\D'l -20u -34u'\D'l 20u 13u'\D'l 21u -13u'\D'l -21u 34u' -.sp -1 -.sp -142u -\h'559u'\D'l 0u 142u' -.sp -1 -.sp 445u -\h'559u'\D'l 0u 141u' -.sp -1 -.sp 141u -\h'559u'\D'l -20u -33u'\D'l 20u 13u'\D'l 21u -13u'\D'l -21u 33u' -.sp -1 -.sp 276u -\h'559u'\D'l 0u 0u' -.sp -1 -.sp 21u -\h'566u'\D'l 0u 128u' -.sp -1 -.sp 121u -\h'566u'\D'l -20u -34u'\D'l 20u 14u'\D'l 20u -14u'\D'l -20u 34u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Dequeue Packet -.sp -2377u -\h'61u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Extract Information -.sp -1515u -\h'61u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Process Options -.sp -1085u -\h'61u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Keep NPDU -.sp -654u -\h'61u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Forward NPDU -.sp -654u -\h'1031u'\&\*(g9 -.sp |\n(g8u -.sp -815u -\h'7u'\D'l 0u 215u'\D'l 1725u 0u'\D'l 0u -215u'\D'l -1725u 0u' -.sp -1 -\h'815u'\D'l 0u 215u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Reassemble Fragments -.sp 593u -\h'61u'\&\*(g9 -.sp |\n(g8u -.sp -445u -\D'l 0u 222u'\D'l 1193u 0u'\D'l 0u -222u'\D'l -1193u 0u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Consistency Checks -.sp -686u -\h'61u'\&\*(g9 -.sp |\n(g8u -.sp 1307u -\h'7u'\D'l 0u 222u'\D'l 1192u 0u'\D'l 0u -222u'\D'l -1192u 0u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Process NPDU -.sp 162u -\h'61u'\&\*(g9 -.sp |\n(g8u -.sp -539u -\h'600u'\D'l 700u 0u'\D'l 0u 431u'\D'l -700u 0u' -.sp -1 -.sp 431u -\h'600u'\D'l 33u -20u'\D'l -13u 20u'\D'l 13u 20u'\D'l -33u -20u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Discard Packet -.sp -2316u -\h'2109u'\&\*(g9 -.sp |\n(g8u -.sp -2485u -\h'2048u'\D'l 0u 223u'\D'l 1193u 0u'\D'l 0u -223u'\D'l -1193u 0u' -.sp -1 -\D's 16u' -.sp -1 -.sp 2270u -\h'1246u'\D'l 1294u 0u'\D'l 0u -1993u' -.sp -1 -.sp -863u -\h'1246u'\D'l 1294u 0u' -.sp -1 -.sp -430u -\h'1246u'\D'l 1294u 0u' -.sp -1 -.sp -431u -\h'1246u'\D'l 1294u 0u' -.sp -1 -.sp -431u -\h'1246u'\D'l 378u 0u'\D'l 0u 269u'\D'l 916u 0u' -.sp -1 -.sp 162u -\h'2540u'\D'l 20u 33u'\D'l -20u -13u'\D'l -20u 13u'\D'l 20u -33u' -.sp -1 -\D's -1u' -.sp -1 -.sp 2586u -\h'546u'\D'l 2910u 0u'\D'l 0u -2964u'\D'l -2910u 0u'\D'l 0u 54u' -.sp -1 -.sp -2910u -\h'546u'\D'l -20u -34u'\D'l 20u 14u'\D'l 20u -14u'\D'l -20u 34u' -.sp -1 -.sp 1886u -\h'1785u'\D'l 1671u 0u' -.sp -1 -.sp -1886u -\h'2540u'\D'l 0u -54u' -.sp -1 -.sp 2910u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG:\fR Flow of control for processing CLNP NPDUs -.)z diff --git a/share/doc/iso/wisc/figs/clnp_output.grn b/share/doc/iso/wisc/figs/clnp_output.grn deleted file mode 100644 index 5025eee757fe..000000000000 --- a/share/doc/iso/wisc/figs/clnp_output.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.4 -narrow 1 -medium 3 -thick 7 -pointscale off -file clnp_output.gsrc -.GE -.ce -\fB Figure \n+(FG:\fR Flow of control for emitting CLNP NPDUs -.)z diff --git a/share/doc/iso/wisc/figs/clnp_output.gsrc b/share/doc/iso/wisc/figs/clnp_output.gsrc deleted file mode 100644 index 49a018677094..000000000000 --- a/share/doc/iso/wisc/figs/clnp_output.gsrc +++ /dev/null @@ -1,376 +0,0 @@ -gremlinfile -0 528.00 32.00 -3 -528.00 688.00 -531.00 683.00 -528.00 685.00 -525.00 683.00 -528.00 688.00 --1.00 -1.00 -5 0 -0 - 3 -176.00 160.00 -176.00 144.00 -528.00 144.00 -528.00 688.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 672.00 -272.00 685.00 -272.00 685.00 -272.00 685.00 --1.00 -1.00 -2 2 -6 EINVAL - 3 -240.00 672.00 -528.00 672.00 --1.00 -1.00 -4 0 -0 - 3 -128.00 652.00 -128.00 631.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 631.00 -125.00 636.00 -128.00 634.00 -131.00 636.00 -128.00 631.00 --1.00 -1.00 -5 0 -0 - 0 -64.00 672.00 -64.00 687.00 -64.00 687.00 -64.00 687.00 --1.00 -1.00 -1 2 -15 Examine Options - 3 -47.00 689.00 -47.00 656.00 -224.00 656.00 -224.00 689.00 -47.00 689.00 --1.00 -1.00 -5 0 -0 - 0 -64.00 608.00 -64.00 623.00 -64.00 623.00 -64.00 623.00 --1.00 -1.00 -1 2 -15 Check Addresses - 0 -64.00 546.00 -64.00 561.00 -64.00 561.00 -64.00 561.00 --1.00 -1.00 -1 2 -20 Allocate Header mbuf - 0 -64.00 481.00 -64.00 496.00 -64.00 496.00 -64.00 496.00 --1.00 -1.00 -1 2 -17 Create Fixed Part - 0 -64.00 417.00 -64.00 432.00 -64.00 432.00 -64.00 432.00 --1.00 -1.00 -1 2 -12 Route Packet - 0 -64.00 352.00 -64.00 367.00 -64.00 367.00 -64.00 367.00 --1.00 -1.00 -1 2 -19 Append Address Part - 0 -64.00 290.00 -64.00 305.00 -64.00 305.00 -64.00 305.00 --1.00 -1.00 -1 2 -19 Append Options Part - 0 -64.00 225.00 -64.00 240.00 -64.00 240.00 -64.00 240.00 --1.00 -1.00 -1 2 -13 Transmit NPDU - 0 -192.00 224.00 -192.00 239.00 -192.00 239.00 -192.00 239.00 --1.00 -1.00 -1 2 -13 Fragment NPDU - 3 -47.00 625.00 -47.00 592.00 -224.00 592.00 -224.00 625.00 -47.00 625.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 562.00 -47.00 529.00 -224.00 529.00 -224.00 562.00 -47.00 562.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 498.00 -47.00 465.00 -224.00 465.00 -224.00 498.00 -47.00 498.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 433.00 -48.00 400.00 -225.00 400.00 -225.00 433.00 -48.00 433.00 --1.00 -1.00 -5 0 -0 - 3 -47.00 368.00 -47.00 335.00 -224.00 335.00 -224.00 368.00 -47.00 368.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 304.00 -48.00 271.00 -225.00 271.00 -225.00 304.00 -48.00 304.00 --1.00 -1.00 -5 0 -0 - 3 -49.00 240.00 -49.00 209.00 -306.00 209.00 -306.00 240.00 -49.00 240.00 --1.00 -1.00 -5 0 -0 - 3 -167.00 239.00 -167.00 209.00 --1.00 -1.00 -1 0 -0 - 3 -128.00 588.00 -128.00 567.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 567.00 -125.00 572.00 -128.00 570.00 -131.00 572.00 -128.00 567.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 503.00 -125.00 508.00 -128.00 506.00 -131.00 508.00 -128.00 503.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 524.00 -128.00 503.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 458.00 -130.00 437.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 437.00 -127.00 442.00 -130.00 440.00 -133.00 442.00 -130.00 437.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 375.00 -127.00 380.00 -130.00 378.00 -133.00 380.00 -130.00 375.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 396.00 -130.00 375.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 330.00 -130.00 309.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 309.00 -127.00 314.00 -130.00 312.00 -133.00 314.00 -130.00 309.00 --1.00 -1.00 -5 0 -0 - 3 -130.00 268.00 -130.00 268.00 --1.00 -1.00 -5 0 -0 - 3 -131.00 265.00 -131.00 246.00 --1.00 -1.00 -5 0 -0 - 3 -131.00 247.00 -128.00 252.00 -131.00 250.00 -134.00 252.00 -131.00 247.00 --1.00 -1.00 -5 0 -0 - 3 -146.00 320.00 -242.00 320.00 -242.00 255.00 -146.00 255.00 --1.00 -1.00 -5 0 -0 - 3 -146.00 255.00 -151.00 258.00 -149.00 255.00 -151.00 252.00 -146.00 255.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 608.00 -272.00 621.00 -272.00 621.00 -272.00 621.00 --1.00 -1.00 -2 2 -12 ENAMETOOLONG - 0 -273.00 545.00 -273.00 558.00 -273.00 558.00 -273.00 558.00 --1.00 -1.00 -2 2 -7 ENOBUFS - 0 -272.00 417.00 -272.00 430.00 -272.00 430.00 -272.00 430.00 --1.00 -1.00 -2 2 -25 ENETUNREACH, EHOSTUNREACH - 0 -272.00 289.00 -272.00 302.00 -272.00 302.00 -272.00 302.00 --1.00 -1.00 -2 2 -7 ENOBUFS - 3 -241.00 601.00 -529.00 601.00 --1.00 -1.00 -4 0 -0 - 3 -240.00 536.00 -530.00 536.00 --1.00 -1.00 -4 0 -0 - 3 -241.00 413.00 -527.00 413.00 --1.00 -1.00 -4 0 -0 - 3 -233.00 288.00 -529.00 288.00 --1.00 -1.00 -4 0 -0 - 0 -152.00 175.00 -152.00 190.00 -152.00 190.00 -152.00 190.00 --1.00 -1.00 -1 2 -7 SUCCESS - -1 diff --git a/share/doc/iso/wisc/figs/clnp_output.nr b/share/doc/iso/wisc/figs/clnp_output.nr deleted file mode 100644 index b11d4657e981..000000000000 --- a/share/doc/iso/wisc/figs/clnp_output.nr +++ /dev/null @@ -1,233 +0,0 @@ -.(z -.br -.nr g1 3456u -.nr g2 3891u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "SUCCESS -.sp 3670u -\h'750u'\&\*(g9 -.sp |\n(g8u -\D's 16u'\D't 1u' -.sp -1 -.sp 2863u -\h'1328u'\D'l 2114u 0u' -.sp -1 -.sp -893u -\h'1385u'\D'l 2043u 0u' -.sp -1 -.sp -877u -\h'1378u'\D'l 2071u 0u' -.sp -1 -.sp -464u -\h'1385u'\D'l 2057u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "ENOBUFS -.sp 2227u -\h'1607u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "ENETUNREACH, EHOSTUNREACH -.sp 1313u -\h'1607u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "ENOBUFS -.sp 400u -\h'1614u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "ENAMETOOLONG -.sp -50u -\h'1607u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 2469u -\h'707u'\D'l 36u -21u'\D'l -15u 21u'\D'l 15u 22u'\D'l -36u -22u' -.sp -1 -.sp -464u -\h'707u'\D'l 686u 0u'\D'l 0u 464u'\D'l -686u 0u' -.sp -1 -.sp 522u -\h'600u'\D'l -22u -36u'\D'l 22u 14u'\D'l 21u -14u'\D'l -21u 36u' -.sp -1 -.sp -129u -\h'600u'\D'l 0u 136u' -.sp -1 -.sp -21u -\h'593u'\D'l 0u 0u' -.sp -1 -.sp -293u -\h'593u'\D'l -22u -36u'\D'l 22u 14u'\D'l 21u -14u'\D'l -21u 36u' -.sp -1 -.sp -150u -\h'593u'\D'l 0u 150u' -.sp -1 -.sp -471u -\h'593u'\D'l 0u 150u' -.sp -1 -.sp 150u -\h'593u'\D'l -22u -36u'\D'l 22u 14u'\D'l 21u -14u'\D'l -21u 36u' -.sp -1 -.sp -443u -\h'593u'\D'l -22u -36u'\D'l 22u 14u'\D'l 21u -14u'\D'l -21u 36u' -.sp -1 -.sp -150u -\h'593u'\D'l 0u 150u' -.sp -1 -.sp -470u -\h'578u'\D'l 0u 149u' -.sp -1 -.sp 149u -\h'578u'\D'l -21u -36u'\D'l 21u 14u'\D'l 22u -14u'\D'l -22u 36u' -.sp -1 -.sp -456u -\h'578u'\D'l -21u -36u'\D'l 21u 14u'\D'l 22u -14u'\D'l -22u 36u' -.sp -1 -.sp -150u -\h'578u'\D'l 0u 150u' -.sp -1 -\D's 4u' -.sp -1 -.sp 2491u -\h'857u'\D'l 0u 214u' -.sp -1 -\D's -1u' -.sp -1 -.sp -7u -\h'14u'\D'l 0u 221u'\D'l 1835u 0u'\D'l 0u -221u'\D'l -1835u 0u' -.sp -1 -.sp -457u -\h'7u'\D'l 0u 235u'\D'l 1264u 0u'\D'l 0u -235u'\D'l -1264u 0u' -.sp -1 -.sp -457u -\D'l 0u 235u'\D'l 1264u 0u'\D'l 0u -235u'\D'l -1264u 0u' -.sp -1 -.sp -465u -\h'7u'\D'l 0u 236u'\D'l 1264u 0u'\D'l 0u -236u'\D'l -1264u 0u' -.sp -1 -.sp -464u -\D'l 0u 236u'\D'l 1264u 0u'\D'l 0u -236u'\D'l -1264u 0u' -.sp -1 -.sp -456u -\D'l 0u 236u'\D'l 1264u 0u'\D'l 0u -236u'\D'l -1264u 0u' -.sp -1 -.sp -450u -\D'l 0u 236u'\D'l 1264u 0u'\D'l 0u -236u'\D'l -1264u 0u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Fragment NPDU -.sp 2863u -\h'1035u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Transmit NPDU -.sp 2856u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Append Options Part -.sp 2392u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Append Address Part -.sp 1949u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Route Packet -.sp 1485u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Create Fixed Part -.sp 1028u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Allocate Header mbuf -.sp 565u -\h'121u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Check Addresses -.sp 122u -\h'121u'\&\*(g9 -.sp |\n(g8u -.sp -457u -\D'l 0u 236u'\D'l 1264u 0u'\D'l 0u -236u'\D'l -1264u 0u' -.sp -1 -.ft R -.ps 10 -.nr g8 \n(.d -.ds g9 "Examine Options -.sp 122u -\h'121u'\&\*(g9 -.sp |\n(g8u -.sp 415u -\h'578u'\D'l -21u -36u'\D'l 21u 14u'\D'l 22u -14u'\D'l -22u 36u' -.sp -1 -.sp -150u -\h'578u'\D'l 0u 150u' -.sp -1 -\D's 16u' -.sp -1 -.sp -143u -\h'1378u'\D'l 2057u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "EINVAL -\h'1607u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 3655u -\h'921u'\D'l 0u 114u'\D'l 2514u 0u'\D'l 0u -3883u' -.sp -1 -.sp -3769u -\h'3435u'\D'l 21u 35u'\D'l -21u -14u'\D'l -22u 14u'\D'l 22u -35u' -.sp -1 -.sp 3883u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG:\fR Flow of control for emitting CLNP NPDUs -.)z diff --git a/share/doc/iso/wisc/figs/ecn_network.grn b/share/doc/iso/wisc/figs/ecn_network.grn deleted file mode 100644 index d58c5d860f9c..000000000000 --- a/share/doc/iso/wisc/figs/ecn_network.grn +++ /dev/null @@ -1,19 +0,0 @@ -.(z -.hl -.GS C -width 6.0 -high 4.0 -1 6 -2 8 -3 10 -4 12 -sc 0.5 -narrow 1 -medium 3 -thick 7 -pointscale off -file ecn_network.gsrc -.GE -.ce -\fBFigure \n+(FG:\fR The X.25 Network Interface -.)z diff --git a/share/doc/iso/wisc/figs/ecn_network.gsrc b/share/doc/iso/wisc/figs/ecn_network.gsrc deleted file mode 100644 index 1772b1d96e30..000000000000 --- a/share/doc/iso/wisc/figs/ecn_network.gsrc +++ /dev/null @@ -1,288 +0,0 @@ -gremlinfile -0 370.00 354.00 -0 -370.00 346.00 -370.00 361.00 -370.00 361.00 -370.00 361.00 --1.00 -1.00 -1 2 -10 (/dev/bus) - 0 -360.00 361.00 -360.00 376.00 -360.00 376.00 -360.00 376.00 --1.00 -1.00 -1 2 -13 X.25 download - 0 -558.00 524.00 -558.00 539.00 -558.00 539.00 -558.00 539.00 --1.00 -1.00 -1 2 -13 configuration - 0 -558.00 534.00 -558.00 549.00 -558.00 549.00 -558.00 549.00 --1.00 -1.00 -1 2 -8 updated - 0 -358.00 459.00 -358.00 474.00 -358.00 474.00 -358.00 474.00 --1.00 -1.00 -1 2 -12 (/dev/kmem1) - 0 -362.00 474.00 -362.00 489.00 -362.00 489.00 -362.00 489.00 --1.00 -1.00 -1 2 -13 configuration - 0 -248.00 399.00 -248.00 414.00 -248.00 414.00 -248.00 414.00 --1.00 -1.00 -1 2 -22 Data Area on the board - 0 -248.00 409.00 -248.00 424.00 -248.00 424.00 -248.00 424.00 --1.00 -1.00 -1 2 -22 to and from the Common - 0 -245.00 507.00 -245.00 522.00 -245.00 522.00 -245.00 522.00 --1.00 -1.00 -1 2 -10 ecnioctl() - 0 -245.00 516.00 -245.00 531.00 -245.00 531.00 -245.00 531.00 --1.00 -1.00 -1 2 -12 ecnrestart() - 0 -245.00 524.00 -245.00 539.00 -245.00 539.00 -245.00 539.00 --1.00 -1.00 -1 2 -13 ecnshutdown() - 0 -176.00 419.00 -176.00 434.00 -176.00 434.00 -176.00 434.00 --1.00 -1.00 -1 2 -34 INTERFACES: the NCB command loaded - 0 -175.00 532.00 -175.00 547.00 -175.00 547.00 -175.00 547.00 --1.00 -1.00 -1 2 -23 INTERFACES: ecnoutput() - 0 -42.00 415.00 -42.00 430.00 -42.00 430.00 -42.00 430.00 --1.00 -1.00 -1 2 -15 COMMANDS: NCB_* - 0 -42.00 527.00 -42.00 542.00 -42.00 542.00 -42.00 542.00 --1.00 -1.00 -1 2 -15 COMMANDS: ECN_* - 3 -546.00 511.00 -553.00 494.00 -560.00 511.00 --1.00 -1.00 -5 0 -0 - 3 -287.00 364.00 -270.00 357.00 -287.00 348.00 --1.00 -1.00 -5 0 -0 - 3 -287.00 477.00 -271.00 469.00 -287.00 461.00 --1.00 -1.00 -5 0 -0 - 3 -151.00 397.00 -159.00 382.00 -167.00 398.00 --1.00 -1.00 -5 0 -0 - 3 -151.00 431.00 -159.00 445.00 -167.00 431.00 --1.00 -1.00 -5 0 -0 - 3 -153.00 510.00 -160.00 494.00 -168.00 510.00 --1.00 -1.00 -5 0 -0 - 3 -152.00 540.00 -160.00 558.00 -167.00 540.00 --1.00 -1.00 -5 0 -0 - 3 -272.00 469.00 -492.00 469.00 --1.00 -1.00 -5 0 -0 - 3 -271.00 357.00 -552.00 357.00 -552.00 446.00 --1.00 -1.00 -5 0 -0 - 3 -553.00 557.00 -553.00 494.00 --1.00 -1.00 -5 0 -0 - 3 -159.00 445.00 -159.00 381.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 557.00 -160.00 494.00 --1.00 -1.00 -5 0 -0 - 0 -517.00 458.00 -517.00 472.00 -517.00 472.00 -517.00 472.00 --1.00 -1.00 -1 3 -8 %ecnload - 0 -514.00 570.00 -514.00 584.00 -514.00 584.00 -514.00 584.00 --1.00 -1.00 -1 3 -8 %ecnconf - 0 -115.00 347.00 -115.00 366.00 -115.00 366.00 -115.00 366.00 --1.00 -1.00 -1 4 -11 EICON Board - 0 -114.00 458.00 -114.00 477.00 -114.00 477.00 -114.00 477.00 --1.00 -1.00 -1 4 -11 UNIX Driver - 0 -133.00 569.00 -133.00 588.00 -133.00 588.00 -133.00 588.00 --1.00 -1.00 -1 4 -4 CONS - 3 -493.00 445.00 -493.00 493.00 -608.00 493.00 -608.00 445.00 -493.00 445.00 --1.00 -1.00 -5 0 -0 - 3 -493.00 557.00 -493.00 605.00 -608.00 605.00 -608.00 557.00 -493.00 557.00 --1.00 -1.00 -5 0 -0 - 3 -63.00 332.00 -63.00 381.00 -272.00 381.00 -272.00 332.00 -63.00 332.00 --1.00 -1.00 -5 0 -0 - 3 -63.00 445.00 -63.00 494.00 -272.00 494.00 -272.00 445.00 -63.00 445.00 --1.00 -1.00 -5 0 -0 - 3 -63.00 557.00 -63.00 606.00 -272.00 606.00 -272.00 557.00 -63.00 557.00 --1.00 -1.00 -5 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/ecn_network.nr b/share/doc/iso/wisc/figs/ecn_network.nr deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/share/doc/iso/wisc/figs/ecn_queue.grn b/share/doc/iso/wisc/figs/ecn_queue.grn deleted file mode 100644 index 5a9824d43a32..000000000000 --- a/share/doc/iso/wisc/figs/ecn_queue.grn +++ /dev/null @@ -1,19 +0,0 @@ -.(z -.hl -.GS C -width 6.0 -high 3.0 -1 5 -2 7 -3 9 -4 12 -sc 0.5 -narrow 1 -medium 3 -thick 7 -pointscale off -file ecn_queue.gsrc -.GE -.ce -\fBFigure \n+(FG:\fR Queue Placement Strategy -.)z diff --git a/share/doc/iso/wisc/figs/ecn_queue.gsrc b/share/doc/iso/wisc/figs/ecn_queue.gsrc deleted file mode 100644 index 81e3e07b547c..000000000000 --- a/share/doc/iso/wisc/figs/ecn_queue.gsrc +++ /dev/null @@ -1,371 +0,0 @@ -gremlinfile -0 98.00 422.00 -3 -98.00 278.00 -562.00 278.00 --1.00 -1.00 -4 0 -0 - 3 -425.00 557.00 -577.00 557.00 --1.00 -1.00 -4 0 -0 - 3 -341.00 528.00 -425.00 528.00 --1.00 -1.00 -5 0 -0 - 0 -457.00 536.00 -457.00 549.00 -457.00 549.00 -457.00 549.00 --1.00 -1.00 -2 3 -10 ECN driver - 0 -321.00 419.00 -321.00 432.00 -321.00 432.00 -321.00 432.00 --1.00 -1.00 -2 2 -20 Driver->CONS replies - 0 -356.00 584.00 -356.00 599.00 -356.00 599.00 -356.00 599.00 --1.00 -1.00 -1 2 -8 x25intrq - 0 -457.00 253.00 -457.00 266.00 -457.00 266.00 -457.00 266.00 --1.00 -1.00 -2 3 -16 EICON X.25 board - 0 -457.00 285.00 -457.00 298.00 -457.00 298.00 -457.00 298.00 --1.00 -1.00 -2 3 -10 ECN driver - 0 -457.00 563.00 -457.00 576.00 -457.00 576.00 -457.00 576.00 --1.00 -1.00 -2 3 -11 CONS module - 3 -217.00 557.00 -340.00 557.00 --1.00 -1.00 -4 0 -0 - 3 -90.00 556.00 -131.00 556.00 --1.00 -1.00 -4 0 -0 - 3 -375.00 222.00 -381.00 209.00 -389.00 222.00 --1.00 -1.00 -5 0 -0 - 3 -168.00 222.00 -174.00 209.00 -182.00 222.00 --1.00 -1.00 -5 0 -0 - 3 -165.00 615.00 -171.00 602.00 -179.00 615.00 --1.00 -1.00 -5 0 -0 - 3 -166.00 421.00 -172.00 408.00 -180.00 421.00 --1.00 -1.00 -5 0 -0 - 3 -173.00 392.00 -189.00 371.00 --1.00 -1.00 -1 0 -0 - 3 -173.00 348.00 -172.00 392.00 -273.00 360.00 --1.00 -1.00 -1 0 -0 - 3 -306.00 361.00 -382.00 414.00 --1.00 -1.00 -1 0 -0 - 3 -266.00 228.00 -273.00 243.00 -280.00 228.00 --1.00 -1.00 -5 0 -0 - 0 -201.00 197.00 -201.00 210.00 -201.00 210.00 -201.00 210.00 --1.00 -1.00 -2 2 -23 Driver<->Board commands - 3 -273.00 246.00 -273.00 214.00 --1.00 -1.00 -1 0 -0 - 0 -223.00 295.00 -223.00 308.00 -223.00 308.00 -223.00 308.00 --1.00 -1.00 -2 2 -15 posted commands - 3 -111.00 402.00 -131.00 402.00 --1.00 -1.00 -5 0 -0 - 3 -376.00 459.00 -383.00 474.00 -390.00 459.00 --1.00 -1.00 -5 0 -0 - 3 -364.00 363.00 -383.00 416.00 -387.00 357.00 --1.00 -1.00 -1 0 -0 - 3 -383.00 437.00 -383.00 473.00 --1.00 -1.00 -1 0 -0 - 3 -172.00 411.00 -172.00 474.00 --1.00 -1.00 -1 0 -0 - 0 -8.00 401.00 -8.00 416.00 -8.00 416.00 -8.00 416.00 --1.00 -1.00 -1 2 -15 ecn_pending_req - 0 -109.00 653.00 -109.00 666.00 -109.00 666.00 -109.00 666.00 --1.00 -1.00 -2 2 -20 CONS->Driver command - 0 -357.00 570.00 -357.00 585.00 -357.00 585.00 -357.00 585.00 --1.00 -1.00 -1 2 -5 QUEUE - 0 -151.00 569.00 -151.00 584.00 -151.00 584.00 -151.00 584.00 --1.00 -1.00 -1 2 -5 QUEUE - 3 -340.00 315.00 -340.00 298.00 -422.00 298.00 -422.00 315.00 -340.00 315.00 --1.00 -1.00 -6 0 -0 - 3 -235.00 347.00 -235.00 330.00 -317.00 330.00 -317.00 347.00 -235.00 347.00 --1.00 -1.00 -6 0 -0 - 3 -232.00 262.00 -232.00 245.00 -314.00 245.00 -314.00 262.00 -232.00 262.00 --1.00 -1.00 -6 0 -0 - 3 -133.00 329.00 -133.00 312.00 -215.00 312.00 -215.00 329.00 -133.00 329.00 --1.00 -1.00 -6 0 -0 - 3 -133.00 409.00 -133.00 392.00 -215.00 392.00 -215.00 409.00 -133.00 409.00 --1.00 -1.00 -6 0 -0 - 3 -340.00 547.00 -426.00 547.00 --1.00 -1.00 -5 0 -0 - 3 -340.00 509.00 -425.00 509.00 --1.00 -1.00 -5 0 -0 - 3 -340.00 491.00 -424.00 491.00 --1.00 -1.00 -5 0 -0 - 3 -340.00 602.00 -340.00 473.00 -425.00 473.00 -425.00 601.00 --1.00 -1.00 -6 0 -0 - 3 -132.00 547.00 -218.00 547.00 --1.00 -1.00 -5 0 -0 - 3 -133.00 528.00 -217.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -132.00 509.00 -217.00 509.00 --1.00 -1.00 -5 0 -0 - 3 -132.00 491.00 -216.00 491.00 --1.00 -1.00 -5 0 -0 - 3 -132.00 602.00 -132.00 473.00 -217.00 473.00 -217.00 601.00 --1.00 -1.00 -6 0 -0 - 3 -125.00 410.00 -132.00 402.00 -125.00 395.00 --1.00 -1.00 -5 0 -0 - 3 -174.00 211.00 -174.00 312.00 --1.00 -1.00 -1 0 -0 - 3 -381.00 210.00 -381.00 298.00 --1.00 -1.00 -1 0 -0 - 3 -374.00 282.00 -381.00 297.00 -388.00 282.00 --1.00 -1.00 -5 0 -0 - 3 -167.00 297.00 -174.00 312.00 -181.00 297.00 --1.00 -1.00 -5 0 -0 - 0 -156.00 583.00 -156.00 598.00 -156.00 598.00 -156.00 598.00 --1.00 -1.00 -1 2 -6 ecn_if - 3 -171.00 604.00 -171.00 648.00 --1.00 -1.00 -1 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/ecn_queue.nr b/share/doc/iso/wisc/figs/ecn_queue.nr deleted file mode 100644 index c6c0ce16b832..000000000000 --- a/share/doc/iso/wisc/figs/ecn_queue.nr +++ /dev/null @@ -1,262 +0,0 @@ -.(z -.hl -.br -.nr g1 2156u -.nr g2 1727u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D's 4u'\D't 1u' -.sp -1 -.sp 186u -\h'617u'\D'l 0u -167u' -.sp -1 -.ft R -.ps 7 -.nr g8 \n(.d -.ds g9 "ecn_if -.sp 80u -\h'561u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 1162u -\h'602u'\D'l 27u -56u'\D'l 26u 56u' -.sp -1 -.sp 57u -\h'1387u'\D'l 26u -57u'\D'l 27u 57u' -.sp -1 -\D's 4u' -.sp -1 -.sp 273u -\h'1413u'\D'l 0u -333u' -.sp -1 -.sp -4u -\h'629u'\D'l 0u -382u' -.sp -1 -\D's -1u' -.sp -1 -.sp -754u -\h'443u'\D'l 27u 31u'\D'l -27u 26u' -.sp -1 -\D't 3u' -.sp -1 -.sp -726u -\h'470u'\D'l 0u 487u'\D'l 322u 0u'\D'l 0u -484u' -.sp -1 -\D't 1u' -.sp -1 -.sp 419u -\h'470u'\D'l 318u 0u' -.sp -1 -.sp -68u -\h'470u'\D'l 322u 0u' -.sp -1 -.sp -71u -\h'473u'\D'l 319u 0u' -.sp -1 -.sp -72u -\h'470u'\D'l 326u 0u' -.sp -1 -\D't 3u' -.sp -1 -.sp -208u -\h'1258u'\D'l 0u 487u'\D'l 322u 0u'\D'l 0u -484u' -.sp -1 -\D't 1u' -.sp -1 -.sp 419u -\h'1258u'\D'l 318u 0u' -.sp -1 -.sp -68u -\h'1258u'\D'l 322u 0u' -.sp -1 -.sp -143u -\h'1258u'\D'l 326u 0u' -.sp -1 -\D't 3u' -.sp -1 -.sp 522u -\h'473u'\D'l 0u 64u'\D'l 311u 0u'\D'l 0u -64u'\D'l -311u 0u' -.sp -1 -.sp 303u -\h'473u'\D'l 0u 65u'\D'l 311u 0u'\D'l 0u -65u'\D'l -311u 0u' -.sp -1 -.sp 254u -\h'849u'\D'l 0u 64u'\D'l 310u 0u'\D'l 0u -64u'\D'l -310u 0u' -.sp -1 -.sp -322u -\h'860u'\D'l 0u 64u'\D'l 311u 0u'\D'l 0u -64u'\D'l -311u 0u' -.sp -1 -.sp 121u -\h'1258u'\D'l 0u 65u'\D'l 311u 0u'\D'l 0u -65u'\D'l -311u 0u' -.sp -1 -.ft R -.ps 7 -.nr g8 \n(.d -.ds g9 "QUEUE -.sp -961u -\h'542u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 7 -.nr g8 \n(.d -.ds g9 "QUEUE -.sp -965u -\h'1322u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 7 -.nr g8 \n(.d -.ds g9 "CONS->Driver command -.sp -1280u -\h'383u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 7 -.nr g8 \n(.d -.ds g9 "ecn_pending_req -.sp -326u -\&\*(g9 -.sp |\n(g8u -\D's 4u'\D't 1u' -.sp -1 -.sp -364u -\h'621u'\D'l 0u -238u' -.sp -1 -.sp -98u -\h'1421u'\D'l 0u -137u' -.sp -1 -.sp 280u -\h'1349u'\D'l 72u -201u'\D'l 15u 224u' -.sp -1 -\D's -1u' -.sp -1 -.sp -363u -\h'1394u'\D'l 27u -57u'\D'l 26u 57u' -.sp -1 -.sp 216u -\h'390u'\D'l 76u 0u' -.sp -1 -.ft I -.ps 7 -.nr g8 \n(.d -.ds g9 "posted commands -.sp 405u -\h'815u'\&\*(g9 -.sp |\n(g8u -\D's 4u' -.sp -1 -.sp 591u -\h'1004u'\D'l 0u 121u' -.sp -1 -.ft I -.ps 7 -.nr g8 \n(.d -.ds g9 "Driver<->Board commands -.sp 185u -\h'731u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 68u -\h'977u'\D'l 27u -57u'\D'l 27u 57u' -.sp -1 -\D's 4u' -.sp -1 -.sp -504u -\h'1129u'\D'l 288u -201u' -.sp -1 -.sp 49u -\h'625u'\D'l -4u -167u'\D'l 383u 122u' -.sp -1 -.sp -167u -\h'625u'\D'l 61u 80u' -.sp -1 -\D's -1u' -.sp -1 -.sp -109u -\h'599u'\D'l 22u 49u'\D'l 31u -49u' -.sp -1 -.sp -735u -\h'595u'\D'l 22u 50u'\D'l 31u -50u' -.sp -1 -.sp 1489u -\h'606u'\D'l 23u 49u'\D'l 30u -49u' -.sp -1 -\h'1391u'\D'l 22u 49u'\D'l 31u -49u' -.sp -1 -\D's 16u' -.sp -1 -.sp -1265u -\h'311u'\D'l 155u 0u' -.sp -1 -.sp -4u -\h'792u'\D'l 466u 0u' -.sp -1 -.ft I -.ps 9 -.nr g8 \n(.d -.ds g9 "CONS module -.sp -23u -\h'1701u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 9 -.nr g8 \n(.d -.ds g9 "ECN driver -.sp 1030u -\h'1701u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 9 -.nr g8 \n(.d -.ds g9 "EICON X.25 board -.sp 1151u -\h'1701u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 7 -.nr g8 \n(.d -.ds g9 "x25intrq -.sp -102u -\h'1319u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 7 -.nr g8 \n(.d -.ds g9 "Driver->CONS replies -.sp 522u -\h'1186u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 9 -.nr g8 \n(.d -.ds g9 "ECN driver -.sp 80u -\h'1701u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 110u -\h'1262u'\D'l 318u 0u' -.sp -1 -\D's 16u' -.sp -1 -.sp -110u -\h'1580u'\D'l 576u 0u' -.sp -1 -.sp 1056u -\h'341u'\D'l 1758u 0u' -.sp -1 -.sp 307u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fBFigure \n+(FG:\fR Queue Placement Strategy -.)z diff --git a/share/doc/iso/wisc/figs/ecn_vc.grn b/share/doc/iso/wisc/figs/ecn_vc.grn deleted file mode 100644 index b1c93ed4b4e2..000000000000 --- a/share/doc/iso/wisc/figs/ecn_vc.grn +++ /dev/null @@ -1,19 +0,0 @@ -.(z -.hl -.GS C -width 6.0 -high 4.0 -1 8 -2 10 -3 12 -4 14 -sc 0.5 -narrow 1 -medium 3 -thick 7 -pointscale off -file ecn_vc.gsrc -.GE -.ce -\fBFigure \n+(FG:\fR Virtual Circuit State Diagram -.)z diff --git a/share/doc/iso/wisc/figs/ecn_vc.gsrc b/share/doc/iso/wisc/figs/ecn_vc.gsrc deleted file mode 100644 index 9364ced9e0eb..000000000000 --- a/share/doc/iso/wisc/figs/ecn_vc.gsrc +++ /dev/null @@ -1,273 +0,0 @@ -gremlinfile -0 184.00 269.00 -0 -184.00 431.00 -184.00 441.00 -184.00 441.00 -184.00 441.00 --1.00 -1.00 -2 1 -23 SEND/RECEIVE completion - 0 -110.00 358.00 -110.00 368.00 -110.00 368.00 -110.00 368.00 --1.00 -1.00 -2 1 -10 completion - 0 -99.00 368.00 -99.00 378.00 -99.00 378.00 -99.00 378.00 --1.00 -1.00 -2 1 -11 CLEAR/ABORT - 0 -366.00 360.00 -366.00 370.00 -366.00 370.00 -366.00 370.00 --1.00 -1.00 -2 1 -6 issued - 0 -359.00 373.00 -359.00 383.00 -359.00 383.00 -359.00 383.00 --1.00 -1.00 -2 1 -11 CLEAR/ABORT - 0 -210.00 445.00 -210.00 455.00 -210.00 455.00 -210.00 455.00 --1.00 -1.00 -2 1 -9 0x0a from - 0 -206.00 495.00 -206.00 505.00 -206.00 505.00 -206.00 505.00 --1.00 -1.00 -2 1 -22 CALL/LISTEN completion - 0 -264.00 523.00 -264.00 533.00 -264.00 533.00 -264.00 533.00 --1.00 -1.00 -2 1 -10 completion - 0 -240.00 533.00 -240.00 543.00 -240.00 543.00 -240.00 543.00 --1.00 -1.00 -2 1 -13 RECEIVE/RESET - 0 -379.00 575.00 -379.00 585.00 -379.00 585.00 -379.00 585.00 --1.00 -1.00 -2 1 -10 completion - 0 -345.00 589.00 -345.00 599.00 -345.00 599.00 -345.00 599.00 --1.00 -1.00 -2 1 -22 0x18 from SEND/RECEIVE - 0 -394.00 602.00 -394.00 612.00 -394.00 612.00 -394.00 612.00 --1.00 -1.00 -2 1 -6 - or - - 0 -367.00 613.00 -367.00 623.00 -367.00 623.00 -367.00 623.00 --1.00 -1.00 -2 1 -12 RESET issued - 3 -319.00 359.00 -311.00 340.00 -329.00 349.00 --1.00 -1.00 -5 0 -0 - 3 -361.00 520.00 -367.00 503.00 -351.00 508.00 --1.00 -1.00 -5 0 -0 - 3 -143.00 391.00 -138.00 409.00 -154.00 401.00 --1.00 -1.00 -5 0 -0 - 3 -328.00 582.00 -323.00 600.00 -339.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -163.00 420.00 -152.00 427.00 -163.00 435.00 --1.00 -1.00 -5 0 -0 - 3 -350.00 485.00 -361.00 492.00 -350.00 500.00 --1.00 -1.00 -5 0 -0 - 3 -312.00 341.00 -375.00 407.00 --1.00 -1.00 -4 0 -0 - 3 -135.00 410.00 -202.00 343.00 --1.00 -1.00 -4 0 -0 - 3 -320.00 601.00 -408.00 529.00 --1.00 -1.00 -4 0 -0 - 3 -293.00 563.00 -368.00 503.00 --1.00 -1.00 -4 0 -0 - 3 -150.00 428.00 -358.00 428.00 --1.00 -1.00 -4 0 -0 - 3 -148.00 492.00 -363.00 492.00 --1.00 -1.00 -4 0 -0 - 0 -226.00 309.00 -226.00 319.00 -226.00 319.00 -226.00 319.00 --1.00 -1.00 -1 1 -8 VC_CLEAR - 0 -372.00 455.00 -372.00 465.00 -372.00 465.00 -372.00 465.00 --1.00 -1.00 -1 1 -12 VC_DATA_XFER - 0 -25.00 458.00 -25.00 468.00 -25.00 468.00 -25.00 468.00 --1.00 -1.00 -1 1 -16 VC_NO_CONNECTION - 0 -218.00 293.00 -218.00 303.00 -218.00 303.00 -218.00 303.00 --1.00 -1.00 -1 1 -11 IN_PROGRESS - 0 -222.00 618.00 -222.00 628.00 -222.00 628.00 -222.00 628.00 --1.00 -1.00 -1 1 -11 IN_PROGRESS - 0 -228.00 634.00 -228.00 644.00 -228.00 644.00 -228.00 644.00 --1.00 -1.00 -1 1 -8 VC_RESET - 4 -423.00 459.00 -429.00 390.00 -423.00 528.26 -423.00 389.74 -353.74 459.00 -492.26 459.00 --1.00 -1.00 -5 0 -0 - 4 -89.00 459.00 -83.00 390.00 -89.00 528.26 -89.00 389.74 -158.26 459.00 -19.74 459.00 --1.00 -1.00 -5 0 -0 - 4 -256.00 299.00 -250.00 230.00 -256.00 368.26 -256.00 229.74 -325.26 299.00 -186.74 299.00 --1.00 -1.00 -5 0 -0 - 4 -256.00 621.00 -250.00 690.00 -256.00 551.74 -256.00 690.26 -325.26 621.00 -186.74 621.00 --1.00 -1.00 -5 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/ecn_vc.nr b/share/doc/iso/wisc/figs/ecn_vc.nr deleted file mode 100644 index ca2cec516619..000000000000 --- a/share/doc/iso/wisc/figs/ecn_vc.nr +++ /dev/null @@ -1,205 +0,0 @@ -.(z -.hl -.br -.nr g1 2364u -.nr g2 2303u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D't 1u' -.sp -1 -.sp 346u -\h'836u'\D'c 693u' -.sp -1 -.sp 1610u -\h'836u'\D'c 693u' -.sp -1 -.sp -800u -\D'c 693u' -.sp -1 -\h'1671u'\D'c 693u' -.sp -1 -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "VC_RESET -.sp -875u -\h'1042u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "IN_PROGRESS -.sp -795u -\h'1012u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "IN_PROGRESS -.sp 830u -\h'992u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "VC_NO_CONNECTION -.sp 5u -\h'27u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "VC_DATA_XFER -.sp 20u -\h'1763u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 8 -.nr g8 \n(.d -.ds g9 "VC_CLEAR -.sp 750u -\h'1032u'\&\*(g9 -.sp |\n(g8u -\D's 16u' -.sp -1 -.sp -165u -\h'642u'\D'l 1076u 0u' -.sp -1 -.sp 320u -\h'652u'\D'l 1041u 0u' -.sp -1 -.sp -675u -\h'1367u'\D'l 376u 300u' -.sp -1 -.sp -190u -\h'1502u'\D'l 441u 360u' -.sp -1 -.sp 955u -\h'577u'\D'l 335u 335u' -.sp -1 -.sp 345u -\h'1462u'\D'l 316u -330u' -.sp -1 -\D's -1u' -.sp -1 -.sp -720u -\h'1653u'\D'l 55u -35u'\D'l -55u -40u' -.sp -1 -.sp 325u -\h'717u'\D'l -55u -35u'\D'l 55u -40u' -.sp -1 -.sp -810u -\h'1542u'\D'l -25u -90u'\D'l 81u 40u' -.sp -1 -.sp 955u -\h'617u'\D'l -25u -90u'\D'l 80u 40u' -.sp -1 -.sp -645u -\h'1708u'\D'l 30u 85u'\D'l -80u -25u' -.sp -1 -.sp 805u -\h'1497u'\D'l -40u 95u'\D'l 91u -45u' -.sp -1 -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "RESET issued -.sp -1270u -\h'1738u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "- or - -.sp -1215u -\h'1873u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "0x18 from SEND/RECEIVE -.sp -1150u -\h'1628u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "completion -.sp -1080u -\h'1798u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "RECEIVE/RESET -.sp -870u -\h'1102u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "completion -.sp -820u -\h'1222u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "CALL/LISTEN completion -.sp -680u -\h'932u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "0x0a from -.sp -430u -\h'952u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "CLEAR/ABORT -.sp -70u -\h'1698u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "issued -.sp -5u -\h'1733u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "CLEAR/ABORT -.sp -45u -\h'397u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "completion -.sp 5u -\h'452u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 8 -.nr g8 \n(.d -.ds g9 "SEND/RECEIVE completion -.sp -360u -\h'822u'\&\*(g9 -.sp |\n(g8u -.sp 647u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fBFigure \n+(FG:\fR Virtual Circuit State Diagram -.)z diff --git a/share/doc/iso/wisc/figs/func_units.grn b/share/doc/iso/wisc/figs/func_units.grn deleted file mode 100644 index 3c985672b5aa..000000000000 --- a/share/doc/iso/wisc/figs/func_units.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z L -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.3 -narrow 1 -medium 3 -thick 7 -pointscale off -file func_units.gsrc -.GE -.ce -\fBFigure \n+(FG:\fR The major functional units of Unix 4.2A -.)z diff --git a/share/doc/iso/wisc/figs/func_units.gsrc b/share/doc/iso/wisc/figs/func_units.gsrc deleted file mode 100644 index 29edd8364c55..000000000000 --- a/share/doc/iso/wisc/figs/func_units.gsrc +++ /dev/null @@ -1,603 +0,0 @@ -gremlinfile -0 80.00 208.00 -0 -80.00 580.00 -80.00 596.00 -80.00 596.00 -80.00 596.00 --1.00 -1.00 -2 3 -6 kernel - 0 -80.00 628.00 -80.00 644.00 -80.00 644.00 -80.00 644.00 --1.00 -1.00 -2 3 -4 user - 3 -144.00 212.00 -141.00 217.00 -144.00 215.00 -147.00 217.00 -144.00 212.00 --1.00 -1.00 -6 0 -0 - 3 -184.00 340.00 -189.66 338.59 -186.12 337.88 -185.41 334.34 -184.00 340.00 --1.00 -1.00 -6 0 -0 - 3 -264.00 284.00 -258.34 285.41 -261.88 286.12 -262.59 289.66 -264.00 284.00 --1.00 -1.00 -6 0 -0 - 3 -320.00 324.00 -317.00 329.00 -320.00 327.00 -323.00 329.00 -320.00 324.00 --1.00 -1.00 -6 0 -0 - 3 -312.00 356.00 -315.00 351.00 -312.00 353.00 -309.00 351.00 -312.00 356.00 --1.00 -1.00 -6 0 -0 - 3 -536.00 548.00 -540.43 544.21 -536.95 545.15 -534.74 542.31 -536.00 548.00 --1.00 -1.00 -6 0 -0 - 3 -576.00 388.00 -573.00 393.00 -576.00 391.00 -579.00 393.00 -576.00 388.00 --1.00 -1.00 -6 0 -0 - 3 -544.00 380.00 -538.34 381.41 -541.88 382.12 -542.59 385.66 -544.00 380.00 --1.00 -1.00 -6 0 -0 - 3 -544.00 380.00 -541.00 385.00 -544.00 383.00 -547.00 385.00 -544.00 380.00 --1.00 -1.00 -6 0 -0 - 3 -560.00 292.00 -563.00 287.00 -560.00 289.00 -557.00 287.00 -560.00 292.00 --1.00 -1.00 -6 0 -0 - 3 -488.00 156.00 -487.55 161.81 -489.34 158.68 -492.92 159.13 -488.00 156.00 --1.00 -1.00 -6 0 -0 - 3 -456.00 164.00 -453.00 169.00 -456.00 167.00 -459.00 169.00 -456.00 164.00 --1.00 -1.00 -6 0 -0 - 3 -384.00 308.00 -385.41 313.66 -386.12 310.12 -389.66 309.41 -384.00 308.00 --1.00 -1.00 -6 0 -0 - 3 -360.00 420.00 -365.00 423.00 -363.00 420.00 -365.00 417.00 -360.00 420.00 --1.00 -1.00 -6 0 -0 - 3 -344.00 444.00 -345.41 449.66 -346.12 446.12 -349.66 445.41 -344.00 444.00 --1.00 -1.00 -6 0 -0 - 3 -456.00 556.00 -456.45 550.19 -454.66 553.32 -451.08 552.87 -456.00 556.00 --1.00 -1.00 -6 0 -0 - 3 -272.00 436.00 -266.34 437.41 -269.88 438.12 -270.59 441.66 -272.00 436.00 --1.00 -1.00 -6 0 -0 - 3 -184.00 404.00 -185.41 409.66 -186.12 406.12 -189.66 405.41 -184.00 404.00 --1.00 -1.00 -6 0 -0 - 3 -432.00 652.00 -427.00 649.00 -429.00 652.00 -427.00 655.00 -432.00 652.00 --1.00 -1.00 -6 0 -0 - 3 -352.00 676.00 -357.81 676.45 -354.68 674.66 -355.13 671.08 -352.00 676.00 --1.00 -1.00 -6 0 -0 - 3 -200.00 500.00 -205.66 498.59 -202.12 497.88 -201.41 494.34 -200.00 500.00 --1.00 -1.00 -6 0 -0 - 3 -208.00 548.00 -213.00 551.00 -211.00 548.00 -213.00 545.00 -208.00 548.00 --1.00 -1.00 -6 0 -0 - 3 -192.00 572.00 -193.41 577.66 -194.12 574.12 -197.66 573.41 -192.00 572.00 --1.00 -1.00 -6 0 -0 - 3 -272.00 660.00 -272.45 654.19 -270.66 657.32 -267.08 656.87 -272.00 660.00 --1.00 -1.00 -6 0 -0 - 3 -456.00 556.00 -344.00 444.00 --1.00 -1.00 -6 0 -0 - 3 -544.00 380.00 -520.00 412.00 --1.00 -1.00 -6 0 -0 - 3 -576.00 388.00 -536.00 548.00 --1.00 -1.00 -6 0 -0 - 3 -560.00 292.00 -488.00 156.00 --1.00 -1.00 -6 0 -0 - 3 -424.00 612.00 -568.00 612.00 --1.00 -1.00 -2 0 -0 - 0 -424.00 68.00 -424.00 84.00 -424.00 84.00 -424.00 84.00 --1.00 -1.00 -3 3 -7 drivers - 0 -424.00 92.00 -424.00 108.00 -424.00 108.00 -424.00 108.00 --1.00 -1.00 -3 3 -9 interface - 3 -480.00 404.00 -456.00 164.00 --1.00 -1.00 -6 0 -0 - 3 -464.00 412.00 -384.00 308.00 --1.00 -1.00 -6 0 -0 - 3 -448.00 436.00 -360.00 420.00 --1.00 -1.00 -6 0 -0 - 3 -312.00 356.00 -320.00 324.00 --1.00 -1.00 -6 0 -0 - 3 -200.00 500.00 -272.00 436.00 --1.00 -1.00 -6 0 -0 - 3 -184.00 340.00 -264.00 284.00 --1.00 -1.00 -6 0 -0 - 3 -144.00 324.00 -144.00 212.00 --1.00 -1.00 -6 0 -0 - 3 -440.00 564.00 -176.00 404.00 --1.00 -1.00 -6 0 -0 - 3 -424.00 588.00 -208.00 548.00 --1.00 -1.00 -6 0 -0 - 3 -352.00 676.00 -432.00 652.00 --1.00 -1.00 -6 0 -0 - 3 -272.00 660.00 -192.00 572.00 --1.00 -1.00 -6 0 -0 - 0 -120.00 132.00 -120.00 148.00 -120.00 148.00 -120.00 148.00 --1.00 -1.00 -3 3 -7 drivers - 0 -120.00 156.00 -120.00 172.00 -120.00 172.00 -120.00 172.00 --1.00 -1.00 -3 3 -6 device - 0 -120.00 180.00 -120.00 196.00 -120.00 196.00 -120.00 196.00 --1.00 -1.00 -3 3 -7 blocked - 0 -424.00 116.00 -424.00 132.00 -424.00 132.00 -424.00 132.00 --1.00 -1.00 -3 3 -8 network - 0 -560.00 332.00 -560.00 348.00 -560.00 348.00 -560.00 348.00 --1.00 -1.00 -3 3 -3 IPC - 0 -304.00 212.00 -304.00 228.00 -304.00 228.00 -304.00 228.00 --1.00 -1.00 -3 3 -7 support - 0 -304.00 236.00 -304.00 252.00 -304.00 252.00 -304.00 252.00 --1.00 -1.00 -3 3 -6 memory - 0 -304.00 260.00 -304.00 276.00 -304.00 276.00 -304.00 276.00 --1.00 -1.00 -3 3 -7 virtual - 0 -128.00 356.00 -128.00 372.00 -128.00 372.00 -128.00 372.00 --1.00 -1.00 -3 3 -6 system - 0 -128.00 380.00 -128.00 396.00 -128.00 396.00 -128.00 396.00 --1.00 -1.00 -3 3 -4 file - 0 -480.00 452.00 -480.00 468.00 -480.00 468.00 -480.00 468.00 --1.00 -1.00 -3 3 -5 clock - 0 -288.00 380.00 -288.00 396.00 -288.00 396.00 -288.00 396.00 --1.00 -1.00 -3 3 -7 support - 0 -288.00 404.00 -288.00 420.00 -288.00 420.00 -288.00 420.00 --1.00 -1.00 -3 3 -7 process - 0 -448.00 572.00 -448.00 588.00 -448.00 588.00 -448.00 588.00 --1.00 -1.00 -3 3 -12 system calls - 0 -456.00 628.00 -456.00 644.00 -456.00 644.00 -456.00 644.00 --1.00 -1.00 -3 3 -9 C library - 0 -288.00 692.00 -288.00 708.00 -288.00 708.00 -288.00 708.00 --1.00 -1.00 -3 3 -4 user - 0 -272.00 676.00 -272.00 692.00 -272.00 692.00 -272.00 692.00 --1.00 -1.00 -3 3 -7 program - 0 -144.00 516.00 -144.00 532.00 -144.00 532.00 -144.00 532.00 --1.00 -1.00 -3 3 -3 tty - 3 -568.00 612.00 -640.00 612.00 --1.00 -1.00 -6 0 -0 - 3 -424.00 612.00 -64.00 612.00 --1.00 -1.00 -6 0 -0 - 4 -496.00 612.00 -496.00 684.00 -496.00 540.00 -496.00 684.00 -568.00 612.00 -424.00 612.00 --1.00 -1.00 -6 0 -0 - 4 -456.00 100.00 -456.00 164.00 -456.00 36.00 -456.00 164.00 -520.00 100.00 -392.00 100.00 --1.00 -1.00 -6 0 -0 - 4 -336.00 244.00 -336.00 324.00 -336.00 164.00 -336.00 324.00 -416.00 244.00 -256.00 244.00 --1.00 -1.00 -6 0 -0 - 4 -144.00 164.00 -144.00 212.00 -144.00 116.00 -144.00 212.00 -192.00 164.00 -96.00 164.00 --1.00 -1.00 -6 0 -0 - 4 -144.00 372.00 -144.00 420.00 -144.00 324.00 -144.00 420.00 -192.00 372.00 -96.00 372.00 --1.00 -1.00 -6 0 -0 - 4 -576.00 340.00 -576.00 388.00 -576.00 292.00 -576.00 388.00 -624.00 340.00 -528.00 340.00 --1.00 -1.00 -6 0 -0 - 4 -496.00 452.00 -496.00 500.00 -496.00 404.00 -496.00 500.00 -544.00 452.00 -448.00 452.00 --1.00 -1.00 -6 0 -0 - 4 -312.00 404.00 -312.00 452.00 -312.00 356.00 -312.00 452.00 -360.00 404.00 -264.00 404.00 --1.00 -1.00 -6 0 -0 - 4 -160.00 532.00 -160.00 580.00 -160.00 484.00 -160.00 580.00 -208.00 532.00 -112.00 532.00 --1.00 -1.00 -6 0 -0 - 4 -304.00 692.00 -304.00 740.00 -304.00 644.00 -304.00 740.00 -352.00 692.00 -256.00 692.00 --1.00 -1.00 -6 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/func_units.nr b/share/doc/iso/wisc/figs/func_units.nr deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/share/doc/iso/wisc/figs/link_to_CONS_primitives.NR.DONT_REMOVE b/share/doc/iso/wisc/figs/link_to_CONS_primitives.NR.DONT_REMOVE deleted file mode 100644 index 16dc3e0cf4c5..000000000000 --- a/share/doc/iso/wisc/figs/link_to_CONS_primitives.NR.DONT_REMOVE +++ /dev/null @@ -1,77 +0,0 @@ -.(b -.TS -tab(+) center expand box; -c c -a | a . -service primitive & arguments+provided by -= -N_CONNECT.request+cons_openvc(... faddr, ...) -called address+argument faddr -calling address+not implemented -receipt confirmation+not implemented -expedited data+not implemented -quality of service+not implemented -NS-user data+not implemented -_ -N_CONNECT.indication+not implemented -_ -N_CONNECT.response+cons_netcmd( CONN_REFUSE ) -+ or cons_netcmd( CONN_CONFIRM ) -+ however, net connection has already -+ been accepted. If REFUSE, it will -+ be cleared with E_CO_HLI_REJT -+ (higher layer rejects connection) -responding address+not implemented -receipt confirmation+not implemented -expedited data+not implemented -quality of service+not implemented -NS-user data+not implemented -_ -N_CONNECT.confirm+not implemented -= -N_DATA.request+cons_output(... m, ...) -+and cosns_output(... m, ...) -confirmation+not implemented -data+mbuf chain m -_ -N_DATA.indication+pr_input( m, ... ) -+or software interrupt -confirmation+not implemented -data+mbuf chain -_ -N_DATA_ACKNOWLEDGE.request+not implemented -_ -N_DATA_ACKNOWLEDGE.indication+not implemented -_ -N_EXPEDITED_DATA.request+not implemented -_ -N_EXPEDITED_DATA.indication+not implemented -= -N_RESET.request+not implemented -N_RESET.indication+socket->so_error = reason -+or pr_ctlinput( PRC_ROUTEDEAD ) -originator+not implemented -reason+from X.25 packet or ecn driver -N_RESET.response+not implemented -N_RESET.confirm+not implemented -= -N_DISCONNECT.request+cons_netcmd( CONN_CLOSE ) -reason+uses E_CO_HLI_DISCN (normal -+disconnect from higher layer) -responding address+not implemented -NS_user data+not implemented -_ -N_DISCONNECT.indication+socket->so_error = reason -+or pr_ctlinput( PRC_ROUTEDEAD ) -originator+not implemented -reason+from X.25 packet or ecn driver -responding address+not implemented -NS_user data+not implemented -.TE -.(c -\fBFigure \n+(FG\fR: Transport Service Primitives -.)c -.)b -.(f -\** data on disconnect is not supported at this time. -.)f diff --git a/share/doc/iso/wisc/figs/link_to_TS_primitives.NR.DONT_REMOVE b/share/doc/iso/wisc/figs/link_to_TS_primitives.NR.DONT_REMOVE deleted file mode 100644 index 3d27df3f307d..000000000000 --- a/share/doc/iso/wisc/figs/link_to_TS_primitives.NR.DONT_REMOVE +++ /dev/null @@ -1,60 +0,0 @@ -.(b -.TS -center expand box; -c c -a | a . -service primitive & arguments Unix system calls & arguments -= -T_CONNECT.request \fIsocket(), connect(), setsockopt()\fR -called address \fIconnect()\fR argument -calling address \fIconnect()\fR argument -quality of service not implemented -buffer management \fIsetsockopt()\fR argument -security not implemented -data \fIsetsockopt(), getsockopt()\fR -_ -T_CONNECT.indication return from \fIaccept(); getsockopt()\fR -called address \fIaccept()\fR argument -calling address \fIaccept()\fR argument -quality of service not implemented -security not implemented -data \fIsetsockopt(), getsockopt()\fR -_ -T_CONNECT.response no applicable system calls -_ -T_CONNECT.confirm return from \fIconnect()\fR -quality of service \fIgetsockopt()\fR argument -data \fIsetsocktopt, getsockopt()\fR -= -T_DATA.request \fIrecvv(), sendv()\fR -_ -T_DATA.indication return from \fIrecvv()\fR, \fIsendv()\fR, or \fIselect()\fR; - or signal SIGIO - ioctl(FIONREAD) tells how much has been - queued to read -= -T_EXPEDITED_DATA.request \fIsendv()\fR with MSG_OOB flag -_ -T_EXPEDITED_DATA.indication SIGURG, \fIgetsockopt()\fR with TPFLAG_XPD, - return from \fIselect()\fR with exceptional - conditions mask -= -T_DISCONNECT.request \fIclose()\fR -data \fIsetsockopt()\fR -_ -T_DISCONNECT.indication SIGURG, - error return on other primitives -reason errno -data \fIgetsockopt()\**\fR -= -T_STATUS.request \fIgetsockopt()\fR, \fItpstat\fR utility program -_ -T_STATUS.indication \fIgetsockopt()\fR, \fIselect()\fR, \fItpstat\fR -.TE -.(c -\fBFigure \n+(FG\fR: Transport Service Primitives -.)c -.)b -.(f -\** data on disconnect is not supported at this time. -.)f diff --git a/share/doc/iso/wisc/figs/mbufrcv.grn b/share/doc/iso/wisc/figs/mbufrcv.grn deleted file mode 100644 index 0f3fa52f9ef4..000000000000 --- a/share/doc/iso/wisc/figs/mbufrcv.grn +++ /dev/null @@ -1,13 +0,0 @@ -.(z -.GS C -width 5.0 -high 6.0 -narrow 1 -medium 3 -thick 7 -pointscale on -file mbufrcv.gsrc -.GE -.ce -\fB Figure \n+(FG\fR: \fImbuf\fR chains on socket receive buffer -.)z diff --git a/share/doc/iso/wisc/figs/mbufrcv.gsrc b/share/doc/iso/wisc/figs/mbufrcv.gsrc deleted file mode 100644 index 1577804afa82..000000000000 --- a/share/doc/iso/wisc/figs/mbufrcv.gsrc +++ /dev/null @@ -1,1006 +0,0 @@ -gremlinfile -0 328.00 496.00 -0 -328.00 224.00 -328.00 234.00 -328.00 234.00 -328.00 234.00 --1.00 -1.00 -1 1 -7 MT_DATA - 0 -328.00 400.00 -328.00 410.00 -328.00 410.00 -328.00 410.00 --1.00 -1.00 -1 1 -7 MT_DATA - 0 -328.00 576.00 -328.00 586.00 -328.00 586.00 -328.00 586.00 --1.00 -1.00 -1 1 -7 MT_DATA - 0 -72.00 576.00 -72.00 586.00 -72.00 586.00 -72.00 586.00 --1.00 -1.00 -1 1 -7 MT_DATA - 3 -384.00 256.00 -416.00 256.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 272.00 -416.00 240.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 272.00 -432.00 240.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 240.00 -432.00 272.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 416.00 -432.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 448.00 -432.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 448.00 -416.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 432.00 -416.00 432.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 432.00 -160.00 432.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 448.00 -160.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -176.00 448.00 -176.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 416.00 -176.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 512.00 -288.00 512.00 --1.00 -1.00 -5 0 -0 - 3 -512.00 528.00 -512.00 496.00 -528.00 528.00 -528.00 496.00 --1.00 -1.00 -5 0 -0 - 3 -496.00 512.00 -512.00 512.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 320.00 -176.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -176.00 352.00 -176.00 320.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 352.00 -160.00 320.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 336.00 -160.00 336.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 144.00 -432.00 176.00 --1.00 -1.00 -5 0 -0 - 3 -512.00 592.00 -528.00 624.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 496.00 -304.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 176.00 -432.00 144.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 176.00 -416.00 144.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 160.00 -416.00 160.00 --1.00 -1.00 -5 0 -0 - 3 -304.00 528.00 -304.00 496.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 528.00 -288.00 496.00 --1.00 -1.00 -5 0 -0 - 3 -528.00 624.00 -528.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -512.00 624.00 -512.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -496.00 608.00 -512.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 272.00 -349.00 277.00 -352.00 275.00 -355.00 277.00 -352.00 272.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 288.00 -352.00 272.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 288.00 -352.00 288.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 336.00 -416.00 288.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 336.00 -416.00 336.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 448.00 -349.00 453.00 -352.00 451.00 -355.00 453.00 -352.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 464.00 -352.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 464.00 -352.00 464.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 512.00 -416.00 464.00 --1.00 -1.00 -5 0 -0 - 3 -96.00 448.00 -93.00 453.00 -96.00 451.00 -99.00 453.00 -96.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -96.00 464.00 -96.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 464.00 -96.00 464.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 512.00 -160.00 464.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 512.00 -416.00 512.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 512.00 -160.00 512.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 608.00 -427.00 605.00 -429.00 608.00 -427.00 611.00 -432.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 608.00 -432.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 608.00 -315.00 605.00 -317.00 608.00 -315.00 611.00 -320.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -192.00 608.00 -187.00 605.00 -189.00 608.00 -187.00 611.00 -192.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 608.00 -320.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -128.00 608.00 -192.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 624.00 -432.00 496.00 -496.00 496.00 -496.00 624.00 -432.00 624.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 592.00 -496.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -432.00 528.00 -432.00 528.00 -496.00 528.00 -496.00 528.00 -432.00 528.00 --1.00 -1.00 -5 0 -0 - 0 -448.00 512.00 -448.00 522.00 -448.00 522.00 -448.00 522.00 --1.00 -1.00 -1 1 -6 m_next - 0 -448.00 608.00 -448.00 618.00 -448.00 618.00 -448.00 618.00 --1.00 -1.00 -1 1 -5 m_act - 3 -432.00 576.00 -432.00 576.00 -496.00 576.00 -496.00 576.00 -432.00 576.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 224.00 -320.00 224.00 -384.00 224.00 -384.00 224.00 -320.00 224.00 --1.00 -1.00 -5 0 -0 - 0 -336.00 256.00 -336.00 266.00 -336.00 266.00 -336.00 266.00 --1.00 -1.00 -1 1 -5 m_act - 0 -336.00 160.00 -336.00 170.00 -336.00 170.00 -336.00 170.00 --1.00 -1.00 -1 1 -6 m_next - 3 -320.00 176.00 -320.00 176.00 -384.00 176.00 -384.00 176.00 -320.00 176.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 240.00 -384.00 240.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 272.00 -320.00 144.00 -384.00 144.00 -384.00 272.00 -320.00 272.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 448.00 -320.00 320.00 -384.00 320.00 -384.00 448.00 -320.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 416.00 -384.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 352.00 -320.00 352.00 -384.00 352.00 -384.00 352.00 -320.00 352.00 --1.00 -1.00 -5 0 -0 - 0 -336.00 336.00 -336.00 346.00 -336.00 346.00 -336.00 346.00 --1.00 -1.00 -1 1 -6 m_next - 0 -336.00 432.00 -336.00 442.00 -336.00 442.00 -336.00 442.00 --1.00 -1.00 -1 1 -5 m_act - 3 -320.00 400.00 -320.00 400.00 -384.00 400.00 -384.00 400.00 -320.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 576.00 -320.00 576.00 -384.00 576.00 -384.00 576.00 -320.00 576.00 --1.00 -1.00 -5 0 -0 - 0 -336.00 608.00 -336.00 618.00 -336.00 618.00 -336.00 618.00 --1.00 -1.00 -1 1 -5 m_act - 0 -336.00 512.00 -336.00 522.00 -336.00 522.00 -336.00 522.00 --1.00 -1.00 -1 1 -6 m_next - 3 -320.00 528.00 -320.00 528.00 -384.00 528.00 -384.00 528.00 -320.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 592.00 -384.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 624.00 -320.00 496.00 -384.00 496.00 -384.00 624.00 -320.00 624.00 --1.00 -1.00 -5 0 -0 - 3 -192.00 624.00 -192.00 496.00 -256.00 496.00 -256.00 624.00 -192.00 624.00 --1.00 -1.00 -5 0 -0 - 3 -192.00 592.00 -256.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -192.00 528.00 -192.00 528.00 -256.00 528.00 -256.00 528.00 -192.00 528.00 --1.00 -1.00 -5 0 -0 - 0 -208.00 512.00 -208.00 522.00 -208.00 522.00 -208.00 522.00 --1.00 -1.00 -1 1 -6 m_next - 0 -208.00 608.00 -208.00 618.00 -208.00 618.00 -208.00 618.00 --1.00 -1.00 -1 1 -5 m_act - 3 -192.00 576.00 -192.00 576.00 -256.00 576.00 -256.00 576.00 -192.00 576.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 400.00 -64.00 400.00 -128.00 400.00 -128.00 400.00 -64.00 400.00 --1.00 -1.00 -5 0 -0 - 0 -80.00 432.00 -80.00 442.00 -80.00 442.00 -80.00 442.00 --1.00 -1.00 -1 1 -5 m_act - 0 -80.00 336.00 -80.00 346.00 -80.00 346.00 -80.00 346.00 --1.00 -1.00 -1 1 -6 m_next - 3 -64.00 352.00 -64.00 352.00 -128.00 352.00 -128.00 352.00 -64.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 416.00 -128.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 448.00 -64.00 320.00 -128.00 320.00 -128.00 448.00 -64.00 448.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 576.00 -64.00 576.00 -128.00 576.00 -128.00 576.00 -64.00 576.00 --1.00 -1.00 -5 0 -0 - 0 -80.00 608.00 -80.00 618.00 -80.00 618.00 -80.00 618.00 --1.00 -1.00 -1 1 -5 m_act - 0 -80.00 512.00 -80.00 522.00 -80.00 522.00 -80.00 522.00 --1.00 -1.00 -1 1 -6 m_next - 3 -64.00 528.00 -64.00 528.00 -128.00 528.00 -128.00 528.00 -64.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 592.00 -128.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 624.00 -64.00 496.00 -128.00 496.00 -128.00 624.00 -64.00 624.00 --1.00 -1.00 -5 0 -0 - 0 -74.00 401.00 -74.00 411.00 -74.00 411.00 -74.00 411.00 --1.00 -1.00 -1 1 -6 MT_EOT - 0 -207.00 577.00 -207.00 587.00 -207.00 587.00 -207.00 587.00 --1.00 -1.00 -1 1 -6 MT_EOT - 0 -446.00 575.00 -446.00 585.00 -446.00 585.00 -446.00 585.00 --1.00 -1.00 -1 1 -6 MT_EOT - 3 -80.00 576.00 -80.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -72.00 576.00 -72.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -88.00 576.00 -88.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -96.00 576.00 -96.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -104.00 576.00 -104.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -112.00 576.00 -112.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -120.00 576.00 -120.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -80.00 400.00 -80.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -72.00 400.00 -72.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -88.00 400.00 -88.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -96.00 400.00 -96.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -104.00 400.00 -104.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -112.00 400.00 -112.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -120.00 400.00 -120.00 376.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 552.00 -336.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 552.00 -328.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -344.00 552.00 -344.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -352.00 552.00 -352.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -360.00 552.00 -360.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -368.00 552.00 -368.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -376.00 552.00 -376.00 528.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 400.00 -336.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 400.00 -328.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -344.00 400.00 -344.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -352.00 400.00 -352.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -360.00 400.00 -360.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -368.00 400.00 -368.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -376.00 400.00 -376.00 352.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 208.00 -328.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 208.00 -336.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -352.00 208.00 -352.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -344.00 208.00 -344.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -360.00 208.00 -360.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -368.00 208.00 -368.00 192.00 --1.00 -1.00 -1 0 -0 - 3 -376.00 208.00 -376.00 192.00 --1.00 -1.00 -1 0 -0 - 0 -64.00 640.00 -64.00 650.00 -64.00 650.00 -64.00 650.00 --1.00 -1.00 -1 1 -10 first TSDU - 0 -192.00 640.00 -192.00 650.00 -192.00 650.00 -192.00 650.00 --1.00 -1.00 -1 1 -11 second TSDU - 0 -320.00 640.00 -320.00 650.00 -320.00 650.00 -320.00 650.00 --1.00 -1.00 -1 1 -9 last TSDU - 0 -64.00 688.00 -64.00 698.00 -64.00 698.00 -64.00 698.00 --1.00 -1.00 -1 1 -16 so->so_rcv.sb_mb - 3 -48.00 704.00 -48.00 672.00 -160.00 672.00 -160.00 704.00 -48.00 704.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 688.00 -32.00 688.00 --1.00 -1.00 -5 0 -0 - 3 -32.00 688.00 -32.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -32.00 608.00 -64.00 608.00 --1.00 -1.00 -5 0 -0 - 3 -64.00 608.00 -59.00 605.00 -61.00 608.00 -59.00 611.00 -64.00 608.00 --1.00 -1.00 -5 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/mbufrcv.nr b/share/doc/iso/wisc/figs/mbufrcv.nr deleted file mode 100644 index af35c7080e73..000000000000 --- a/share/doc/iso/wisc/figs/mbufrcv.nr +++ /dev/null @@ -1,504 +0,0 @@ -.(z -.br -.nr g1 2880u -.nr g2 3250u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D't 1u' -.sp -1 -.sp 557u -\h'186u'\D'l -29u 18u'\D'l 12u -18u'\D'l -12u -17u'\D'l 29u 17u' -.sp -1 -\D'l 186u 0u' -.sp -1 -.sp -464u -\D'l 0u 464u' -.sp -1 -\h'93u'\D'l -93u 0u' -.sp -1 -.sp -93u -\h'93u'\D'l 0u 186u'\D'l 651u 0u'\D'l 0u -186u'\D'l -651u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "so->so_rcv.sb_mb -.sp 93u -\h'186u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "last TSDU -.sp 371u -\h'1673u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "second TSDU -.sp 371u -\h'929u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "first TSDU -.sp 371u -\h'186u'\&\*(g9 -.sp |\n(g8u -\D's 4u' -.sp -1 -.sp 2879u -\h'1998u'\D'l 0u 93u' -.sp -1 -\h'1951u'\D'l 0u 93u' -.sp -1 -\h'1905u'\D'l 0u 93u' -.sp -1 -\h'1812u'\D'l 0u 93u' -.sp -1 -\h'1858u'\D'l 0u 93u' -.sp -1 -\h'1765u'\D'l 0u 93u' -.sp -1 -\h'1719u'\D'l 0u 93u' -.sp -1 -.sp -1115u -\h'1998u'\D'l 0u 279u' -.sp -1 -\h'1951u'\D'l 0u 279u' -.sp -1 -\h'1905u'\D'l 0u 279u' -.sp -1 -\h'1858u'\D'l 0u 279u' -.sp -1 -\h'1812u'\D'l 0u 279u' -.sp -1 -\h'1719u'\D'l 0u 279u' -.sp -1 -\h'1765u'\D'l 0u 279u' -.sp -1 -.sp -882u -\h'1998u'\D'l 0u 140u' -.sp -1 -\h'1951u'\D'l 0u 140u' -.sp -1 -\h'1905u'\D'l 0u 140u' -.sp -1 -\h'1858u'\D'l 0u 140u' -.sp -1 -\h'1812u'\D'l 0u 140u' -.sp -1 -\h'1719u'\D'l 0u 140u' -.sp -1 -\h'1765u'\D'l 0u 140u' -.sp -1 -.sp 882u -\h'511u'\D'l 0u 139u' -.sp -1 -\h'465u'\D'l 0u 139u' -.sp -1 -\h'418u'\D'l 0u 139u' -.sp -1 -\h'372u'\D'l 0u 139u' -.sp -1 -\h'325u'\D'l 0u 139u' -.sp -1 -\h'233u'\D'l 0u 139u' -.sp -1 -\h'279u'\D'l 0u 139u' -.sp -1 -.sp -1021u -\h'511u'\D'l 0u 279u' -.sp -1 -\h'465u'\D'l 0u 279u' -.sp -1 -\h'418u'\D'l 0u 279u' -.sp -1 -\h'372u'\D'l 0u 279u' -.sp -1 -\h'325u'\D'l 0u 279u' -.sp -1 -\h'233u'\D'l 0u 279u' -.sp -1 -\h'279u'\D'l 0u 279u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_EOT -.sp 6u -\h'2404u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_EOT -.sp -6u -\h'1016u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_EOT -.sp 1015u -\h'244u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp -279u -\h'186u'\D'l 0u 743u'\D'l 372u 0u'\D'l 0u -743u'\D'l -372u 0u' -.sp -1 -.sp 186u -\h'186u'\D'l 372u 0u' -.sp -1 -.sp 372u -\h'186u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 93u -\h'279u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -465u -\h'279u'\&\*(g9 -.sp |\n(g8u -.sp -279u -\h'186u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.sp 742u -\h'186u'\D'l 0u 744u'\D'l 372u 0u'\D'l 0u -744u'\D'l -372u 0u' -.sp -1 -.sp 186u -\h'186u'\D'l 372u 0u' -.sp -1 -.sp 372u -\h'186u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 93u -\h'279u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -465u -\h'279u'\&\*(g9 -.sp |\n(g8u -.sp -279u -\h'186u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.sp -1021u -\h'929u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -186u -\h'1022u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 372u -\h'1022u'\&\*(g9 -.sp |\n(g8u -.sp 279u -\h'929u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.sp -372u -\h'929u'\D'l 372u 0u' -.sp -1 -.sp -186u -\h'929u'\D'l 0u 743u'\D'l 372u 0u'\D'l 0u -743u'\D'l -372u 0u' -.sp -1 -\h'1673u'\D'l 0u 743u'\D'l 371u 0u'\D'l 0u -743u'\D'l -371u 0u' -.sp -1 -.sp 186u -\h'1673u'\D'l 371u 0u' -.sp -1 -.sp 372u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 93u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -465u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.sp -279u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.sp 1021u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -186u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 372u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.sp 279u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.sp -372u -\h'1673u'\D'l 371u 0u' -.sp -1 -.sp -186u -\h'1673u'\D'l 0u 744u'\D'l 371u 0u'\D'l 0u -744u'\D'l -371u 0u' -.sp -1 -.sp 1022u -\h'1673u'\D'l 0u 743u'\D'l 371u 0u'\D'l 0u -743u'\D'l -371u 0u' -.sp -1 -.sp 186u -\h'1673u'\D'l 371u 0u' -.sp -1 -.sp 372u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 93u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -465u -\h'1765u'\&\*(g9 -.sp |\n(g8u -.sp -279u -\h'1673u'\D'l 0u 0u'\D'l 371u 0u'\D'l 0u 0u'\D'l -371u 0u' -.sp -1 -.sp -2043u -\h'2323u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_act -.sp -186u -\h'2416u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "m_next -.sp 372u -\h'2416u'\&\*(g9 -.sp |\n(g8u -.sp 279u -\h'2323u'\D'l 0u 0u'\D'l 372u 0u'\D'l 0u 0u'\D'l -372u 0u' -.sp -1 -.sp -372u -\h'2323u'\D'l 372u 0u' -.sp -1 -.sp -186u -\h'2323u'\D'l 0u 743u'\D'l 372u 0u'\D'l 0u -743u'\D'l -372u 0u' -.sp -1 -.sp 93u -\h'558u'\D'l 371u 0u' -.sp -1 -\h'1301u'\D'l 372u 0u' -.sp -1 -\h'929u'\D'l -29u 18u'\D'l 12u -18u'\D'l -12u -17u'\D'l 29u 17u' -.sp -1 -\h'1673u'\D'l -29u 18u'\D'l 11u -18u'\D'l -11u -17u'\D'l 29u 17u' -.sp -1 -\h'2044u'\D'l 279u 0u' -.sp -1 -\h'2323u'\D'l -29u 18u'\D'l 11u -18u'\D'l -11u -17u'\D'l 29u 17u' -.sp -1 -.sp 558u -\h'558u'\D'l 186u 0u' -.sp -1 -\h'2044u'\D'l 186u 0u' -.sp -1 -\h'744u'\D'l 0u 277u' -.sp -1 -.sp 277u -\h'744u'\D'l -372u 0u' -.sp -1 -\h'372u'\D'l 0u 93u' -.sp -1 -.sp 93u -\h'372u'\D'l -17u -29u'\D'l 17u 12u'\D'l 17u -12u'\D'l -17u 29u' -.sp -1 -.sp -370u -\h'2230u'\D'l 0u 277u' -.sp -1 -.sp 277u -\h'2230u'\D'l -372u 0u' -.sp -1 -\h'1858u'\D'l 0u 93u' -.sp -1 -.sp 93u -\h'1858u'\D'l -17u -29u'\D'l 17u 12u'\D'l 18u -12u'\D'l -18u 29u' -.sp -1 -.sp 651u -\h'2044u'\D'l 186u 0u' -.sp -1 -\h'2230u'\D'l 0u 278u' -.sp -1 -.sp 278u -\h'2230u'\D'l -372u 0u' -.sp -1 -\h'1858u'\D'l 0u 93u' -.sp -1 -.sp 93u -\h'1858u'\D'l -17u -29u'\D'l 17u 12u'\D'l 18u -12u'\D'l -18u 29u' -.sp -1 -.sp -1950u -\h'2695u'\D'l 92u 0u' -.sp -1 -.sp -93u -\h'2787u'\D'l 0u 186u' -.sp -1 -\h'2880u'\D'l 0u 186u' -.sp -1 -.sp 558u -\h'1487u'\D'l 0u 185u' -.sp -1 -\h'1580u'\D'l 0u 185u' -.sp -1 -.sp 2136u -\h'2044u'\D'l 186u 0u' -.sp -1 -.sp -93u -\h'2230u'\D'l 0u 185u' -.sp -1 -\h'2323u'\D'l 0u 185u' -.sp -1 -.sp -1858u -\h'1487u'\D'l 93u -185u' -.sp -1 -.sp -557u -\h'2787u'\D'l 93u -186u' -.sp -1 -.sp 2600u -\h'2230u'\D'l 93u -185u' -.sp -1 -.sp -1114u -\h'558u'\D'l 186u 0u' -.sp -1 -.sp -93u -\h'744u'\D'l 0u 186u' -.sp -1 -\h'836u'\D'l 0u 186u' -.sp -1 -.sp 186u -\h'744u'\D'l 92u -186u' -.sp -1 -.sp -1114u -\h'2695u'\D'l 92u 0u' -.sp -1 -.sp -93u -\h'2787u'\D'l 0u 185u'\D'l 93u -185u'\D'l 0u 185u' -.sp -1 -.sp 93u -\h'1301u'\D'l 186u 0u' -.sp -1 -.sp 556u -\h'744u'\D'l 92u -186u' -.sp -1 -.sp -186u -\h'836u'\D'l 0u 186u' -.sp -1 -\h'744u'\D'l 0u 186u' -.sp -1 -.sp 93u -\h'558u'\D'l 186u 0u' -.sp -1 -\h'2044u'\D'l 186u 0u' -.sp -1 -.sp -93u -\h'2230u'\D'l 0u 186u' -.sp -1 -\h'2323u'\D'l 0u 186u' -.sp -1 -.sp 186u -\h'2230u'\D'l 93u -186u' -.sp -1 -.sp 1022u -\h'2230u'\D'l 93u -186u' -.sp -1 -.sp -186u -\h'2323u'\D'l 0u 186u' -.sp -1 -\h'2230u'\D'l 0u 186u' -.sp -1 -.sp 93u -\h'2044u'\D'l 186u 0u' -.sp -1 -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_DATA -.sp -1857u -\h'233u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_DATA -.sp -1857u -\h'1719u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_DATA -.sp -836u -\h'1719u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 5 -.nr g8 \n(.d -.ds g9 "MT_DATA -.sp 186u -\h'1719u'\&\*(g9 -.sp |\n(g8u -.sp 650u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG\fR: \fImbuf\fR chains on socket receive buffer -.)z diff --git a/share/doc/iso/wisc/figs/mbufsnd.grn b/share/doc/iso/wisc/figs/mbufsnd.grn deleted file mode 100644 index 9b7ac5e5b18b..000000000000 --- a/share/doc/iso/wisc/figs/mbufsnd.grn +++ /dev/null @@ -1,13 +0,0 @@ -.(z -.GS C -width 5.0 -high 6.0 -narrow 1 -medium 3 -thick 7 -pointscale on -file mbufsnd.gsrc -.GE -.ce -\fB Figure \n+(FG\fR: \fImbuf\fR chains on socket send buffer -.)z diff --git a/share/doc/iso/wisc/figs/mbufsnd.gsrc b/share/doc/iso/wisc/figs/mbufsnd.gsrc deleted file mode 100644 index 8e2f0a87b964..000000000000 --- a/share/doc/iso/wisc/figs/mbufsnd.gsrc +++ /dev/null @@ -1,534 +0,0 @@ -gremlinfile -0 124.00 410.00 -0 -124.00 310.00 -124.00 320.00 -124.00 320.00 -124.00 320.00 --1.00 -1.00 -1 1 -12 == user data - 3 -71.00 343.00 -71.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -79.00 343.00 -79.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -87.00 343.00 -87.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -95.00 343.00 -95.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -103.00 343.00 -103.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -111.00 343.00 -111.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -119.00 343.00 -119.00 295.00 --1.00 -1.00 -1 0 -0 - 3 -160.00 688.00 -256.00 688.00 -160.00 688.00 -256.00 688.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 512.00 -352.00 512.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 528.00 -352.00 496.00 -368.00 528.00 -368.00 496.00 --1.00 -1.00 -5 0 -0 - 0 -264.00 656.00 -264.00 666.00 -264.00 666.00 -264.00 666.00 --1.00 -1.00 -1 1 -7 MT_DATA - 3 -256.00 480.00 -320.00 480.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 480.00 -272.00 490.00 -272.00 490.00 -272.00 490.00 --1.00 -1.00 -1 1 -6 MT_XPD - 3 -312.00 304.00 -312.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -304.00 304.00 -304.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -296.00 304.00 -296.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -288.00 304.00 -288.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -280.00 304.00 -280.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -264.00 304.00 -264.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -272.00 304.00 -272.00 256.00 --1.00 -1.00 -1 0 -0 - 3 -256.00 304.00 -256.00 304.00 -320.00 304.00 -320.00 304.00 -256.00 304.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 256.00 -256.00 256.00 -320.00 256.00 -320.00 256.00 -256.00 256.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 352.00 -285.00 357.00 -288.00 355.00 -291.00 357.00 -288.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 416.00 -352.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 416.00 -352.00 368.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 352.00 -256.00 224.00 -320.00 224.00 -320.00 352.00 -256.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 368.00 -288.00 368.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 368.00 -288.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 704.00 -352.00 672.00 -368.00 704.00 -368.00 672.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 688.00 -352.00 688.00 --1.00 -1.00 -5 0 -0 - 0 -64.00 688.00 -64.00 698.00 -64.00 698.00 -64.00 698.00 --1.00 -1.00 -1 1 -16 so->so_snd.sb_mb - 3 -256.00 688.00 -251.00 685.00 -253.00 688.00 -251.00 691.00 -256.00 688.00 --1.00 -1.00 -5 0 -0 - 3 -48.00 704.00 -48.00 672.00 -160.00 672.00 -160.00 704.00 -48.00 704.00 --1.00 -1.00 -5 0 -0 - 3 -312.00 656.00 -312.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -304.00 656.00 -304.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -296.00 656.00 -296.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -288.00 656.00 -288.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -280.00 656.00 -280.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -264.00 656.00 -264.00 608.00 --1.00 -1.00 -1 0 -0 - 3 -272.00 656.00 -272.00 608.00 --1.00 -1.00 -1 0 -0 - 0 -271.00 305.00 -271.00 315.00 -271.00 315.00 -271.00 315.00 --1.00 -1.00 -1 1 -6 MT_EOT - 3 -256.00 704.00 -256.00 576.00 -320.00 576.00 -320.00 704.00 -256.00 704.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 672.00 -320.00 672.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 608.00 -256.00 608.00 -320.00 608.00 -320.00 608.00 -256.00 608.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 592.00 -272.00 602.00 -272.00 602.00 -272.00 602.00 --1.00 -1.00 -1 1 -6 m_next - 0 -272.00 688.00 -272.00 698.00 -272.00 698.00 -272.00 698.00 --1.00 -1.00 -1 1 -5 m_act - 3 -256.00 656.00 -256.00 656.00 -320.00 656.00 -320.00 656.00 -256.00 656.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 528.00 -256.00 400.00 -320.00 400.00 -320.00 528.00 -256.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 496.00 -320.00 496.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 432.00 -256.00 432.00 -320.00 432.00 -320.00 432.00 -256.00 432.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 416.00 -272.00 426.00 -272.00 426.00 -272.00 426.00 --1.00 -1.00 -1 1 -6 m_next - 0 -272.00 512.00 -272.00 522.00 -272.00 522.00 -272.00 522.00 --1.00 -1.00 -1 1 -5 m_act - 3 -256.00 304.00 -256.00 304.00 -320.00 304.00 -320.00 304.00 -256.00 304.00 --1.00 -1.00 -5 0 -0 - 0 -272.00 336.00 -272.00 346.00 -272.00 346.00 -272.00 346.00 --1.00 -1.00 -1 1 -5 m_act - 0 -272.00 240.00 -272.00 250.00 -272.00 250.00 -272.00 250.00 --1.00 -1.00 -1 1 -6 m_next - 3 -256.00 256.00 -256.00 256.00 -320.00 256.00 -320.00 256.00 -256.00 256.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 320.00 -320.00 320.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 352.00 -256.00 224.00 -320.00 224.00 -320.00 352.00 -256.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 592.00 -352.00 592.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 592.00 -352.00 544.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 544.00 -288.00 544.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 544.00 -288.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 528.00 -285.00 533.00 -288.00 531.00 -291.00 533.00 -288.00 528.00 --1.00 -1.00 -5 0 -0 - 3 -320.00 240.00 -352.00 240.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 256.00 -352.00 224.00 --1.00 -1.00 -5 0 -0 - 3 -368.00 256.00 -368.00 224.00 --1.00 -1.00 -5 0 -0 - 3 -352.00 224.00 -368.00 256.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 472.00 -288.00 464.00 --1.00 -1.00 -5 0 -0 - 0 -72.00 480.00 -72.00 490.00 -72.00 490.00 -72.00 490.00 --1.00 -1.00 -1 1 -13 tpcb->tp_Xuna - 0 -72.00 464.00 -72.00 474.00 -72.00 474.00 -72.00 474.00 --1.00 -1.00 -1 1 -18 sequence number of - 0 -72.00 448.00 -72.00 458.00 -72.00 458.00 -72.00 458.00 --1.00 -1.00 -1 1 -8 XPD TPDU - 3 -288.00 464.00 -208.00 456.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 472.00 -208.00 480.00 -208.00 480.00 --1.00 -1.00 -5 0 -0 - 3 -208.00 488.00 -184.00 472.00 -208.00 448.00 --1.00 -1.00 -5 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/mbufsnd.nr b/share/doc/iso/wisc/figs/mbufsnd.nr deleted file mode 100644 index 4b385747d6ce..000000000000 --- a/share/doc/iso/wisc/figs/mbufsnd.nr +++ /dev/null @@ -1,284 +0,0 @@ -.(z -.br -.nr g1 2304u -.nr g2 3455u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D't 1u' -.sp -1 -.sp 1554u -\h'1152u'\D'l -173u 115u'\D'l 173u 173u' -.sp -1 -.sp 115u -\h'1728u'\D'l -576u -57u'\D'l 0u 0u' -.sp -1 -.sp 58u -\h'1728u'\D'l -576u 57u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "XPD TPDU -.sp 115u -\h'173u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "sequence number of -\h'173u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "tpcb->tp_Xuna -.sp -115u -\h'173u'\&\*(g9 -.sp |\n(g8u -.sp -58u -\h'1728u'\D'l 0u 58u' -.sp -1 -.sp 1786u -\h'2189u'\D'l 115u -231u' -.sp -1 -.sp -231u -\h'2304u'\D'l 0u 231u' -.sp -1 -\h'2189u'\D'l 0u 231u' -.sp -1 -.sp 116u -\h'1959u'\D'l 230u 0u' -.sp -1 -.sp -2073u -\h'1728u'\D'l -21u -36u'\D'l 21u 14u'\D'l 22u -14u'\D'l -22u 36u' -.sp -1 -.sp -115u -\h'1728u'\D'l 0u 115u' -.sp -1 -\h'2189u'\D'l -461u 0u' -.sp -1 -.sp -346u -\h'2189u'\D'l 0u 346u' -.sp -1 -\h'1959u'\D'l 230u 0u' -.sp -1 -.sp 1727u -\h'1498u'\D'l 0u 922u'\D'l 461u 0u'\D'l 0u -922u'\D'l -461u 0u' -.sp -1 -.sp 231u -\h'1498u'\D'l 461u 0u' -.sp -1 -.sp 460u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_next -.sp 116u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_act -.sp -576u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.sp -345u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_act -.sp -1497u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_next -.sp -807u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.sp -922u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.sp -461u -\h'1498u'\D'l 461u 0u' -.sp -1 -.sp -229u -\h'1498u'\D'l 0u 921u'\D'l 461u 0u'\D'l 0u -921u'\D'l -461u 0u' -.sp -1 -.sp -922u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_act -.sp -230u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "m_next -.sp 461u -\h'1613u'\&\*(g9 -.sp |\n(g8u -.sp 346u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.sp -461u -\h'1498u'\D'l 461u 0u' -.sp -1 -.sp -230u -\h'1498u'\D'l 0u 922u'\D'l 461u 0u'\D'l 0u -922u'\D'l -461u 0u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "MT_EOT -.sp 2872u -\h'1606u'\&\*(g9 -.sp |\n(g8u -\D's 4u' -.sp -1 -.sp 345u -\h'1613u'\D'l 0u 346u' -.sp -1 -\h'1555u'\D'l 0u 346u' -.sp -1 -\h'1670u'\D'l 0u 346u' -.sp -1 -\h'1728u'\D'l 0u 346u' -.sp -1 -\h'1786u'\D'l 0u 346u' -.sp -1 -\h'1843u'\D'l 0u 346u' -.sp -1 -\h'1901u'\D'l 0u 346u' -.sp -1 -\D's -1u' -.sp -1 -.sp -345u -\D'l 0u 230u'\D'l 807u 0u'\D'l 0u -230u'\D'l -807u 0u' -.sp -1 -.sp 115u -\h'1498u'\D'l -36u 22u'\D'l 14u -22u'\D'l -14u -21u'\D'l 36u 21u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "so->so_snd.sb_mb -\h'115u'\&\*(g9 -.sp |\n(g8u -\h'1959u'\D'l 230u 0u' -.sp -1 -.sp -115u -\h'2189u'\D'l 0u 230u'\D'l 115u -230u'\D'l 0u 230u' -.sp -1 -.sp 2418u -\h'1728u'\D'l 0u 115u' -.sp -1 -\h'2189u'\D'l -461u 0u' -.sp -1 -.sp 115u -\h'1498u'\D'l 0u 922u'\D'l 461u 0u'\D'l 0u -922u'\D'l -461u 0u' -.sp -1 -.sp -461u -\h'2189u'\D'l 0u 346u' -.sp -1 -\h'1959u'\D'l 230u 0u' -.sp -1 -.sp 461u -\h'1728u'\D'l -21u -36u'\D'l 21u 15u'\D'l 22u -15u'\D'l -22u 36u' -.sp -1 -.sp 691u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -.sp -345u -\h'1498u'\D'l 0u 0u'\D'l 461u 0u'\D'l 0u 0u'\D'l -461u 0u' -.sp -1 -\D's 4u' -.sp -1 -\h'1613u'\D'l 0u 345u' -.sp -1 -\h'1555u'\D'l 0u 345u' -.sp -1 -\h'1670u'\D'l 0u 345u' -.sp -1 -\h'1728u'\D'l 0u 345u' -.sp -1 -\h'1786u'\D'l 0u 345u' -.sp -1 -\h'1843u'\D'l 0u 345u' -.sp -1 -\h'1901u'\D'l 0u 345u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "MT_XPD -.sp -1267u -\h'1613u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp -1267u -\h'1498u'\D'l 461u 0u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "MT_DATA -.sp -1267u -\h'1555u'\&\*(g9 -.sp |\n(g8u -.sp -345u -\h'2189u'\D'l 0u 229u'\D'l 115u -229u'\D'l 0u 229u' -.sp -1 -.sp 115u -\h'1959u'\D'l 230u 0u' -.sp -1 -.sp -1267u -\h'807u'\D'l 691u 0u'\D'l -691u 0u'\D'l 691u 0u' -.sp -1 -\D's 4u' -.sp -1 -.sp 2483u -\h'511u'\D'l 0u 346u' -.sp -1 -\h'454u'\D'l 0u 346u' -.sp -1 -\h'396u'\D'l 0u 346u' -.sp -1 -\h'338u'\D'l 0u 346u' -.sp -1 -\h'281u'\D'l 0u 346u' -.sp -1 -\h'223u'\D'l 0u 346u' -.sp -1 -\h'166u'\D'l 0u 346u' -.sp -1 -.ft R -.ps 6 -.nr g8 \n(.d -.ds g9 "== user data -.sp 238u -\h'547u'\&\*(g9 -.sp |\n(g8u -.sp 857u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG\fR: \fImbuf\fR chains on socket send buffer -.)z diff --git a/share/doc/iso/wisc/figs/osi_addr.grn b/share/doc/iso/wisc/figs/osi_addr.grn deleted file mode 100644 index 333260b1d699..000000000000 --- a/share/doc/iso/wisc/figs/osi_addr.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.4 -narrow 1 -medium 3 -thick 7 -pointscale off -file osi_addr.gsrc -.GE -.ce -\fB Figure \n+(FG\fR: Format of OSI addresses -.)z diff --git a/share/doc/iso/wisc/figs/osi_addr.gsrc b/share/doc/iso/wisc/figs/osi_addr.gsrc deleted file mode 100644 index 0a69b96b3560..000000000000 --- a/share/doc/iso/wisc/figs/osi_addr.gsrc +++ /dev/null @@ -1,62 +0,0 @@ -gremlinfile -0 87.01 78.31 -3 -87.01 641.69 -87.01 567.61 -349.25 567.61 -349.25 641.69 -87.01 641.69 --1.00 -1.00 -5 0 -0 - 0 -138.15 617.43 -138.15 636.43 -138.15 636.43 -138.15 636.43 --1.00 -1.00 -1 4 -3 IDP - 3 -212.23 641.69 -212.23 567.61 --1.00 -1.00 -5 0 -0 - 3 -87.01 609.57 -212.23 609.57 --1.00 -1.00 -5 0 -0 - 0 -98.81 585.31 -98.81 604.31 -98.81 604.31 -98.81 604.31 --1.00 -1.00 -1 4 -3 AFI - 3 -149.29 610.22 -149.29 567.61 --1.00 -1.00 -5 0 -0 - 0 -170.27 586.62 -170.27 605.62 -170.27 605.62 -170.27 605.62 --1.00 -1.00 -1 4 -3 IDI - 0 -271.23 598.42 -271.23 617.42 -271.23 617.42 -271.23 617.42 --1.00 -1.00 -1 4 -3 DSP - -1 diff --git a/share/doc/iso/wisc/figs/osi_addr.nr b/share/doc/iso/wisc/figs/osi_addr.nr deleted file mode 100644 index f4c88fa74ef8..000000000000 --- a/share/doc/iso/wisc/figs/osi_addr.nr +++ /dev/null @@ -1,59 +0,0 @@ -.(z -.br -.nr g1 3456u -.nr g2 1722u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -.ft R -.ps 14 -.nr g8 \n(.d -.ds g9 "DSP -.sp 570u -\h'2428u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 14 -.nr g8 \n(.d -.ds g9 "IDI -.sp 726u -\h'1097u'\&\*(g9 -.sp |\n(g8u -\D't 1u' -.sp -1 -.sp 415u -\h'821u'\D'l 0u 561u' -.sp -1 -.ft R -.ps 14 -.nr g8 \n(.d -.ds g9 "AFI -.sp 328u -\h'156u'\&\*(g9 -.sp |\n(g8u -.sp 8u -\D'l 1650u 0u' -.sp -1 -.sp -423u -\h'1650u'\D'l 0u 976u' -.sp -1 -.ft R -.ps 14 -.nr g8 \n(.d -.ds g9 "IDP -.sp 320u -\h'674u'\&\*(g9 -.sp |\n(g8u -\D'l 0u 976u'\D'l 3456u 0u'\D'l 0u -976u'\D'l -3456u 0u' -.sp -1 -.sp 1722u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG\fR: Format of OSI addresses -.)z diff --git a/share/doc/iso/wisc/figs/tppt.grn b/share/doc/iso/wisc/figs/tppt.grn deleted file mode 100644 index 649c3d956672..000000000000 --- a/share/doc/iso/wisc/figs/tppt.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.4 -narrow 1 -medium 3 -thick 7 -pointscale off -file tppt.gsrc -.GE -.ce -\fB Figure \n+(FG\fR: Output of tppt(8) -.)z diff --git a/share/doc/iso/wisc/figs/tppt.gsrc b/share/doc/iso/wisc/figs/tppt.gsrc deleted file mode 100644 index 564394050033..000000000000 --- a/share/doc/iso/wisc/figs/tppt.gsrc +++ /dev/null @@ -1,411 +0,0 @@ -gremlinfile -0 352.00 352.00 -0 -352.00 368.00 -352.00 381.00 -352.00 381.00 -352.00 381.00 --1.00 -1.00 -2 2 -17 this is a CR TPDU - 3 -256.00 384.00 -256.00 400.00 -368.00 400.00 -368.00 384.00 -256.00 384.00 --1.00 -1.00 -5 0 -0 - 0 -112.00 288.00 -112.00 302.00 -112.00 302.00 -112.00 302.00 --1.00 -1.00 -1 3 -59 +12: 0x02 0x00 0x07 0xc0 20: 0x01 0x08 0x00 0x00 - 0 -112.00 304.00 -112.00 318.00 -112.00 318.00 -112.00 318.00 --1.00 -1.00 -1 3 -59 + 8: 0x06 0x74 0x70 0x70 12: 0x69 0x6e 0xc7 0xc2 - 0 -112.00 320.00 -112.00 334.00 -112.00 334.00 -112.00 334.00 --1.00 -1.00 -1 3 -59 + 0: 0x15 0xe0 0x00 0x00 4: 0x00 0x03 0x00 0xc1 - 0 -160.00 208.00 -160.00 221.00 -160.00 221.00 -160.00 221.00 --1.00 -1.00 -2 2 -17 class and options - 3 -112.00 208.00 -144.00 208.00 --1.00 -1.00 -6 0 -0 - 3 -336.00 320.00 -368.00 320.00 --1.00 -1.00 -6 0 -0 - 3 -80.00 352.00 -75.00 349.00 -77.00 352.00 -75.00 355.00 -80.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -96.00 288.00 -91.00 285.00 -93.00 288.00 -91.00 291.00 -96.00 288.00 --1.00 -1.00 -5 0 -0 - 3 -96.00 288.00 -48.00 288.00 -48.00 240.00 -96.00 240.00 --1.00 -1.00 -5 0 -0 - 0 -336.00 432.00 -336.00 445.00 -336.00 445.00 -336.00 445.00 --1.00 -1.00 -2 2 -22 indicates a TPDU event - 0 -48.00 448.00 -48.00 461.00 -48.00 461.00 -48.00 461.00 --1.00 -1.00 -2 2 -18 TPDU was received; - 0 -128.00 448.00 -128.00 461.00 -128.00 461.00 -128.00 461.00 --1.00 -1.00 -2 2 -28 its total length is 22 bytes - 0 -48.00 432.00 -48.00 445.00 -48.00 445.00 -48.00 445.00 --1.00 -1.00 -2 2 -26 and its header is 22 bytes - 0 -48.00 416.00 -48.00 429.00 -48.00 429.00 -48.00 429.00 --1.00 -1.00 -2 2 -15 (21 in the LI + - 0 -112.00 416.00 -112.00 429.00 -112.00 429.00 -112.00 429.00 --1.00 -1.00 -2 2 -13 1 for the LI) - 3 -112.00 240.00 -144.00 240.00 --1.00 -1.00 -1 0 -0 - 0 -160.00 240.00 -160.00 253.00 -160.00 253.00 -160.00 253.00 --1.00 -1.00 -2 2 -2 LI - 3 -208.00 320.00 -336.00 320.00 --1.00 -1.00 -2 0 -0 - 3 -112.00 224.00 -144.00 224.00 --1.00 -1.00 -2 0 -0 - 0 -160.00 224.00 -160.00 237.00 -160.00 237.00 -160.00 237.00 --1.00 -1.00 -2 2 -16 dst-ref, src-ref - 3 -304.00 240.00 -336.00 240.00 --1.00 -1.00 -3 0 -0 - 0 -352.00 240.00 -352.00 253.00 -352.00 253.00 -352.00 253.00 --1.00 -1.00 -2 2 -26 calling transport selector - 3 -144.00 288.00 -224.00 288.00 --1.00 -1.00 -4 0 -0 - 3 -304.00 224.00 -336.00 224.00 --1.00 -1.00 -4 0 -0 - 0 -352.00 224.00 -352.00 237.00 -352.00 237.00 -352.00 237.00 --1.00 -1.00 -2 2 -25 called transport selector - 3 -240.00 288.00 -336.00 288.00 --1.00 -1.00 -5 0 -0 - 3 -304.00 208.00 -336.00 208.00 --1.00 -1.00 -5 0 -0 - 0 -352.00 208.00 -352.00 221.00 -352.00 221.00 -352.00 221.00 --1.00 -1.00 -2 2 -9 TPDU size - 3 -144.00 320.00 -192.00 320.00 --1.00 -1.00 -1 0 -0 - 0 -176.00 240.00 -176.00 253.00 -176.00 253.00 -176.00 253.00 --1.00 -1.00 -2 2 -11 , TPDU type - 3 -400.00 432.00 -400.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -400.00 400.00 -397.00 405.00 -400.00 403.00 -403.00 405.00 -400.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -368.00 400.00 -368.00 384.00 -432.00 384.00 -432.00 400.00 -368.00 400.00 --1.00 -1.00 -5 0 -0 - 0 -384.00 384.00 -384.00 398.00 -384.00 398.00 -384.00 398.00 --1.00 -1.00 -1 3 -4 tpdu - 3 -80.00 352.00 -48.00 352.00 -48.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -96.00 336.00 -96.00 272.00 -416.00 272.00 -416.00 336.00 -96.00 336.00 --1.00 -1.00 -5 0 -0 - 3 -80.00 368.00 -80.00 336.00 -224.00 336.00 -224.00 368.00 -80.00 368.00 --1.00 -1.00 -5 0 -0 - 0 -96.00 352.00 -96.00 366.00 -96.00 366.00 -96.00 366.00 --1.00 -1.00 -1 3 -19 INPUT total len 22 - 0 -96.00 336.00 -96.00 350.00 -96.00 350.00 -96.00 350.00 --1.00 -1.00 -1 3 -13 HDRLEN: 21+1 - 3 -224.00 352.00 -224.00 336.00 -320.00 336.00 -320.00 352.00 -224.00 352.00 --1.00 -1.00 -5 0 -0 - 0 -240.00 336.00 -240.00 350.00 -240.00 350.00 -240.00 350.00 --1.00 -1.00 -1 3 -12 CR_TPDU_type - 0 -336.00 336.00 -336.00 350.00 -336.00 350.00 -336.00 350.00 --1.00 -1.00 -1 3 -23 cdt 0(0x0) dref 0x0 - 3 -288.00 352.00 -285.00 357.00 -288.00 355.00 -291.00 357.00 -288.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 352.00 -288.00 368.00 -352.00 368.00 --1.00 -1.00 -5 0 -0 - 0 -80.00 144.00 -80.00 158.00 -80.00 158.00 -80.00 158.00 --1.00 -1.00 -1 3 -24 1a: Ref 22 arg 14(0xe) - 0 -256.00 384.00 -256.00 398.00 -256.00 398.00 -256.00 398.00 --1.00 -1.00 -1 3 -22 @ 91990 : 0000.435125 - 3 -288.00 400.00 -285.00 405.00 -288.00 403.00 -291.00 405.00 -288.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -288.00 400.00 -288.00 416.00 --1.00 -1.00 -5 0 -0 - 0 -240.00 416.00 -240.00 429.00 -240.00 429.00 -240.00 429.00 --1.00 -1.00 -2 2 -30 event # : time since 1st event - 3 -368.00 320.00 -384.00 320.00 --1.00 -1.00 -3 0 -0 - 3 -144.00 304.00 -336.00 304.00 --1.00 -1.00 -3 0 -0 - 3 -336.00 304.00 -384.00 304.00 --1.00 -1.00 -4 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/tppt.gsrc.save b/share/doc/iso/wisc/figs/tppt.gsrc.save deleted file mode 100644 index 3ad56ef83517..000000000000 --- a/share/doc/iso/wisc/figs/tppt.gsrc.save +++ /dev/null @@ -1,335 +0,0 @@ -gremlinfile -0 240.00 464.00 -0 -240.00 256.00 -240.00 269.00 -240.00 269.00 -240.00 269.00 --1.00 -1.00 -2 2 -11 , TPDU type - 3 -208.00 320.00 -256.00 320.00 --1.00 -1.00 -1 0 -0 - 0 -224.00 192.00 -224.00 205.00 -224.00 205.00 -224.00 205.00 --1.00 -1.00 -2 2 -9 TPDU size - 3 -176.00 192.00 -208.00 192.00 --1.00 -1.00 -5 0 -0 - 3 -304.00 288.00 -400.00 288.00 --1.00 -1.00 -5 0 -0 - 0 -224.00 208.00 -224.00 221.00 -224.00 221.00 -224.00 221.00 --1.00 -1.00 -2 2 -25 called transport selector - 3 -176.00 208.00 -208.00 208.00 --1.00 -1.00 -4 0 -0 - 3 -208.00 288.00 -288.00 288.00 --1.00 -1.00 -4 0 -0 - 3 -432.00 304.00 -464.00 304.00 --1.00 -1.00 -4 0 -0 - 3 -160.00 336.00 -160.00 272.00 -480.00 272.00 -480.00 336.00 -160.00 336.00 --1.00 -1.00 -5 0 -0 - 0 -224.00 224.00 -224.00 237.00 -224.00 237.00 -224.00 237.00 --1.00 -1.00 -2 2 -26 calling transport selector - 3 -176.00 224.00 -208.00 224.00 --1.00 -1.00 -3 0 -0 - 3 -208.00 304.00 -432.00 304.00 --1.00 -1.00 -3 0 -0 - 3 -432.00 320.00 -464.00 320.00 --1.00 -1.00 -3 0 -0 - 0 -224.00 240.00 -224.00 253.00 -224.00 253.00 -224.00 253.00 --1.00 -1.00 -2 2 -16 dst-ref, src-ref - 3 -176.00 240.00 -208.00 240.00 --1.00 -1.00 -2 0 -0 - 3 -272.00 320.00 -400.00 320.00 --1.00 -1.00 -2 0 -0 - 0 -224.00 256.00 -224.00 269.00 -224.00 269.00 -224.00 269.00 --1.00 -1.00 -2 2 -2 LI - 3 -176.00 256.00 -208.00 256.00 --1.00 -1.00 -1 0 -0 - 0 -48.00 416.00 -48.00 429.00 -48.00 429.00 -48.00 429.00 --1.00 -1.00 -2 2 -13 1 for the LI) - 0 -48.00 432.00 -48.00 445.00 -48.00 445.00 -48.00 445.00 --1.00 -1.00 -2 2 -15 (21 in the LI + - 0 -48.00 448.00 -48.00 461.00 -48.00 461.00 -48.00 461.00 --1.00 -1.00 -2 2 -26 and its header is 22 bytes - 0 -48.00 464.00 -48.00 477.00 -48.00 477.00 -48.00 477.00 --1.00 -1.00 -2 2 -28 its total length is 22 bytes - 0 -48.00 480.00 -48.00 493.00 -48.00 493.00 -48.00 493.00 --1.00 -1.00 -2 2 -18 TPDU was received; - 0 -176.00 416.00 -176.00 429.00 -176.00 429.00 -176.00 429.00 --1.00 -1.00 -2 2 -17 TPDU is a CR TPDU - 0 -368.00 432.00 -368.00 445.00 -368.00 445.00 -368.00 445.00 --1.00 -1.00 -2 2 -22 indicates a TPDU event - 3 -160.00 304.00 -112.00 304.00 -112.00 256.00 -160.00 256.00 --1.00 -1.00 -5 0 -0 - 3 -160.00 304.00 -155.00 301.00 -157.00 304.00 -155.00 307.00 -160.00 304.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 352.00 -256.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -256.00 352.00 -253.00 357.00 -256.00 355.00 -259.00 357.00 -256.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -80.00 352.00 -48.00 352.00 -48.00 400.00 --1.00 -1.00 -5 0 -0 - 3 -80.00 352.00 -75.00 349.00 -77.00 352.00 -75.00 355.00 -80.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 384.00 -416.00 416.00 --1.00 -1.00 -5 0 -0 - 3 -416.00 384.00 -413.00 389.00 -416.00 387.00 -419.00 389.00 -416.00 384.00 --1.00 -1.00 -5 0 -0 - 3 -192.00 352.00 -192.00 336.00 -288.00 336.00 -288.00 352.00 -192.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -80.00 352.00 -80.00 336.00 -192.00 336.00 -192.00 352.00 -80.00 352.00 --1.00 -1.00 -5 0 -0 - 3 -80.00 368.00 -80.00 352.00 -208.00 352.00 -208.00 368.00 -80.00 368.00 --1.00 -1.00 -5 0 -0 - 3 -400.00 384.00 -400.00 368.00 -448.00 368.00 -448.00 384.00 -400.00 384.00 --1.00 -1.00 -5 0 -0 - 0 -96.00 288.00 -96.00 303.00 -96.00 303.00 -96.00 303.00 --1.00 -1.00 -1 2 -66 +16: 0x02 0x00 0x07 0xc0 20: 0x01 0x08 0x00 0x00 - 0 -96.00 304.00 -96.00 319.00 -96.00 319.00 -96.00 319.00 --1.00 -1.00 -1 2 -66 + 8: 0x06 0x74 0x70 0x70 12: 0x69 0x6e 0x67 0xc2 - 0 -96.00 320.00 -96.00 335.00 -96.00 335.00 -96.00 335.00 --1.00 -1.00 -1 2 -66 + 0: 0x15 0xe0 0x00 0x00 4: 0x00 0x03 0x00 0xc1 - 0 -96.00 336.00 -96.00 351.00 -96.00 351.00 -96.00 351.00 --1.00 -1.00 -1 2 -56 HDRLEN: 21+1 CR_TPDU_type cdt 0(0x0) dref 0x0 - 0 -96.00 352.00 -96.00 367.00 -96.00 367.00 -96.00 367.00 --1.00 -1.00 -1 2 -18 INPUT total len 22 - 0 -96.00 368.00 -96.00 383.00 -96.00 383.00 -96.00 383.00 --1.00 -1.00 -1 2 -60 1a: Ref 22 arg 14(0xe), @ 91990 : 0000.435125 tpdu - -1 diff --git a/share/doc/iso/wisc/figs/tppt.nr b/share/doc/iso/wisc/figs/tppt.nr deleted file mode 100644 index a6dcd1835278..000000000000 --- a/share/doc/iso/wisc/figs/tppt.nr +++ /dev/null @@ -1,296 +0,0 @@ -.(z -.br -.nr g1 3456u -.nr g2 2736u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D's 16u'\D't 1u' -.sp -1 -.sp 1296u -\h'2592u'\D'l 432u 0u' -.sp -1 -\D's -1u'\D't 7u' -.sp -1 -\h'864u'\D'l 1728u 0u' -.sp -1 -.sp -144u -\h'2880u'\D'l 144u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "event # : time since 1st event -.sp -864u -\h'1728u'\&\*(g9 -.sp |\n(g8u -\D't 1u' -.sp -1 -.sp -720u -\h'2160u'\D'l 0u -144u' -.sp -1 -\h'2160u'\D'l -27u -45u'\D'l 27u 18u'\D'l 27u -18u'\D'l -27u 45u' -.sp -1 -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "@ 91990 : 0000.435125 -.sp 144u -\h'1872u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "1a: Ref 22 arg 14(0xe) -.sp 2304u -\h'288u'\&\*(g9 -.sp |\n(g8u -.sp 432u -\h'2160u'\D'l 0u -144u'\D'l 576u 0u' -.sp -1 -\h'2160u'\D'l -27u -45u'\D'l 27u 18u'\D'l 27u -18u'\D'l -27u 45u' -.sp -1 -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "cdt 0(0x0) dref 0x0 -.sp 144u -\h'2592u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "CR_TPDU_type -.sp 144u -\h'1728u'\&\*(g9 -.sp |\n(g8u -\h'1584u'\D'l 0u 144u'\D'l 864u 0u'\D'l 0u -144u'\D'l -864u 0u' -.sp -1 -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "HDRLEN: 21+1 -.sp 144u -\h'432u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "INPUT total len 22 -\h'432u'\&\*(g9 -.sp |\n(g8u -.sp -144u -\h'288u'\D'l 0u 288u'\D'l 1296u 0u'\D'l 0u -288u'\D'l -1296u 0u' -.sp -1 -.sp 288u -\h'432u'\D'l 0u 576u'\D'l 2880u 0u'\D'l 0u -576u'\D'l -2880u 0u' -.sp -1 -.sp -144u -\h'288u'\D'l -288u 0u'\D'l 0u -432u' -.sp -1 -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "tpdu -.sp -288u -\h'3024u'\&\*(g9 -.sp |\n(g8u -.sp -432u -\h'2880u'\D'l 0u 144u'\D'l 576u 0u'\D'l 0u -144u'\D'l -576u 0u' -.sp -1 -\h'3168u'\D'l -27u -45u'\D'l 27u 18u'\D'l 27u -18u'\D'l -27u 45u' -.sp -1 -.sp -288u -\h'3168u'\D'l 0u 288u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 ", TPDU type -.sp 1728u -\h'1152u'\&\*(g9 -.sp |\n(g8u -\D's 4u' -.sp -1 -.sp 1008u -\h'864u'\D'l 432u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "TPDU size -.sp 1008u -\h'2736u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp 1008u -\h'2304u'\D'l 288u 0u' -.sp -1 -.sp -720u -\h'1728u'\D'l 864u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "called transport selector -.sp 576u -\h'2736u'\&\*(g9 -.sp |\n(g8u -\D's 16u' -.sp -1 -.sp 576u -\h'2304u'\D'l 288u 0u' -.sp -1 -.sp -576u -\h'864u'\D'l 720u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "calling transport selector -.sp 432u -\h'2736u'\&\*(g9 -.sp |\n(g8u -\D's -1u'\D't 7u' -.sp -1 -.sp 432u -\h'2304u'\D'l 288u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "dst-ref, src-ref -.sp 144u -\h'1008u'\&\*(g9 -.sp |\n(g8u -\D's 20u'\D't 1u' -.sp -1 -.sp 144u -\h'576u'\D'l 288u 0u' -.sp -1 -.sp -864u -\h'1440u'\D'l 1152u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "LI -.sp 720u -\h'1008u'\&\*(g9 -.sp |\n(g8u -\D's 4u' -.sp -1 -.sp 720u -\h'576u'\D'l 288u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "1 for the LI) -.sp -1584u -\h'576u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "(21 in the LI + -.sp -1584u -\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "and its header is 22 bytes -.sp -1728u -\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "its total length is 22 bytes -.sp -1872u -\h'720u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "TPDU was received; -.sp -1872u -\&\*(g9 -.sp |\n(g8u -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "indicates a TPDU event -.sp -1728u -\h'2592u'\&\*(g9 -.sp |\n(g8u -\D's -1u' -.sp -1 -.sp -432u -\h'432u'\D'l -432u 0u'\D'l 0u 432u'\D'l 432u 0u' -.sp -1 -\h'432u'\D'l -45u 27u'\D'l 18u -27u'\D'l -18u -27u'\D'l 45u 27u' -.sp -1 -.sp -576u -\h'288u'\D'l -45u 27u'\D'l 18u -27u'\D'l -18u -27u'\D'l 45u 27u' -.sp -1 -\D't 3u' -.sp -1 -.sp 288u -\h'2592u'\D'l 288u 0u' -.sp -1 -.sp 1008u -\h'576u'\D'l 288u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "class and options -\h'1008u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "+ 0: 0x15 0xe0 0x00 0x00 4: 0x00 0x03 0x00 0xc1 -.sp -1008u -\h'576u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "+ 8: 0x06 0x74 0x70 0x70 12: 0x69 0x6e 0xc7 0xc2 -.sp -864u -\h'576u'\&\*(g9 -.sp |\n(g8u -.ft R -.ps 12 -.nr g8 \n(.d -.ds g9 "+12: 0x02 0x00 0x07 0xc0 20: 0x01 0x08 0x00 0x00 -.sp -720u -\h'576u'\&\*(g9 -.sp |\n(g8u -\D't 1u' -.sp -1 -.sp -1584u -\h'1872u'\D'l 0u -144u'\D'l 1008u 0u'\D'l 0u 144u'\D'l -1008u 0u' -.sp -1 -.ft I -.ps 10 -.nr g8 \n(.d -.ds g9 "this is a CR TPDU -.sp 144u -\h'2736u'\&\*(g9 -.sp |\n(g8u -.sp 2160u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG\fR: Output of tppt(8) -.)z diff --git a/share/doc/iso/wisc/figs/trans_flow.grn b/share/doc/iso/wisc/figs/trans_flow.grn deleted file mode 100644 index 4a45d911d91a..000000000000 --- a/share/doc/iso/wisc/figs/trans_flow.grn +++ /dev/null @@ -1,20 +0,0 @@ -.(z -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.4 -narrow 1 -medium 3 -thick 7 -pointscale off -file trans_flow.gsrc -.GE -.ce -\fB Figure \n+(FG\fR: Control flow (solid) and data flow (broken) -.ce -among the parts of the transport implementation. -.)z diff --git a/share/doc/iso/wisc/figs/trans_flow.gsrc b/share/doc/iso/wisc/figs/trans_flow.gsrc deleted file mode 100644 index 1b96523679a7..000000000000 --- a/share/doc/iso/wisc/figs/trans_flow.gsrc +++ /dev/null @@ -1,567 +0,0 @@ -gremlinfile -0 448.00 587.00 -3 -448.00 201.00 -450.69 206.18 -450.55 202.57 -453.83 201.07 -448.00 201.00 --1.00 -1.00 -6 0 -0 - 3 -549.00 260.00 -447.00 201.00 --1.00 -1.00 -6 0 -0 - 3 -582.00 238.00 -585.82 233.60 -582.52 235.05 -579.91 232.55 -582.00 238.00 --1.00 -1.00 -6 0 -0 - 3 -585.00 148.00 -583.00 239.00 --1.00 -1.00 -6 0 -0 - 3 -423.00 376.00 -428.82 375.64 -425.47 374.30 -425.42 370.70 -423.00 376.00 --1.00 -1.00 -6 0 -0 - 3 -542.00 322.00 -422.00 375.00 --1.00 -1.00 -6 0 -0 - 3 -393.00 246.00 -389.63 250.76 -392.77 248.99 -395.61 251.22 -393.00 246.00 --1.00 -1.00 -6 0 -0 - 3 -390.00 364.00 -392.00 244.00 --1.00 -1.00 -6 0 -0 - 3 -476.00 655.00 -481.66 653.59 -478.12 652.88 -477.41 649.34 -476.00 655.00 --1.00 -1.00 -6 0 -0 - 3 -540.00 577.00 -476.00 656.00 --1.00 -1.00 -6 0 -0 - 3 -138.00 209.00 -139.96 203.51 -137.41 206.06 -134.08 204.69 -138.00 209.00 --1.00 -1.00 -6 0 -0 - 3 -137.00 209.00 -124.00 149.00 --1.00 -1.00 -6 0 -0 - 3 -378.00 242.00 -375.00 247.00 -378.00 245.00 -381.00 247.00 -378.00 242.00 --1.00 -1.00 -1 0 -0 - 3 -376.00 364.00 -378.00 239.00 --1.00 -1.00 -1 0 -0 - 3 -441.00 215.00 -443.50 220.27 -443.50 216.66 -446.82 215.28 -441.00 215.00 --1.00 -1.00 -1 0 -0 - 3 -541.00 269.00 -438.00 214.00 --1.00 -1.00 -1 0 -0 - 3 -600.00 240.00 -603.25 235.16 -600.15 237.00 -597.25 234.86 -600.00 240.00 --1.00 -1.00 -1 0 -0 - 3 -599.00 242.00 -605.00 148.00 --1.00 -1.00 -1 0 -0 - 3 -497.00 138.00 -491.22 137.21 -494.24 139.18 -493.59 142.73 -497.00 138.00 --1.00 -1.00 -1 0 -0 - 3 -441.00 165.00 -495.00 138.00 --1.00 -1.00 -1 0 -0 - 3 -423.00 231.00 -423.07 236.83 -424.57 233.55 -428.18 233.69 -423.00 231.00 --1.00 -1.00 -1 0 -0 - 3 -563.00 479.00 -421.00 231.00 --1.00 -1.00 -1 0 -0 - 3 -433.00 394.00 -438.82 394.29 -435.65 392.59 -436.00 389.00 -433.00 394.00 --1.00 -1.00 -1 0 -0 - 3 -554.00 335.00 -434.00 391.00 --1.00 -1.00 -1 0 -0 - 3 -176.00 317.00 -178.50 322.27 -178.50 318.66 -181.82 317.28 -176.00 317.00 --1.00 -1.00 -1 0 -0 - 3 -325.00 413.00 -175.00 315.00 --1.00 -1.00 -1 0 -0 - 3 -343.00 378.00 -340.62 372.67 -340.54 376.28 -337.18 377.59 -343.00 378.00 --1.00 -1.00 -1 0 -0 - 3 -199.00 285.00 -342.00 377.00 --1.00 -1.00 -1 0 -0 - 3 -344.00 226.00 -338.60 228.20 -342.20 228.40 -343.40 231.80 -344.00 226.00 --1.00 -1.00 -1 0 -0 - 3 -197.00 458.00 -342.00 226.00 --1.00 -1.00 -1 0 -0 - 3 -523.00 513.00 -520.80 507.60 -520.60 511.20 -517.20 512.40 -523.00 513.00 --1.00 -1.00 -1 0 -0 - 3 -424.00 461.00 -522.00 512.00 --1.00 -1.00 -1 0 -0 - 3 -553.00 583.00 -547.45 584.79 -551.02 585.26 -551.97 588.74 -553.00 583.00 --1.00 -1.00 -1 0 -0 - 3 -491.00 657.00 -553.00 583.00 --1.00 -1.00 -1 0 -0 - 3 -235.00 559.00 -235.65 564.79 -236.82 561.38 -240.42 561.15 -235.00 559.00 --1.00 -1.00 -1 0 -0 - 3 -304.00 656.00 -233.00 556.00 --1.00 -1.00 -1 0 -0 - 4 -383.00 420.00 -354.00 467.00 -383.00 364.77 -383.00 475.23 -438.23 420.00 -327.77 420.00 --1.00 -1.00 -5 0 -0 - 4 -189.00 515.00 -160.00 562.00 -189.00 459.77 -189.00 570.23 -244.23 515.00 -133.77 515.00 --1.00 -1.00 -5 0 -0 - 4 -577.00 532.00 -548.00 579.00 -577.00 476.77 -577.00 587.23 -632.23 532.00 -521.77 532.00 --1.00 -1.00 -5 0 -0 - 4 -592.00 296.00 -563.00 343.00 -592.00 240.77 -592.00 351.23 -647.23 296.00 -536.77 296.00 --1.00 -1.00 -5 0 -0 - 4 -388.00 185.00 -359.00 232.00 -388.00 129.77 -388.00 240.23 -443.23 185.00 -332.77 185.00 --1.00 -1.00 -5 0 -0 - 4 -145.00 265.00 -116.00 312.00 -145.00 209.77 -145.00 320.23 -200.23 265.00 -89.77 265.00 --1.00 -1.00 -5 0 -0 - 3 -282.00 708.00 -282.00 658.00 -500.00 658.00 -500.00 708.00 -282.00 708.00 --1.00 -1.00 -5 0 -0 - 3 -384.00 660.00 -384.00 484.00 --1.00 -1.00 -6 0 -0 - 3 -384.00 484.00 -381.00 489.00 -384.00 487.00 -387.00 489.00 -384.00 484.00 --1.00 -1.00 -6 0 -0 - 3 -552.00 484.00 -408.00 236.00 --1.00 -1.00 -6 0 -0 - 3 -408.00 236.00 -408.28 241.82 -409.66 238.50 -413.27 238.50 -408.00 236.00 --1.00 -1.00 -6 0 -0 - 3 -432.00 452.00 -528.00 500.00 --1.00 -1.00 -6 0 -0 - 3 -528.00 500.00 -525.50 494.73 -525.50 498.34 -522.18 499.72 -528.00 500.00 --1.00 -1.00 -6 0 -0 - 3 -240.00 484.00 -328.00 444.00 --1.00 -1.00 -6 0 -0 - 3 -240.00 484.00 -245.69 485.26 -242.85 483.05 -243.79 479.57 -240.00 484.00 --1.00 -1.00 -6 0 -0 - 0 -320.00 668.00 -320.00 681.00 -320.00 681.00 -320.00 681.00 --1.00 -1.00 -3 2 -11 SOCKET CODE - 0 -512.00 116.00 -512.00 129.00 -512.00 129.00 -512.00 129.00 --1.00 -1.00 -3 2 -13 NETWORK LEVEL - 3 -496.00 148.00 -496.00 100.00 -704.00 100.00 -704.00 148.00 -496.00 148.00 --1.00 -1.00 -6 0 -0 - 0 -64.00 116.00 -64.00 129.00 -64.00 129.00 -64.00 129.00 --1.00 -1.00 -3 2 -5 CLOCK - 3 -48.00 148.00 -48.00 100.00 -160.00 100.00 -160.00 148.00 -48.00 148.00 --1.00 -1.00 -6 0 -0 - 0 -160.00 500.00 -160.00 513.00 -160.00 513.00 -160.00 513.00 --1.00 -1.00 -3 2 -4 SEND - 0 -544.00 524.00 -544.00 537.00 -544.00 537.00 -544.00 537.00 --1.00 -1.00 -3 2 -4 RECV - 0 -352.00 421.00 -352.00 434.00 -352.00 434.00 -352.00 434.00 --1.00 -1.00 -3 2 -6 DRIVER - 0 -105.00 264.00 -105.00 277.00 -105.00 277.00 -105.00 277.00 --1.00 -1.00 -3 2 -6 TIMERS - 0 -560.00 276.00 -560.00 289.00 -560.00 289.00 -560.00 289.00 --1.00 -1.00 -3 2 -5 INPUT - 0 -349.00 181.00 -349.00 194.00 -349.00 194.00 -349.00 194.00 --1.00 -1.00 -3 2 -6 OUTPUT - 3 -192.00 292.00 -336.00 388.00 --1.00 -1.00 -6 0 -0 - 3 -336.00 388.00 -334.59 382.34 -333.88 385.88 -330.34 386.59 -336.00 388.00 --1.00 -1.00 -6 0 -0 - 3 -328.00 404.00 -184.00 308.00 --1.00 -1.00 -6 0 -0 - 3 -184.00 308.00 -187.13 312.92 -186.68 309.34 -189.81 307.55 -184.00 308.00 --1.00 -1.00 -6 0 -0 - 3 -208.00 460.00 -352.00 236.00 --1.00 -1.00 -6 0 -0 - 3 -352.00 236.00 -347.08 239.13 -350.66 238.68 -352.45 241.81 -352.00 236.00 --1.00 -1.00 -6 0 -0 - 3 -432.00 148.00 -496.00 116.00 --1.00 -1.00 -6 0 -0 - 3 -496.00 116.00 -491.00 113.00 -493.00 116.00 -491.00 119.00 -496.00 116.00 --1.00 -1.00 -6 0 -0 - 3 -224.00 564.00 -288.00 660.00 --1.00 -1.00 -6 0 -0 - 3 -288.00 660.00 -288.45 654.19 -286.66 657.32 -283.08 656.87 -288.00 660.00 --1.00 -1.00 -6 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/trans_flow.nr b/share/doc/iso/wisc/figs/trans_flow.nr deleted file mode 100644 index 2b8061cdb4e1..000000000000 --- a/share/doc/iso/wisc/figs/trans_flow.nr +++ /dev/null @@ -1,274 +0,0 @@ -.(z -.br -.nr g1 3456u -.nr g2 3202u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -.sp 253u -\h'1265u'\D'l 2u 30u'\D'l -9u -16u'\D'l -19u 2u'\D'l 26u -16u' -.sp -1 -.sp 505u -\h'928u'\D'l 337u -505u' -.sp -1 -.sp 2359u -\h'2361u'\D'l -27u 16u'\D'l 11u -16u'\D'l -11u -15u'\D'l 27u 15u' -.sp -1 -.sp -168u -\h'2023u'\D'l 338u 168u' -.sp -1 -.sp -464u -\h'1602u'\D'l -26u -16u'\D'l 19u 2u'\D'l 9u -16u'\D'l -2u 30u' -.sp -1 -.sp -1180u -\h'843u'\D'l 759u 1180u' -.sp -1 -.sp 801u -\h'717u'\D'l 16u -26u'\D'l -2u 19u'\D'l 16u 9u'\D'l -30u -2u' -.sp -1 -.sp -506u -\h'1475u'\D'l -758u 506u' -.sp -1 -.sp 84u -\h'1518u'\D'l -8u 30u'\D'l -4u -18u'\D'l -18u -4u'\D'l 30u -8u' -.sp -1 -.sp 506u -\h'759u'\D'l 759u -506u' -.sp -1 -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "OUTPUT -.sp 585u -\h'1586u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "INPUT -.sp 85u -\h'2698u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "TIMERS -.sp 148u -\h'301u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "DRIVER -.sp -679u -\h'1602u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "RECV -.sp -1221u -\h'2613u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "SEND -.sp -1096u -\h'590u'\&\*(g9 -.sp |\n(g8u -.sp 759u -\D'l 0u 253u'\D'l 590u 0u'\D'l 0u -253u'\D'l -590u 0u' -.sp -1 -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "CLOCK -.sp 168u -\h'85u'\&\*(g9 -.sp |\n(g8u -\h'2361u'\D'l 0u 253u'\D'l 1095u 0u'\D'l 0u -253u'\D'l -1095u 0u' -.sp -1 -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "NETWORK LEVEL -.sp 168u -\h'2445u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 10 -.nr g8 \n(.d -.ds g9 "SOCKET CODE -.sp -2739u -\h'1433u'\&\*(g9 -.sp |\n(g8u -.sp -1770u -\h'1012u'\D'l 30u -7u'\D'l -15u 12u'\D'l 5u 18u'\D'l -20u -23u' -.sp -1 -\h'1012u'\D'l 463u 210u' -.sp -1 -.sp -85u -\h'2529u'\D'l -13u 28u'\D'l 0u -19u'\D'l -18u -7u'\D'l 31u -2u' -.sp -1 -.sp 253u -\h'2023u'\D'l 506u -253u' -.sp -1 -.sp 1138u -\h'1897u'\D'l 1u -30u'\D'l 8u 17u'\D'l 19u 0u'\D'l -28u 13u' -.sp -1 -.sp -1306u -\h'2656u'\D'l -759u 1306u' -.sp -1 -\h'1771u'\D'l -16u -27u'\D'l 16u 11u'\D'l 15u -11u'\D'l -15u 27u' -.sp -1 -.sp -926u -\h'1771u'\D'l 0u 926u' -.sp -1 -\D't 1u' -.sp -1 -.sp -253u -\h'1233u'\D'l 0u 263u'\D'l 1149u 0u'\D'l 0u -263u'\D'l -1149u 0u' -.sp -1 -.sp 2332u -\h'220u'\D'c 581u' -.sp -1 -.sp 422u -\h'1501u'\D'c 581u' -.sp -1 -.sp -585u -\h'2575u'\D'c 581u' -.sp -1 -.sp -1242u -\h'2496u'\D'c 581u' -.sp -1 -.sp 89u -\h'452u'\D'c 581u' -.sp -1 -.sp 500u -\h'1474u'\D'c 581u' -.sp -1 -\D's 4u' -.sp -1 -.sp -1242u -\h'1349u'\D'l -374u 526u' -.sp -1 -.sp 511u -\h'986u'\D'l 3u -31u'\D'l 6u 18u'\D'l 19u 1u'\D'l -28u 12u' -.sp -1 -.sp -517u -\h'2334u'\D'l 327u 390u' -.sp -1 -.sp 390u -\h'2661u'\D'l -29u -9u'\D'l 18u -3u'\D'l 5u -18u'\D'l 6u 30u' -.sp -1 -.sp 642u -\h'1981u'\D'l 517u -268u' -.sp -1 -.sp -273u -\h'2503u'\D'l -12u 27u'\D'l -1u -18u'\D'l -18u -6u'\D'l 31u -3u' -.sp -1 -.sp 289u -\h'785u'\D'l 764u 1222u' -.sp -1 -.sp 1222u -\h'1560u'\D'l -29u -12u'\D'l 19u -1u'\D'l 7u -18u'\D'l 3u 31u' -.sp -1 -.sp -311u -\h'796u'\D'l 753u -485u' -.sp -1 -.sp -490u -\h'1555u'\D'l -13u 28u'\D'l 0u -19u'\D'l -18u -7u'\D'l 31u -2u' -.sp -1 -.sp -184u -\h'1460u'\D'l -791u 516u' -.sp -1 -.sp 506u -\h'675u'\D'l 13u -28u'\D'l 0u 19u'\D'l 17u 7u'\D'l -30u 2u' -.sp -1 -.sp -95u -\h'2666u'\D'l -632u -295u' -.sp -1 -.sp -311u -\h'2029u'\D'l 30u -2u'\D'l -16u 9u'\D'l 1u 19u'\D'l -15u -26u' -.sp -1 -.sp -448u -\h'2714u'\D'l -749u 1307u' -.sp -1 -.sp 1307u -\h'1976u'\D'l 0u -31u'\D'l 8u 17u'\D'l 19u -1u'\D'l -27u 15u' -.sp -1 -.sp 347u -\h'2071u'\D'l 284u 143u' -.sp -1 -.sp 143u -\h'2366u'\D'l -31u 4u'\D'l 16u -11u'\D'l -3u -18u'\D'l 18u 25u' -.sp -1 -.sp -548u -\h'2903u'\D'l 32u 495u' -.sp -1 -.sp 10u -\h'2908u'\D'l 18u 26u'\D'l -17u -10u'\D'l -15u 11u'\D'l 14u -27u' -.sp -1 -.sp -153u -\h'2598u'\D'l -543u 290u' -.sp -1 -.sp 285u -\h'2071u'\D'l 13u -28u'\D'l 0u 19u'\D'l 17u 7u'\D'l -30u 2u' -.sp -1 -.sp -785u -\h'1728u'\D'l 11u 658u' -.sp -1 -.sp 643u -\h'1739u'\D'l -16u -27u'\D'l 16u 11u'\D'l 16u -11u'\D'l -16u 27u' -.sp -1 -\D's -1u'\D't 3u' -.sp -1 -.sp 174u -\h'469u'\D'l -68u 316u' -.sp -1 -\h'475u'\D'l 10u 28u'\D'l -14u -13u'\D'l -17u 7u'\D'l 21u -22u' -.sp -1 -.sp -1938u -\h'2592u'\D'l -337u -416u' -.sp -1 -.sp -411u -\h'2255u'\D'l 30u 7u'\D'l -19u 4u'\D'l -3u 19u'\D'l -8u -30u' -.sp -1 -.sp 1532u -\h'1802u'\D'l 11u 632u' -.sp -1 -.sp 622u -\h'1818u'\D'l -18u -25u'\D'l 17u 9u'\D'l 15u -12u'\D'l -14u 28u' -.sp -1 -.sp -401u -\h'2603u'\D'l -632u -279u' -.sp -1 -.sp -284u -\h'1976u'\D'l 31u 2u'\D'l -18u 7u'\D'l 0u 19u'\D'l -13u -28u' -.sp -1 -.sp 1201u -\h'2829u'\D'l -10u -480u' -.sp -1 -.sp -474u -\h'2814u'\D'l 20u 23u'\D'l -18u -8u'\D'l -13u 13u'\D'l 11u -28u' -.sp -1 -.sp -116u -\h'2640u'\D'l -538u 311u' -.sp -1 -.sp 311u -\h'2108u'\D'l 14u -28u'\D'l -1u 19u'\D'l 17u 8u'\D'l -30u 1u' -.sp -1 -.sp 532u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fB Figure \n+(FG\fR: Control flow (solid) and data flow (broken) -.ce -among the parts of the transport implementation. -.)z diff --git a/share/doc/iso/wisc/figs/unix_ipc.grn b/share/doc/iso/wisc/figs/unix_ipc.grn deleted file mode 100644 index 7c06d274b7e3..000000000000 --- a/share/doc/iso/wisc/figs/unix_ipc.grn +++ /dev/null @@ -1,18 +0,0 @@ -.(z L -.GS C -width 6.0 -high 7.0 -1 8 -2 10 -3 12 -4 14 -sc 0.3 -narrow 1 -medium 3 -thick 7 -pointscale off -file unix_ipc.gsrc -.GE -.ce -\fBFigure \n+(FG\fR: IPC in 4.2 Unix -.)z diff --git a/share/doc/iso/wisc/figs/unix_ipc.gsrc b/share/doc/iso/wisc/figs/unix_ipc.gsrc deleted file mode 100644 index cafe972a399f..000000000000 --- a/share/doc/iso/wisc/figs/unix_ipc.gsrc +++ /dev/null @@ -1,1041 +0,0 @@ -gremlinfile -0 384.00 408.00 -3 -384.00 380.00 -387.00 375.00 -384.00 377.00 -381.00 375.00 -384.00 380.00 --1.00 -1.00 -6 0 -0 - 3 -392.00 612.00 -608.00 612.00 --1.00 -1.00 -6 0 -0 - 3 -248.00 612.00 -32.00 612.00 --1.00 -1.00 -6 0 -0 - 4 -176.00 692.00 -176.00 740.00 -176.00 644.00 -176.00 740.00 -224.00 692.00 -128.00 692.00 --1.00 -1.00 -6 0 -0 - 4 -160.00 532.00 -160.00 580.00 -160.00 484.00 -160.00 580.00 -208.00 532.00 -112.00 532.00 --1.00 -1.00 -6 0 -0 - 4 -528.00 340.00 -528.00 388.00 -528.00 292.00 -528.00 388.00 -576.00 340.00 -480.00 340.00 --1.00 -1.00 -6 0 -0 - 4 -544.00 124.00 -544.00 188.00 -544.00 60.00 -544.00 188.00 -608.00 124.00 -480.00 124.00 --1.00 -1.00 -6 0 -0 - 4 -320.00 604.00 -320.00 676.00 -320.00 532.00 -320.00 676.00 -392.00 604.00 -248.00 604.00 --1.00 -1.00 -6 0 -0 - 0 -144.00 676.00 -144.00 692.00 -144.00 692.00 -144.00 692.00 --1.00 -1.00 -3 3 -7 program - 0 -152.00 700.00 -152.00 716.00 -152.00 716.00 -152.00 716.00 --1.00 -1.00 -3 3 -4 user - 0 -288.00 628.00 -288.00 644.00 -288.00 644.00 -288.00 644.00 --1.00 -1.00 -3 3 -9 C library - 0 -280.00 572.00 -280.00 588.00 -280.00 588.00 -280.00 588.00 --1.00 -1.00 -3 3 -12 system calls - 0 -144.00 532.00 -144.00 548.00 -144.00 548.00 -144.00 548.00 --1.00 -1.00 -3 3 -5 clock - 0 -512.00 132.00 -512.00 148.00 -512.00 148.00 -512.00 148.00 --1.00 -1.00 -3 3 -8 network - 0 -512.00 108.00 -512.00 124.00 -512.00 124.00 -512.00 124.00 --1.00 -1.00 -3 3 -9 interface - 0 -512.00 84.00 -512.00 100.00 -512.00 100.00 -512.00 100.00 --1.00 -1.00 -3 3 -7 drivers - 0 -32.00 628.00 -32.00 644.00 -32.00 644.00 -32.00 644.00 --1.00 -1.00 -2 3 -4 user - 0 -32.00 580.00 -32.00 596.00 -32.00 596.00 -32.00 596.00 --1.00 -1.00 -2 3 -6 kernel - 3 -248.00 612.00 -392.00 612.00 --1.00 -1.00 -1 0 -0 - 0 -488.00 692.00 -488.00 708.00 -488.00 708.00 -488.00 708.00 --1.00 -1.00 -3 3 -7 network - 0 -480.00 668.00 -480.00 684.00 -480.00 684.00 -480.00 684.00 --1.00 -1.00 -3 3 -10 management - 4 -528.00 692.00 -528.00 756.00 -528.00 628.00 -528.00 756.00 -592.00 692.00 -464.00 692.00 --1.00 -1.00 -6 0 -0 - 4 -528.00 500.00 -528.00 548.00 -528.00 452.00 -528.00 548.00 -576.00 500.00 -480.00 500.00 --1.00 -1.00 -6 0 -0 - 0 -504.00 508.00 -504.00 524.00 -504.00 524.00 -504.00 524.00 --1.00 -1.00 -3 3 -7 routing - 0 -504.00 484.00 -504.00 500.00 -504.00 500.00 -504.00 500.00 --1.00 -1.00 -3 3 -6 tables - 4 -320.00 436.00 -320.00 516.00 -320.00 356.00 -320.00 516.00 -400.00 436.00 -240.00 436.00 --1.00 -1.00 -6 0 -0 - 0 -288.00 420.00 -288.00 436.00 -288.00 436.00 -288.00 436.00 --1.00 -1.00 -3 3 -7 sockets - 3 -80.00 356.00 -80.00 100.00 -208.00 100.00 -208.00 356.00 -80.00 356.00 --1.00 -1.00 -6 0 -0 - 0 -112.00 292.00 -112.00 308.00 -112.00 308.00 -112.00 308.00 --1.00 -1.00 -3 3 -9 transport - 0 -112.00 244.00 -112.00 260.00 -112.00 260.00 -112.00 260.00 --1.00 -1.00 -3 3 -8 protocol - 0 -112.00 188.00 -112.00 204.00 -112.00 204.00 -112.00 204.00 --1.00 -1.00 -3 3 -6 switch - 4 -448.00 228.00 -448.00 276.00 -448.00 180.00 -448.00 276.00 -496.00 228.00 -400.00 228.00 --1.00 -1.00 -6 0 -0 - 4 -288.00 292.00 -288.00 340.00 -288.00 244.00 -288.00 340.00 -336.00 292.00 -240.00 292.00 --1.00 -1.00 -6 0 -0 - 4 -288.00 132.00 -288.00 180.00 -288.00 84.00 -288.00 180.00 -336.00 132.00 -240.00 132.00 --1.00 -1.00 -6 0 -0 - 0 -504.00 340.00 -504.00 356.00 -504.00 356.00 -504.00 356.00 --1.00 -1.00 -3 3 -5 mbufs - 0 -264.00 292.00 -264.00 308.00 -264.00 308.00 -264.00 308.00 --1.00 -1.00 -3 3 -7 proto 1 - 0 -264.00 124.00 -264.00 140.00 -264.00 140.00 -264.00 140.00 --1.00 -1.00 -3 3 -7 proto n - 3 -208.00 660.00 -256.00 636.00 --1.00 -1.00 -6 0 -0 - 3 -480.00 652.00 -384.00 628.00 --1.00 -1.00 -6 0 -0 - 3 -384.00 564.00 -480.00 516.00 --1.00 -1.00 -6 0 -0 - 3 -304.00 532.00 -304.00 516.00 --1.00 -1.00 -6 0 -0 - 5 -240.00 420.00 -176.00 420.00 -144.00 404.00 -128.00 372.00 -128.00 356.00 --1.00 -1.00 -6 0 -0 - 3 -216.00 292.00 -240.00 292.00 --1.00 -1.00 -6 0 -0 - 3 -216.00 132.00 -240.00 132.00 --1.00 -1.00 -6 0 -0 - 3 -336.00 292.00 -368.00 292.00 --1.00 -1.00 -6 0 -0 - 3 -336.00 132.00 -368.00 132.00 --1.00 -1.00 -6 0 -0 - 3 -368.00 132.00 -368.00 324.00 --1.00 -1.00 -6 0 -0 - 3 -512.00 180.00 -488.00 196.00 --1.00 -1.00 -6 0 -0 - 5 -368.00 324.00 -368.00 356.00 -368.00 364.00 --1.00 -1.00 -6 0 -0 - 3 -328.00 268.00 -400.00 244.00 --1.00 -1.00 -6 0 -0 - 3 -328.00 164.00 -400.00 204.00 --1.00 -1.00 -6 0 -0 - 3 -208.00 660.00 -213.81 660.45 -210.68 658.66 -211.13 655.08 -208.00 660.00 --1.00 -1.00 -6 0 -0 - 3 -256.00 636.00 -250.34 637.41 -253.88 638.12 -254.59 641.66 -256.00 636.00 --1.00 -1.00 -6 0 -0 - 3 -384.00 628.00 -389.00 631.00 -387.00 628.00 -389.00 625.00 -384.00 628.00 --1.00 -1.00 -6 0 -0 - 3 -480.00 652.00 -475.00 649.00 -477.00 652.00 -475.00 655.00 -480.00 652.00 --1.00 -1.00 -6 0 -0 - 3 -384.00 564.00 -389.81 564.45 -386.68 562.66 -387.13 559.08 -384.00 564.00 --1.00 -1.00 -6 0 -0 - 3 -480.00 516.00 -475.00 513.00 -477.00 516.00 -475.00 519.00 -480.00 516.00 --1.00 -1.00 -6 0 -0 - 3 -304.00 532.00 -307.00 527.00 -304.00 529.00 -301.00 527.00 -304.00 532.00 --1.00 -1.00 -6 0 -0 - 3 -304.00 516.00 -301.00 521.00 -304.00 519.00 -307.00 521.00 -304.00 516.00 --1.00 -1.00 -6 0 -0 - 3 -128.00 356.00 -125.00 361.00 -128.00 359.00 -131.00 361.00 -128.00 356.00 --1.00 -1.00 -6 0 -0 - 3 -240.00 292.00 -235.00 289.00 -237.00 292.00 -235.00 295.00 -240.00 292.00 --1.00 -1.00 -6 0 -0 - 3 -240.00 132.00 -235.00 129.00 -237.00 132.00 -235.00 135.00 -240.00 132.00 --1.00 -1.00 -6 0 -0 - 3 -368.00 364.00 -371.00 359.00 -368.00 361.00 -365.00 359.00 -368.00 364.00 --1.00 -1.00 -6 0 -0 - 3 -328.00 268.00 -333.81 268.45 -330.68 266.66 -331.13 263.08 -328.00 268.00 --1.00 -1.00 -6 0 -0 - 3 -400.00 244.00 -395.00 241.00 -397.00 244.00 -395.00 247.00 -400.00 244.00 --1.00 -1.00 -6 0 -0 - 3 -400.00 204.00 -398.59 198.34 -397.88 201.88 -394.34 202.59 -400.00 204.00 --1.00 -1.00 -6 0 -0 - 3 -328.00 164.00 -331.13 168.92 -330.68 165.34 -333.81 163.55 -328.00 164.00 --1.00 -1.00 -6 0 -0 - 3 -488.00 196.00 -493.66 194.59 -490.12 193.88 -489.41 190.34 -488.00 196.00 --1.00 -1.00 -6 0 -0 - 3 -512.00 180.00 -506.34 181.41 -509.88 182.12 -510.59 185.66 -512.00 180.00 --1.00 -1.00 -6 0 -0 - 0 -416.00 228.00 -416.00 244.00 -416.00 244.00 -416.00 244.00 --1.00 -1.00 -3 3 -6 DoD IP - 0 -368.00 20.00 -368.00 36.00 -368.00 36.00 -368.00 36.00 --1.00 -1.00 -2 3 -12 control flow - 0 -144.00 20.00 -144.00 36.00 -144.00 36.00 -144.00 36.00 --1.00 -1.00 -2 3 -9 data flow - 3 -304.00 36.00 -352.00 36.00 --1.00 -1.00 -6 0 -0 - 3 -80.00 36.00 -128.00 36.00 --1.00 -1.00 -1 0 -0 - 3 -224.00 676.00 -264.00 652.00 --1.00 -1.00 -1 0 -0 - 3 -464.00 676.00 -384.00 644.00 --1.00 -1.00 -1 0 -0 - 3 -392.00 580.00 -488.00 532.00 --1.00 -1.00 -1 0 -0 - 3 -200.00 500.00 -248.00 468.00 --1.00 -1.00 -1 0 -0 - 5 -120.00 500.00 -48.00 372.00 -48.00 276.00 -48.00 196.00 -48.00 84.00 -64.00 68.00 -144.00 68.00 -480.00 68.00 -496.00 76.00 --1.00 -1.00 -1 0 -0 - 3 -152.00 68.00 -152.00 100.00 --1.00 -1.00 -1 0 -0 - 3 -432.00 52.00 -432.00 180.00 --1.00 -1.00 -1 0 -0 - 3 -216.00 116.00 -240.00 116.00 --1.00 -1.00 -1 0 -0 - 3 -216.00 276.00 -240.00 276.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 276.00 -384.00 276.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 116.00 -384.00 116.00 --1.00 -1.00 -1 0 -0 - 3 -384.00 116.00 -384.00 388.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 148.00 -408.00 188.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 252.00 -400.00 228.00 --1.00 -1.00 -1 0 -0 - 3 -472.00 180.00 -488.00 164.00 --1.00 -1.00 -1 0 -0 - 3 -504.00 300.00 -480.00 268.00 --1.00 -1.00 -1 0 -0 - 3 -480.00 340.00 -328.00 324.00 --1.00 -1.00 -1 0 -0 - 3 -400.00 420.00 -488.00 372.00 --1.00 -1.00 -1 0 -0 - 3 -544.00 292.00 -544.00 188.00 --1.00 -1.00 -1 0 -0 - 3 -528.00 452.00 -528.00 388.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 532.00 -336.00 516.00 --1.00 -1.00 -1 0 -0 - 3 -224.00 676.00 -229.66 674.59 -226.12 673.88 -225.41 670.34 -224.00 676.00 --1.00 -1.00 -1 0 -0 - 3 -264.00 652.00 -258.34 653.41 -261.88 654.12 -262.59 657.66 -264.00 652.00 --1.00 -1.00 -1 0 -0 - 3 -384.00 644.00 -387.13 648.92 -386.68 645.34 -389.81 643.55 -384.00 644.00 --1.00 -1.00 -1 0 -0 - 3 -464.00 676.00 -462.59 670.34 -461.88 673.88 -458.34 674.59 -464.00 676.00 --1.00 -1.00 -1 0 -0 - 3 -392.00 580.00 -397.81 580.45 -394.68 578.66 -395.13 575.08 -392.00 580.00 --1.00 -1.00 -1 0 -0 - 3 -488.00 532.00 -482.19 531.55 -485.32 533.34 -484.87 536.92 -488.00 532.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 532.00 -339.00 527.00 -336.00 529.00 -333.00 527.00 -336.00 532.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 516.00 -333.00 521.00 -336.00 519.00 -339.00 521.00 -336.00 516.00 --1.00 -1.00 -1 0 -0 - 3 -248.00 468.00 -242.19 467.55 -245.32 469.34 -244.87 472.92 -248.00 468.00 --1.00 -1.00 -1 0 -0 - 3 -152.00 100.00 -152.00 84.00 --1.00 -1.00 -1 0 -0 - 3 -240.00 116.00 -235.00 113.00 -237.00 116.00 -235.00 119.00 -240.00 116.00 --1.00 -1.00 -1 0 -0 - 3 -152.00 100.00 -155.00 95.00 -152.00 97.00 -149.00 95.00 -152.00 100.00 --1.00 -1.00 -1 0 -0 - 3 -432.00 180.00 -435.00 175.00 -432.00 177.00 -429.00 175.00 -432.00 180.00 --1.00 -1.00 -1 0 -0 - 3 -472.00 180.00 -477.66 178.59 -474.12 177.88 -473.41 174.34 -472.00 180.00 --1.00 -1.00 -1 0 -0 - 3 -496.00 156.00 -490.34 157.41 -493.88 158.12 -494.59 161.66 -496.00 156.00 --1.00 -1.00 -1 0 -0 - 3 -496.00 76.00 -494.59 70.34 -493.88 73.88 -490.34 74.59 -496.00 76.00 --1.00 -1.00 -1 0 -0 - 3 -408.00 188.00 -406.59 182.34 -405.88 185.88 -402.34 186.59 -408.00 188.00 --1.00 -1.00 -1 0 -0 - 3 -336.00 148.00 -339.13 152.92 -338.68 149.34 -341.81 147.55 -336.00 148.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 252.00 -333.81 252.45 -330.68 250.66 -331.13 247.08 -328.00 252.00 --1.00 -1.00 -1 0 -0 - 3 -400.00 228.00 -395.00 225.00 -397.00 228.00 -395.00 231.00 -400.00 228.00 --1.00 -1.00 -1 0 -0 - 3 -544.00 292.00 -547.00 287.00 -544.00 289.00 -541.00 287.00 -544.00 292.00 --1.00 -1.00 -1 0 -0 - 3 -504.00 300.00 -502.59 294.34 -501.88 297.88 -498.34 298.59 -504.00 300.00 --1.00 -1.00 -1 0 -0 - 3 -480.00 268.00 -481.41 273.66 -482.12 270.12 -485.66 269.41 -480.00 268.00 --1.00 -1.00 -1 0 -0 - 3 -400.00 420.00 -405.81 420.45 -402.68 418.66 -403.13 415.08 -400.00 420.00 --1.00 -1.00 -1 0 -0 - 3 -488.00 372.00 -482.19 371.55 -485.32 373.34 -484.87 376.92 -488.00 372.00 --1.00 -1.00 -1 0 -0 - 3 -528.00 452.00 -531.00 447.00 -528.00 449.00 -525.00 447.00 -528.00 452.00 --1.00 -1.00 -1 0 -0 - 3 -528.00 388.00 -525.00 393.00 -528.00 391.00 -531.00 393.00 -528.00 388.00 --1.00 -1.00 -1 0 -0 - 3 -480.00 340.00 -475.00 337.00 -477.00 340.00 -475.00 343.00 -480.00 340.00 --1.00 -1.00 -1 0 -0 - 3 -328.00 324.00 -333.00 327.00 -331.00 324.00 -333.00 321.00 -328.00 324.00 --1.00 -1.00 -1 0 -0 - 5 -240.00 404.00 -176.00 404.00 -160.00 388.00 -152.00 372.00 -152.00 356.00 --1.00 -1.00 -1 0 -0 - 3 -152.00 356.00 -149.00 361.00 -152.00 359.00 -155.00 361.00 -152.00 356.00 --1.00 -1.00 -1 0 -0 - 5 -480.00 324.00 -448.00 308.00 -416.00 292.00 -400.00 276.00 -336.00 212.00 -320.00 196.00 -312.00 180.00 --1.00 -1.00 -1 0 -0 - 3 -312.00 180.00 -311.55 185.81 -313.34 182.68 -316.92 183.13 -312.00 180.00 --1.00 -1.00 -1 0 -0 - 3 -480.00 324.00 -476.87 319.08 -477.32 322.66 -474.19 324.45 -480.00 324.00 --1.00 -1.00 -1 0 -0 - -1 diff --git a/share/doc/iso/wisc/figs/unix_ipc.nr b/share/doc/iso/wisc/figs/unix_ipc.nr deleted file mode 100644 index de24796c783a..000000000000 --- a/share/doc/iso/wisc/figs/unix_ipc.nr +++ /dev/null @@ -1,499 +0,0 @@ -.(z L -.br -.nr g1 3155u -.nr g2 4031u -.GS C -.nr g3 \n(.f -.nr g4 \n(.s -\0 -.sp -1 -\D's 4u'\D't 1u' -.sp -1 -.sp 2366u -\h'2454u'\D'l -17u 27u'\D'l 2u -20u'\D'l -17u -10u'\D'l 32u 3u' -.sp -1 -.sp 789u -\h'1534u'\D'l -3u -32u'\D'l 10u 17u'\D'l 20u -2u'\D'l -27u 17u' -.sp -1 -.sp -789u -\h'2454u'\D'g -175u 88u -176u 87u -87u 88u -351u 350u -87u 88u -44u 88u' -.sp -1 -.sp -175u -\h'657u'\D'l -16u -28u'\D'l 16u 11u'\D'l 17u -11u'\D'l -17u 28u' -.sp -1 -.sp -263u -\h'1139u'\D'g -350u 0u -88u 87u -44u 88u 0u 88u' -.sp -1 -.sp 438u -\h'1621u'\D'l 28u -17u'\D'l -11u 17u'\D'l 11u 16u'\D'l -28u -16u' -.sp -1 -.sp -88u -\h'2454u'\D'l -27u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 27u 16u' -.sp -1 -.sp -263u -\h'2717u'\D'l -16u -27u'\D'l 16u 11u'\D'l 16u -11u'\D'l -16u 27u' -.sp -1 -.sp -350u -\h'2717u'\D'l 16u 27u'\D'l -16u -11u'\D'l -16u 11u'\D'l 16u -27u' -.sp -1 -.sp 438u -\h'2498u'\D'l -32u 2u'\D'l 17u -9u'\D'l -2u -20u'\D'l 17u 27u' -.sp -1 -.sp -263u -\h'2016u'\D'l 32u -2u'\D'l -18u 9u'\D'l 3u 20u'\D'l -17u -27u' -.sp -1 -.sp 833u -\h'2454u'\D'l 8u -31u'\D'l 4u 19u'\D'l 19u 4u'\D'l -31u 8u' -.sp -1 -.sp -176u -\h'2586u'\D'l -8u 31u'\D'l -4u -19u'\D'l -19u -4u'\D'l 31u -8u' -.sp -1 -.sp 44u -\h'2805u'\D'l 16u 28u'\D'l -16u -11u'\D'l -17u 11u'\D'l 17u -28u' -.sp -1 -.sp 351u -\h'2016u'\D'l -28u 16u'\D'l 11u -16u'\D'l -11u -17u'\D'l 28u 17u' -.sp -1 -.sp -132u -\h'1621u'\D'l 32u -2u'\D'l -17u 10u'\D'l 3u 19u'\D'l -18u -27u' -.sp -1 -.sp 570u -\h'1665u'\D'l 17u -27u'\D'l -2u 20u'\D'l 17u 10u'\D'l -32u -3u' -.sp -1 -.sp -219u -\h'2060u'\D'l -8u 31u'\D'l -4u -19u'\D'l -19u -4u'\D'l 31u -8u' -.sp -1 -.sp 614u -\h'2542u'\D'l -8u 31u'\D'l -4u -20u'\D'l -19u -4u'\D'l 31u -7u' -.sp -1 -.sp -439u -\h'2542u'\D'l -31u -7u'\D'l 19u -4u'\D'l 4u -20u'\D'l 8u 31u' -.sp -1 -.sp -131u -\h'2410u'\D'l 31u 8u'\D'l -19u 3u'\D'l -4u 20u'\D'l -8u -31u' -.sp -1 -\h'2191u'\D'l 17u 27u'\D'l -17u -11u'\D'l -16u 11u'\D'l 16u -27u' -.sp -1 -.sp 438u -\h'657u'\D'l 17u 27u'\D'l -17u -10u'\D'l -16u 10u'\D'l 16u -27u' -.sp -1 -.sp -88u -\h'1139u'\D'l -27u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 27u 16u' -.sp -1 -.sp 88u -\h'657u'\D'l 0u 88u' -.sp -1 -.sp -2016u -\h'1183u'\D'l -32u 3u'\D'l 17u -10u'\D'l -2u -20u'\D'l 17u 27u' -.sp -1 -.sp -262u -\h'1665u'\D'l -16u -27u'\D'l 16u 11u'\D'l 17u -11u'\D'l -17u 27u' -.sp -1 -.sp -88u -\h'1665u'\D'l 17u 28u'\D'l -17u -11u'\D'l -16u 11u'\D'l 16u -28u' -.sp -1 -\h'2498u'\D'l -32u 3u'\D'l 17u -10u'\D'l -2u -19u'\D'l 17u 26u' -.sp -1 -.sp -262u -\h'1972u'\D'l 32u -3u'\D'l -17u 10u'\D'l 2u 19u'\D'l -17u -26u' -.sp -1 -.sp -526u -\h'2366u'\D'l -7u 31u'\D'l -4u -20u'\D'l -20u -4u'\D'l 31u -7u' -.sp -1 -.sp 175u -\h'1928u'\D'l 17u -27u'\D'l -2u 20u'\D'l 17u 9u'\D'l -32u -2u' -.sp -1 -.sp -44u -\h'1271u'\D'l -31u -8u'\D'l 19u -4u'\D'l 4u -19u'\D'l 8u 31u' -.sp -1 -.sp -131u -\h'1052u'\D'l 31u 7u'\D'l -20u 4u'\D'l -4u 20u'\D'l -7u -31u' -.sp -1 -.sp 788u -\h'1665u'\D'l 0u 88u' -.sp -1 -.sp 438u -\h'2717u'\D'l 0u 350u' -.sp -1 -.sp 876u -\h'2805u'\D'l 0u 570u' -.sp -1 -.sp -701u -\h'2016u'\D'l 482u 263u' -.sp -1 -.sp 438u -\h'2454u'\D'l -833u 88u' -.sp -1 -.sp 219u -\h'2586u'\D'l -132u 176u' -.sp -1 -.sp 658u -\h'2410u'\D'l 88u 87u' -.sp -1 -.sp -395u -\h'1621u'\D'l 395u 132u' -.sp -1 -.sp 570u -\h'1665u'\D'l 395u -219u' -.sp -1 -.sp 175u -\h'1928u'\D'l 0u -1490u' -.sp -1 -\h'1665u'\D'l 263u 0u' -.sp -1 -.sp -876u -\h'1665u'\D'l 263u 0u' -.sp -1 -\h'1008u'\D'l 131u 0u' -.sp -1 -.sp 876u -\h'1008u'\D'l 131u 0u' -.sp -1 -.sp 351u -\h'2191u'\D'l 0u -701u' -.sp -1 -.sp -88u -\h'657u'\D'l 0u -175u' -.sp -1 -.sp -2366u -\h'482u'\D'g -395u 701u 0u 526u 0u 438u 0u 614u 88u 87u 438u 0u 1841u 0u 88u -43u' -.sp -1 -\h'920u'\D'l 263u 175u' -.sp -1 -.sp -437u -\h'1972u'\D'l 526u 262u' -.sp -1 -.sp -526u -\h'2366u'\D'l -438u 175u' -.sp -1 -\h'1052u'\D'l 219u 131u' -.sp -1 -.sp 3505u -\h'263u'\D'l 263u 0u' -.sp -1 -\D's -1u'\D't 3u' -.sp -1 -\h'1490u'\D'l 263u 0u' -.sp -1 -.ft I -.ps 12 -.nr g8 \n(.d -.ds g9 "data flow -.sp 87u -\h'613u'\&\*(g9 -.sp |\n(g8u -.ft I -.ps 12 -.nr g8 \n(.d -.ds g9 "control flow -.sp 87u -\h'1840u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "DoD IP -.sp -1052u -\h'2103u'\&\*(g9 -.sp |\n(g8u -.sp -789u -\h'2629u'\D'l -31u -8u'\D'l 20u -4u'\D'l 4u -19u'\D'l 7u 31u' -.sp -1 -.sp -88u -\h'2498u'\D'l 31u 8u'\D'l -19u 4u'\D'l -4u 19u'\D'l -8u -31u' -.sp -1 -.sp 175u -\h'1621u'\D'l 18u -26u'\D'l -3u 19u'\D'l 17u 10u'\D'l -32u -3u' -.sp -1 -.sp -219u -\h'2016u'\D'l -8u 31u'\D'l -4u -19u'\D'l -19u -4u'\D'l 31u -8u' -.sp -1 -.sp -219u -\h'2016u'\D'l -28u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 28u 16u' -.sp -1 -.sp -131u -\h'1621u'\D'l 32u -3u'\D'l -17u 10u'\D'l 3u 20u'\D'l -18u -27u' -.sp -1 -.sp -526u -\h'1840u'\D'l 17u 27u'\D'l -17u -11u'\D'l -16u 11u'\D'l 16u -27u' -.sp -1 -.sp 1271u -\h'1139u'\D'l -27u 16u'\D'l 11u -16u'\D'l -11u -17u'\D'l 27u 17u' -.sp -1 -.sp -877u -\h'1139u'\D'l -27u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 27u 16u' -.sp -1 -.sp -350u -\h'526u'\D'l -17u -28u'\D'l 17u 11u'\D'l 16u -11u'\D'l -16u 28u' -.sp -1 -.sp -876u -\h'1490u'\D'l -17u -27u'\D'l 17u 11u'\D'l 16u -11u'\D'l -16u 27u' -.sp -1 -.sp -88u -\h'1490u'\D'l 16u 28u'\D'l -16u -11u'\D'l -17u 11u'\D'l 17u -28u' -.sp -1 -.sp 88u -\h'2454u'\D'l -27u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 27u 16u' -.sp -1 -.sp -263u -\h'1928u'\D'l 32u -2u'\D'l -17u 9u'\D'l 2u 20u'\D'l -17u -27u' -.sp -1 -.sp -482u -\h'2454u'\D'l -27u 17u'\D'l 11u -17u'\D'l -11u -16u'\D'l 27u 16u' -.sp -1 -.sp 132u -\h'1928u'\D'l 28u -17u'\D'l -11u 17u'\D'l 11u 16u'\D'l -28u -16u' -.sp -1 -.sp -44u -\h'1227u'\D'l -31u -8u'\D'l 19u -4u'\D'l 4u -19u'\D'l 8u 31u' -.sp -1 -.sp -132u -\h'964u'\D'l 32u -2u'\D'l -17u 10u'\D'l 2u 19u'\D'l -17u -27u' -.sp -1 -.sp 2716u -\h'1621u'\D'l 395u -219u' -.sp -1 -.sp -569u -\h'1621u'\D'l 395u 131u' -.sp -1 -.sp -307u -\h'1840u'\D'g 0u -175u 0u -44u' -.sp -1 -.sp 789u -\h'2629u'\D'l -131u -88u' -.sp -1 -.sp 263u -\h'1840u'\D'l 0u -1052u' -.sp -1 -\h'1665u'\D'l 175u 0u' -.sp -1 -.sp -877u -\h'1665u'\D'l 175u 0u' -.sp -1 -.sp 877u -\h'1008u'\D'l 131u 0u' -.sp -1 -.sp -877u -\h'1008u'\D'l 131u 0u' -.sp -1 -.sp -701u -\h'1139u'\D'g -350u 0u -176u 88u -87u 175u 0u 88u' -.sp -1 -.sp -613u -\h'1490u'\D'l 0u 88u' -.sp -1 -.sp -175u -\h'1928u'\D'l 526u 263u' -.sp -1 -.sp -482u -\h'2454u'\D'l -526u 132u' -.sp -1 -.sp -44u -\h'964u'\D'l 263u 132u' -.sp -1 -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "proto n -.sp 2936u -\h'1271u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "proto 1 -.sp 2015u -\h'1271u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "mbufs -.sp 1752u -\h'2586u'\&\*(g9 -.sp |\n(g8u -.sp 2892u -\h'1139u'\D'c 525u' -.sp -1 -.sp -877u -\h'1139u'\D'c 525u' -.sp -1 -.sp 351u -\h'2016u'\D'c 525u' -.sp -1 -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "switch -.sp 219u -\h'438u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "protocol -.sp -88u -\h'438u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "transport -.sp -351u -\h'438u'\&\*(g9 -.sp |\n(g8u -.sp -701u -\h'263u'\D'l 0u 1402u'\D'l 701u 0u'\D'l 0u -1402u'\D'l -701u 0u' -.sp -1 -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "sockets -.sp -351u -\h'1402u'\&\*(g9 -.sp |\n(g8u -.sp -439u -\h'1139u'\D'c 876u' -.sp -1 -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "tables -.sp -263u -\h'2586u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "routing -.sp -394u -\h'2586u'\&\*(g9 -.sp |\n(g8u -.sp -350u -\h'2454u'\D'c 525u' -.sp -1 -.sp -1051u -\h'2366u'\D'c 701u' -.sp -1 -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "management -.sp 131u -\h'2454u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "network -\h'2498u'\&\*(g9 -.sp |\n(g8u -\D's 4u'\D't 1u' -.sp -1 -.sp 438u -\h'1183u'\D'l 789u 0u' -.sp -1 -.ft I -.ps 12 -.nr g8 \n(.d -.ds g9 "kernel -.sp 176u -\&\*(g9 -.sp |\n(g8u -.ft I -.ps 12 -.nr g8 \n(.d -.ds g9 "user -.sp -87u -\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "drivers -.sp 2892u -\h'2629u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "interface -.sp 2760u -\h'2629u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "network -.sp 2629u -\h'2629u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "clock -.sp 438u -\h'613u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "system calls -.sp 219u -\h'1358u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "C library -.sp -87u -\h'1402u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "user -.sp -482u -\h'657u'\&\*(g9 -.sp |\n(g8u -.ft B -.ps 12 -.nr g8 \n(.d -.ds g9 "program -.sp -350u -\h'613u'\&\*(g9 -.sp |\n(g8u -\D's -1u'\D't 3u' -.sp -1 -.sp 44u -\h'1183u'\D'c 788u' -.sp -1 -.sp 2629u -\h'2454u'\D'c 701u' -.sp -1 -.sp -1184u -\h'2454u'\D'c 525u' -.sp -1 -.sp -1051u -\h'438u'\D'c 525u' -.sp -1 -.sp -876u -\h'526u'\D'c 525u' -.sp -1 -.sp 438u -\h'1183u'\D'l -1183u 0u' -.sp -1 -\h'1972u'\D'l 1183u 0u' -.sp -1 -.sp 1270u -\h'1928u'\D'l 17u 28u'\D'l -17u -11u'\D'l -16u 11u'\D'l 16u -28u' -.sp -1 -.sp 1972u -\D't 3u'\D's -1u' -.br -.ft \n(g3 -.ps \n(g4 -.GE -.ce -\fBFigure \n+(FG\fR: IPC in 4.2 Unix -.)z diff --git a/share/doc/iso/wisc/intro.nr b/share/doc/iso/wisc/intro.nr deleted file mode 100644 index 5e03515d058d..000000000000 --- a/share/doc/iso/wisc/intro.nr +++ /dev/null @@ -1,76 +0,0 @@ -.NC "Introduction" -.sh 1 "Introduction" -.pp -This document describes the design and implementation of the ISO -transport and network layers written for the ACIS Operating System, -the IBM ACIS port of Berkeley 4.3 Unix\** -.(f -\** Unix is a registered trademark of AT&T. -.)f -for the IBM RT PC, -hereafter called AOS. -Collectively, this work is called the Wisconsin ARGO kernel. -The ARGO kernel supports the -the connection-oriented ISO transport service (COTS), the -ISO connectionless network service (CLNS) -and a -connection-oriented network service (CONS). -The COTS is provided by the ISO transport protocol TP, -ISO 8073 Revised. -The CLNS is provided by the connectionless network protocol, -ISO 8473. -The CONS is provided by the X.25 protocols. -The ARGO implementation of the CONS is not a complete -ISO CONS, but contains enough of the CONS to support -the COTS and the CLNS (in the latter case, the CONS can be -viewed as a subnetwork service). -.pp -The purposes of this document are -.ip "1) " -to describe the transport service and the software interface -between the user and provider of this service, -.ip "2) " -to describe the network service and the software interface it -provides, -.ip "3) " -to describe the design of the software which provides -these services, and -.ip "4) " -to provide a guide for readers who are perusing or maintaining -the ARGO kernel source code. -.pp -It is assumed that the reader is familiar with the \fBC\fR -programming language, -with Unix conventions, and with the ISO specifications listed in Appendix A. -.sh 1 "Organization" -.pp -This document is composed of several chapters. -Chapter One contains this introduction. Chapter Two presents a -definition of terms and phrases used throughout the document. -Chapter Three describes the transport service interface, which is -the interface between the transport protocol implementation software and the transport user software. -Chapter Four describes the network service interface, and the interface -above and below the network layer. -Chapter Five explains the format of an OSI address. -Chapter Six describes the -the architecture of the interprocess communication support in the -kernel, which to a large degree mandates -the design of a protocol implementation for a 4.3 Unix kernel. -Chapter Seven describes the design of this transport -protocol implementation, -including descriptions of implementation options. -Chapter Eight describes the design of the network layer implementation. -Chapter Nine describes the way errors are handled in the system. -Chapter Ten summarizes the methods used for -testing and debugging the ARGO kernel. -Appendix A is a list of the applicable ISO standards. -.\" The manual pages relevant to the transport and network layers -.\" are included as Appendix B. -.pp -Several conventions are followed in this document. -All procedure names and system call names are followed -by a pair of parentheses, for example, -\fIread()\fR. -References to manual pages consist of the name of the -manual page, followed by the section in which -the man page is found: \fIread(2)\fR. diff --git a/share/doc/iso/wisc/ipc.nr b/share/doc/iso/wisc/ipc.nr deleted file mode 100644 index 9f9d962fed09..000000000000 --- a/share/doc/iso/wisc/ipc.nr +++ /dev/null @@ -1,372 +0,0 @@ -.NC "The Design of Unix IPC" -.sh 1 "General" -.pp -The ARGO implementation of -TP and CLNP was designed to fit into the AOS -kernel -as easily as possible. -All the standard protocol hooks are used. -To understand the design, it is useful to have -read -Leffler, Joy, and Fabry: -\*(lq4.2 BSD Networking Implementation Notes\*(rq July 1983. -This section describes the -design of the IPC support in the AOS kernel. -.sh 1 "Functional Unit Overview" -.pp -The -AOS -kernel -is a monolithic program of considerable size and complexity. -The code can be separated into parts of distinct function, -but there are no kernel processes per se. -The kernel code is either executed on behalf of a user -process, in which case the kernel was entered by a system call, -or it is executed on behalf of a hardware or software interrupt. -The following sections describe briefly the major functional units -of the kernel. -.\" FIGURE -.so figs/func_units.nr -.CF -shows the arrangement of these kernel units and -their interactions. -.sh 2 "The file system." -.pp -.sh 2 "Virtual memory support." -.pp -This includes protection, swapping, paging, and -text sharing. -.sh 2 "Blocked device drivers (disks, tapes)." -.pp -All these drivers share some minor functional units, -such as buffer management and bus support -for the various types of busses on the machine. -.sh 2 "Interprocess communication (IPC)." -.pp -This includes -support for various protocols, -buffer management, and a standard interface for inter-protocol -communication. -.sh 2 "Network interface drivers." -.pp -These drivers are closely tied to the IPC support. -They use the IPC's buffer management unit rather -than the buffers used by the blocked device drivers. -The interface between these drivers and the rest of the kernel -differs from the interface used by the blocked devices. -.sh 2 "Tty driver" -.pp -This is terminal support, including the user interface -and the device drivers. -.sh 2 "System call interface." -.pp -This handles signals, traps, and system calls. -.sh 2 "Clock." -.pp -The clock is used in various forms by many -other units. -.sh 2 "User process support (the rest)." -.pp -This includes support for accounting, process creation, -control, scheduling, and destruction. -.pp -.sh 2 "IPC" -.pp -The major functional unit that supports IPC -can be divided into the following smaller functional -units. -.sh 3 "Buffer management." -.pp -All protocols share a pool of buffers called \fImbufs\fR: -.(b -\fC -.TS -tab(+); -l s s s. -struct mbuf { -.T& -l l l l. -+struct mbuf+*m_next;+/* next buffer in chain */ -+u_long+m_off;+/* offset of data */ -+short+m_len;+/* amount of data */ -+short+m_type;+/* mbuf type (0 == free) */ -+u_char+m_dat[MLEN];+/* data storage */ -+struct mbuf+*m_act;+/* link in 2-d structure */ -}; -.TE -\fR -.)b -.pp -There are two forms of mbufs - small ones and large ones. -Small ones are 128 octets in -AOS -and 256 octets -in the ARGO release. Small mbufs are copied by byte-to-byte -copies. -The data in these mbufs are kept in the character -array field \fIm_dat\fR in the mbuf structure -itself. -For this type of mbuf, the field \fIm_off\fR is positive, -and is the offset to the beginning of the data from -the beginning of the mbuf structure itself. -Large mbufs, called \fIclusters\fR, are page-sized -and page-aligned. -They may be \*(lqcopied\*(rq by multiply mapping the pages they occupy. -They consist of a page of memory plus a small mbuf structure -whose fields are used -to link clusters into chains, but whose \fIm_dat\fR array is -not used. -The \fIm_off\fR field of the structure -is the offset (positive or negative) from the -beginning of the mbuf structure to the beginning -of the data page part of the cluster. -In the case of clusters, the offset is always out of the -bounds of the \fIm_dat\fR array and so it is alway possible -to tell from the \fIm_off\fR field whether an mbuf structure -is part of a cluster or is a small mbuf. -All mbufs permanently reside in memory. -The mbuf management unit manages its own page table. -The mbuf manager keeps limited statistics on the quantities and -types of buffers in use. -Mbufs are used for many purposes, and most of these purposes -have a type associated with them. -Some of the types that buffers may take are -MT_FREE (not allocated), MT_DATA, -MT_HEADER, MT_SOCKET (socket structure), -MT_PCB (protocol control block), -MT_RTABLE (routing tables), -and -MT_SOOPTS (arguments passed to \fIgetsockopt()\fR and -\fIsetsockopt()\fR. -Data are passed among functional units by means -of queues, the contents of which are -either chains of mbufs or groups of chains of mbufs. -Mbufs are linked into chains with the \fIm_next\fR field. -Chains of mbufs are linked into groups with the \fIm_act\fR -field. -The \fIm_act\fR field allows a protocol to retain packet -boundaries in a queue of mbufs. -.sh 3 "Routing." -.pp -Routing decisions in the kernel are made by the procedure \fIrtalloc()\fR. -This procedure will scan the kernel routing tables (stored in mbufs) -looking for a route. A route is represented by -.(b -\fC -.TS -tab(+); -l s s s. -struct rtentry { -.T& -l l l l. -+u_long+rt_hash;+/* to speed lookups */ -+struct sockaddr+rt_dst;+/* key */ -+struct sockaddr+rt_gateway;+/* value */ -+short+rt_flags;+/* up/down?, host/net */ -+short+rt_refcnt;+/* # held references */ -+u_long+rt_use;+/* raw # packets forwarded */ -+struct ifnet+*rt_ifp;+/* interface to use */ -} -.TE -\fR -.)b -When looking for a route, \fIrtalloc()\fR will first hash the entire destination -address, and scan the routing tables looking for a complete route. If a route -is not found, then \fIrtalloc()\fR will rescan the table looking for a route -which matches the \fInetwork\fR portion of the address. If a route is still -not found, then a default route is used (if present). -.pp -If a route is found, the entity which called \fIrtalloc()\fR can use information -from the \fIrtentry\fR structure to dispatch the datagram. Specifically, the -datagram is queued on the interface identified by the interface -pointer \fIrt_ifp\fR. -.sh 3 "Socket code." -.pp -This is the protocol-independent part of the IPC support. -Each communication endpoint (which may or may not be associated -with a connection) is represented by the following structure: -.(b -\fC -.TS -tab(+); -l s s s. -struct socket { -.T& -l l l l. -+short+so_type;+/* type, e.g. SOCK_DGRAM */ -+short+so_options;+/* from socket call */ -+short+so_linger;+/* time to linger @ close */ -+short+so_state;+/* internal state flags */ -+caddr_t+so_pcb;+/* network layer pcb */ -+struct protosw+*so_proto;+/* protocol handle */ -+struct socket+*so_head;+/* ptr to accept socket */ -+struct socket+*so_q0;+/* queue of partial connX */ -+short+so_q0len;+/* # partials on so_q0 */ -+struct socket+*so_q;+/* queue of incoming connX */ -+short+so_qlen;+/* # connections on so_q */ -+short+so_qlimit;+/* max # queued connX */ -+struct sockbuf+{ -++short+sb_cc;+/* actual chars in buffer */ -++short+sb_hiwat;+/* max actual char count */ -++short+sb_mbcnt;+/* chars of mbufs used */ -++short+sb_mbmax;+/* max chars of mbufs to use */ -++short+sb_lowat;+/* low water mark (not used yet) */ -++short+sb_timeo;+/* timeout (not used ) */ -++struct mbuf+*sb_mb;+/* the mbuf chain */ -++struct proc+*sb_sel;+/* process selecting */ -++short+sb_flags;+/* flags, see below */ -+} so_rcv, so_snd; -+short+so_timeo;+/* connection timeout */ -+u_short+so_error;+/* error affecting connX */ -+short+so_oobmark;+/* oob mark (TCP only) */ -+short+so_pgrp;+/* pgrp for signals */ -} -.TE -\fR -.)b -.pp -The socket code maintains a pair of queues for each socket, -\fIso_rcv\fR and \fIso_snd\fR. -Each queue is associated with a count of the number of characters -in the queue, the maximum number of characters allowed to be put -in the queue, some status information (\fIsb_flags\fR), and -several unused fields. -For a send operation, data are copied from the user's address space -into chains of mbufs. -This is done by the socket module, which then calls the underlying -transport protocol module to place the data -on the send queue. -This is generally done by -appending to the chain beginning at \fIsb_mb\fR. -The socket module copies data from the \fIso_rcv\fR queue -to the user's address space to effect a receive operation. -The underlying transport layer is expected to have put incoming -data into \fIso_rcv\fR by calling procedures in this module. -.in -5 -.sh 3 "Transport protocol management." -.pp -All protocols and address types must be \*(lqregistered\*(rq in a -common way in order to use the IPC user interface. -Each protocol must have an entry in a protocol switch table. -Each entry takes the form: -.(b -\fC -.TS -tab(+); -l s s s. -struct protosw { -.T& -l l l l. -+short+pr_type;+/* socket type used for */ -+short+pr_family;+/* protocol family */ -+short+pr_protocol;+/* protocol # from the database */ -+short+pr_flags;+/* status information */ -+++/* protocol-protocol hooks */ -+int+(*pr_input)();+/* input (from below) */ -+int+(*pr_output)();+/* output (from above) */ -+int+(*pr_ctlinput)();+/* control input */ -+int+(*pr_ctloutput)();+/* control output */ -+++/* user-protocol hook */ -+int+(*pr_usrreq)();+/* user request: see list below */ -+++/* utility hooks */ -+int+(*pr_init)();+/* initialization hook */ -+int+(*pr_fasttimo)();+/* fast timeout (200ms) */ -+int+(*pr_slowtimo)();+/* slow timeout (500ms) */ -+int+(*pr_drain)();+/* free some space (not used) */ -} -.TE -\fR -.)b -.pp -Associated with each protocol are the types of socket -abstractions supported by the protocol (\fIpr_type\fR), the -format of the addresses used by the protocol (\fIpr_family\fR), -the routines to be called to perform -a standard set of protocol functions (\fIpr_input\fR,...,\fIpr_drain\fR), -and some status information (\fIpr_flags\fR). -The field pr_flags keeps such information as -SS_ISCONNECTED (this socket has a peer), -SS_ISCONNECTING (this socket is in the process of establishing -a connection), -SS_ISDISCONNECTING (this socket is in the process of being disconnected), -SS_CANTSENDMORE (this socket is half-closed and cannot send), -SS_CANTRCVMORE (this socket is half-closed and cannot receive). -There are some flags that are specific to the TCP concept -of out-of-band data. -A flag SS_OOBAVAIL was added for the ARGO implementation, to support -the TP concept of out-of-band data (expedited data). -.sh 3 "Network Interface Drivers" -.pp -The drivers for the devices attaching a Unix machine to a network -medium share a common interface to the protocol -software. -There is a common data structure for managing queues, -not surprisingly, a chain of mbufs. -There is a set of macros that are used to enqueue and -dequeue mbuf chains at high priority. -A driver -delivers an indication to a protocol entity when -an incoming packet has been placed on a queue by -issuing a -software -interrupt. -.sh 3 "Support for individual protocols." -.pp -Each protocol is written as a separate functional unit. -Because all protocols share the clock and the mbuf pool, they -are not entirely insulated from each other. -The details of TP are described in a section that -follows. -.\"***************************************************** -.\" FIGURE -.so figs/unix_ipc.nr -.pp -.CF -shows the arrangement of the IPC support. -.pp -The AOS -IPC was designed for DoD Internet protocols, all of -which run over DoD IP. -The assumptions that DoD Internet is the domain -and that DoD IP is the network layer -appear in the code and data structures in numerous places. -For example, it is assumed that addresses can be compared -by a bitwise comparison of 4 octets. -Another example is that the transport protocols all directly call -IP routines. -There are no hooks in the data structures through -which the transport layer can choose a network level protocol. -A third example is that the host's local addresses -are stored in the network interface drivers and the drivers -have only one address - an Internet address. -A fourth example is that headers are assumed to -fit in one small mbuf (112 bytes for data in AOS). -A fifth example is this: -It is assumed in many places that buffer space is managed -in units of characters or octets. -The user data are copied from user address space into the kernel mbufs -amorphously -by the socket code, a protocol-independent part of the kernel. -This is fine for a stream protocol, but it means that a -packet protocol, in order to \*(lqpacketize\*(rq the data, -must perform a memory-to-memory copy -that might have been avoided had the protocol layer done the original -copy from user address space. -Furthermore, protocols that count credit in terms of packets or -buffers rather than characters do not work efficiently because -the computation of buffer space is not in the protocol module, -but rather it is in the socket code module. -This list of examples is not complete. -.pp -To summarize, adding a new transport protocol to the kernel consists of -adding entries to the tables in the protocol management -unit, -modifying the network interface driver(s) to recognize -new network protocol identifiers, -adding the -new system calls to the kernel and to the user library, -and -adding code modules for each of the protocols, -and correcting deficiencies in the socket code, -where the assumptions made about the nature of -transport protocols do not apply. diff --git a/share/doc/iso/wisc/macros.nr b/share/doc/iso/wisc/macros.nr deleted file mode 100644 index a3624c998164..000000000000 --- a/share/doc/iso/wisc/macros.nr +++ /dev/null @@ -1,50 +0,0 @@ -.\" -.\" Macro to initialize chapter macros -.\" -.de IC -.nr CN 0 1 -.. -.\" -.\" Macro to begin new chapter -.\" -.de NC -.he 'ARGO Kernel Programmer\'s Guide''Chapter \\n+(CN' -.bp -.sh 0 "_" 1 1 1 1 1 1 -.sz +2 -.(l C -CHAPTER \\n(CN - -\fB\\$1\fR -.)l -.sp 1 -.(x -Chapter \\n(CN \\$1 -.)x -.sz -2 -.. -.\" -.\" Figure conventions: -.\" 1) do .so of figure source - figure reg incremented here -.\" 2) make references to figure via CF -.\" -.\" -.\" Macro to initialize figure register -.\" -.de IF -.nr FG 0 1 -.. -.\" -.\" Macro for current figure number -.\" -.de CF -Figure \\n(FG -.. -.\" -.\" Define this macro to include section headings in table of contents -.\" -.de $0 -.(x -Section \\$2 \\$1 -.)x -.. diff --git a/share/doc/iso/wisc/net_design.nr b/share/doc/iso/wisc/net_design.nr deleted file mode 100644 index d066f8e335d6..000000000000 --- a/share/doc/iso/wisc/net_design.nr +++ /dev/null @@ -1,1139 +0,0 @@ -.NC "The Design of the ARGO Network Layer" -.sh 1 "Connectionless Network Layer -.pp -The following sections describe the design of the ARGO -connectionless network layer (CLNL). -The connectionless network service is provided by several -network-layer protocols: ES-IS (ISO 9542), -CLNP (ISO 8348), and (ISO 8208) X.25. -The protocol CLNP is the primary connectionless network layer -protocol. -It is supported by X.25 when X.25 is used as a subnetwork layer. -X.25 can also be viewed as a link layer protocol in this context. -The ES-IS protocol supports CLNP by providing the following functions: -.ip \(bu 5 -automatic mapping of NSAP-addresses to SNPA addresses, -.ip \(bu 5 -automatic configuration of networks of end systems and intermediate -systems, and -.ip \(bu 5 -redirection of network-layer traffic in response to -configuration changes. -.pp -The rest of this chapter describes the design of -CLNP, the design of ES-IS, -and the design of the connection-oriented -network layer, including the connection-oriented subnetwork service (X.25). -.pp -CLNP has two subsets defined: the Inactive Network Layer -protocol subset and the Non-Segmenting protocol subset. -The Inactive Network Layer subset is a null-function subset -in which the CLNP is not needed, and the -protocol consists of sending -a 1-byte header containing the value zero. -This "subset" is not supported in ARGO. -.pp -The Non-Segmenting protocol subset permits simplification of the DT NPDU -header when it is known that segmentation of the DT NPDU is not required. -ARGO supports this subset. -When this subset is used, -the segmentation part of the DT NPDU (data packet) header is not present, -and the \fIdon't segment\fR bit is set in the -fixed part of the header. -This subset is chosen by setting the bit -\fICLNP_NO_SEG\fR in the \fIflags\fR argument to \fIclnp_output()\fR. -.pp -Throughout the remainder of this -document, -following definitions apply: -.(b -\(bu DT NPDU: data transfer NPDU. -\(bu ER NPDU: error report NPDU. -\(bu NPDU: either an ER or DT NPDU. -.)b -.sh 2 "DT NPDU Output" -.pp -A CLNP DT NPDU is transmitted by calling \fIclnp_output()\fR. -.so figs/clnp_output.nr -.\" FIGURE -.CF -outlines the sequence of steps taken by \fIclnp_output()\fR when -transmitting an NPDU. -The solid lines indicate normal flow of control. The -dashed lines indicate possible error returns (with associated -error code). -.pp -\fIClnp_output()\fR will automatically cache (in the \fIisopcb\fR) -the header of each packet it sends. This cached copy of the header -is used on subsequent sends reducing the amount of time spent generating -the header. Therefore, the first action \fIclnp_output()\fR takes is to -examine the cached header (if any). If the header is still valid (see below) -then it is used. Otherwise, a new header is built. -.sh 3 "When The Cached Header Is Invalid" -.pp -Before any resources are allocated, the options to be sent with the packet -are examined. If any unsupported options are present, the error \fIEINVAL\fR -is returned. -Next, the length of the source and destination -NSAP addresses (taken from the \fIisopcb\fR) -are checked. The source address length may be zero. This -indicates that \fIclnp_output()\fR should compute the source address based upon -the route taken, in which case CLNP calls -the function \fIclnp_srcroute()\fR. -Source routing -will be discussed in detail later in this section. -If, in the process of checking -the address lengths, an invalid length is detected, the error -\fIENAMETOOLONG\fR is returned. -.pp -After checking the lengths of the addresses, -CLNP allocates an \fImbuf\fR in which the DT NPDU header will be constructed. -If an \fImbuf\fR cannot be found, the error -\fIENOBUFS\fR is returned. Once the \fImbuf\fR is allocated, -the fixed part of the DT NPDU header is copied into the \fImbuf\fR. -.pp -The next step is to route the DT NPDU. This is accomplished by the -\fIclnp_route()\fR function. -It is necessary to route the datagram early in the output process because -in many cases, the source address will not be known until the route -has been created. -When a system is multi-homed it has several source addresses. -The source address to choose depends on the -network interface (thus, the route) used. -.pp -The address part of the DT NPDU follows the fixed part. -Since appending the address part is the next task, -the source address must be determined. -Therefore the route must be determined. -.pp -After appending the address part to the fixed part of the -NPDU header, CLNP -appends any options given in the arguments to -\fIclnp_output()\fR. -The options are specified in a -separate \fImbuf\fR stored in the \fIiso_pcb\fR. -If this \fImbuf\fR -pointer is not null, a copy of the \fImbuf\fR is made, and this copy is -chained (appended) to the -\fImbuf\fR in which the -NPDU header resides. The options \fImbuf\fR linked in with the DT packet -must be a copy of the options \fImbuf\fR passed to \fIclnp_output()\fR. If -this was not done, then -the options \fImbuf\fR passed would be freed by the interface -driver after the NPDU had been transmitted. -Since a copy must be made, it is possible for \fIclnp_output()\fR to -return \fIENOBUFS\fR at this time. -A later section of this chapter describes -the handling of options in greater detail. -.pp -User data for the packet are passed to -\fIclnp_output()\fR as an \fImbuf\fR chain. -This \fImbuf\fR chain is appended to the DT NPDU header chain. -At this point, the DT NPDU is ready for transmission. -If header caching has not been disabled, a cache entry is made in the -\fIisopcb\fR. -If the size of the entire packet -is less than the maximum transmission unit (MTU) of the -network interface to be used, -the packet is placed on the queue for that network interface, -otherwise \fIclnp_fragment()\fR is invoked to -break up the packet into smaller packets, called -"derived NPDUs", and transmit the derived NPDUs. -.sh 3 "When A Cached Header Exists" -.pp -In this case, \fIclnp_output()\fR updates the segmentation part of the -header (if segmenting is permitted), computes the checksum, and transmits -(or fragments) the packet. -.pp -The cached CLNP header is stored in the \fIstruct isopcb\fR. The field -\fIisop_clnpcache\fR within the \fIisopcb\fR points to an \fImbuf\fR -which contains a \fIstruct clnp_cache\fR: -.(b -\fC -.TS -tab(+); -l s s. -struct clnp_cache { -.T& -l l l l. -+u_short+cni_securep;+/* ptr to security option */ -+struct iso_addr+clc_dst;+/* destination of packet */ -+struct mbuf+*clc_options;+/* ptr to options mbuf */ -+int+clc_flags;+/* flags passed to clnp_output */ -+int+clc_segoff;+/* offset of seg part of header */ -+struct sockaddr+*clc_firsthop;+/* first hop of packet */ -+struct ifnet+*clc_ifp;+/* ptr to interface */ -+struct mbuf+*clc_hdr;+/* cached pkt hdr (finally)! */ -}; -.TE -\fR -.)b -The first three fields \fIclc_dst, clc_options\fR and \fIclc_flags\fR -are used to check the validity of the cache entry. The cache is considered -valid if: -.ip \(bu 5 -The options mbuf has not changed. -.ip \(bu 5 -The destination of the packet has not changed. -.ip \(bu 5 -The route still exists and is up. -.ip \(bu 5 -The flags have not changed. -.pp -If all these conditions are met, then the bulk of the \fIclnp_output()\fR -processing is avoided. The fields \fIclc_segoff, clc_firsthop,\fR -and \fIclc_ifp\fR are used by \fIclnp_output()\fR to transmit the packet. -The field \fIclc_ifp\fR contains the actual cached header which is copied -and then enqueued on the outgoing interface. -.sh 2 "NPDU Input" -.pp -.\" FIGURE -.so figs/clnp_input.nr -All CLNP NPDUs are processed by \fIclnp_input()\fR. -.CF -outlines -the flow of control within \fIclnlintr()\fR and \fIclnp_input()\fR. -The solid lines -indicate normal flow of control. The dashed lines indicate -possible error returns. -.pp -\fIClnlintr()\fR is invoked by a software interrupt. -This interrupt is posted by a device driver whenever a -packet is placed in CLNL's input queue -\fIclnlintrq()\fR, and the queue is empty. -It is the responsibility of \fIclnlintr()\fR, when invoked, -to process all packets present on the input queue. -Thus, to begin the task of processing a packet, \fIclnlintr()\fR -removes the next packet from the queue. -When an error is discovered during processing, the packet is discarded and -\fIclnlintr()\fR begins afresh. -.pp -Once removed, the type of the NPDU is checked. If the NPDU is an -ES-IS packet, then \fIesis_input()\fR is called. If the NPDU is a CLNP -packet, then \fIclnp_input()\fR is called. Other packets are silently -discarded. -The function \fIclnp_hdr_ck()\fR checks the NPDU for consistency. -Before checking consistency, \fIclnp_hdr_ck()\fR insures -that the entire NPDU header is located -contigiously in a single \fImbuf\fR (\fIm_pullup()\fR\** performs this task). -.(f -\** If the NPDU header is larger than \fIMLEN\fR (currently 256), then -\fIm_pullup()\fR will allocate a cluster \fImbuf\fR. -.)f -After "pulling" the header into a single \fImbuf\fR, \fIclnp_hdr_ck()\fR -checks for the proper CLNP version and protocol identification. -It also checks that the lifetime field is greater than zero. -After checking header consistency, the NPDU checksum is computed.\** -.(f -\** If the checksum value is zero, the checksum is not computed. -The value zero is reserved to mean \*(lqdo not use checksum\*(rq. -.)f -If the checksum is valid, \fIclnp_data_ck()\fR is called to insure -that the amount of data in the \fImbuf\fR chain corresponds to the -amount indicated in the NPDU header. -.pp -Once the consistency of the NPDU has been assured, the various parts of the -packet are extracted. -Care is taken with each extraction to insure that an attempt is not made -to address data that does not really exist. (Such an attempt could -result in a kernel trap). -.pp -Next, the options part of the NPDU, if present, is checked for validity. -If unsupported options are found, the packet is discarded. -See the section \*(lqNPDU options\*(rq for details of options processing. -.pp -Finally, after the preceding checks and extractions have been made, the -destination address is examined. -If the address indicates that the packet's destination is not this -system, the packet is forwarded by calling \fIclnp_forward()\fR. -See the section \*(lqDT NPDU Forwarding\*(rl for details of packet forwarding. -If this end system is the -packet's destination, processing continues. -.pp -If the packet is not complete, it is passed to \fIclnp_reass()\fR for -reassembly. -See the section \*(lqDT NPDU Reassembly\*(rq -for details of packet reassembly. -.pp -At this point, a complete NPDU is in hand. -If the NPDU is a DT NPDU, it is given to the transport layer -by calling the TP input routine. -Otherwise, it is give to the ER NPDU processing function, -\fIclnp_er_input()\fR. -.sh 3 "DT NPDU Forwarding" -.pp -Packet forwarding is accomplished by \fIclnp_forward()\fR. -This is performed regardless of the system's type (end or intermediate). -The task of -forwarding a packet is fairly straight-forward. First, the lifetime -field of the datagram is decremented. -If this operation changes the value to zero, the packet is discarded. -.pp -If the source route option is present, and the address at the top of the list -matches an address of one of the system's network interfaces, then -the next-source-route-to-be-used offset is adjusted in the option. -Next, the packet is routed by \fIclnp_route()\fR -or \fIclnp_srcroute()\fR. -If the record route option is present, the address of the outgoing -network interface is recorded by \fIclnp_dooptions()\fR. -.pp -Finally the packet is dispatched. -If the size of the entire packet is less than the MTU of the output -network interface, the packet is enqueued for that interface, -otherwise \fIclnp_fragment()\fR is invoked to -fragment the packet and enqueue the derived NPDUs. -.sh 2 "NPDU Options" -.pp -The options section of an NPDU consists of a series of triplets: -\fIoption identification\fR, \fIoption length\fR, -and \fIoption value\fR. -These triplets are checked each time the options are examined or changed. -To avoid repeated parsing of the options, the ARGO CLNP -maintains an index. -This index is organized as a \fIclnp_optidx\fR structure. -This structure is shown below. -.(b -\fC -.TS -tab(+); -l s s. -struct clnp_optidx { -.T& -l l l l. -+u_short+cni_securep;+/* ptr to security option */ -+char+cni_secure_len;+/* length of security option */ -+u_short+cni_srcrt_s;+/* offset of src rt option */ -+u_short+cni_srcrt_len;+/* length of src rt option */ -+u_short+cni_recrtp;+/* ptr to head of recrt option */ -+char+cni_recrt_len;+/* length of recrt option */ -+char+cni_priorp;+/* ptr to priority option */ -+u_short+cni_qos_formatp;+/* ptr to format of qos option */ -+char+cni_qos_len;+/* length of qos option */ -+char+cni_er_reason;+/* reason from ER pdu option */ -}; -.TE -.)b -This index allows CLNP quickly to discover the existence -and value of an option. -For example, if a security option is present, the \fIcni_securep\fR -field of the option index is non-zero and the value of -\fIcni_securep\fR is an offset to the beginning of the -security option. -The function \fIclnp_opt_sanity()\fR -parses the options and computes the index. -While parsing, it also verifies that the -options are valid and correctly structured. -If an error occurs while parsing an option, -\fIclnp_opt_sanity()\fR returns an error code. -The following sections describe how options are processed -during the send, forward and receive operations. -.sh 3 "Sending Options" -.pp -Options to be sent with a datagram are passed to \fIclnp_output()\fR as -two arguments. An option index is passed along with an \fImbuf\fR -containing the options. -The options in the \fImbuf\fR must be formatted -exactly as specified by CLNP. -If the security, quality of service, or -priority options are specified, \fIclnp_output()\fR will not transmit the -datagram and \fIEINVAL\fR is returned. -The system call \fIsetsockopt()\fR is used to set the CLNP options -to be sent on a datagram. -See \fIclnp(4)\fR for more information about setting CLNP options. -.pp -If a source route is specified, -the normal CLNP routing function \fIclnp_route()\fR is not used, and -\fIclnp_srcroute()\fR is invoked. -.pp -When the DECBIT config option is specified, \fIclnp_output\fR will -automatically add the globally unique quality of service option to the packet. -The sequencing preferred and low delay bits in this option are set. -.sh 3 "Forwarding Options" -.pp -During packet forwarding, the padding, security, -and priority options are ignored. If record route is selected, the -function \fIclnp_dooptions()\fR logs the current network -interface address in the record route list. -.pp -If a source route is specified, -the normal CLNP routing function \fIclnp_route()\fR is not used, and -\fIclnp_srcroute()\fR is invoked. -.sh 4 "The Congestion Experienced Bit" -.pp -If a packet is forwarded containing the globally unique quality of -service option, and the interface through which the packet will be -transmitted has a queue length greater than \fIcongest_threshold\fR, -then the congestion experienced bit is set in the quality of service option. -.pp -The threshold value stored in \fIcongest_threshold\fR may be changed -with the \fIclnlutil\fR utility. -.sh 3 "Receiving Options" -.pp -On receipt, all CLNP options are ignored except the security -and globally unique quality of service option. -If the security option is found, the packet is discarded. -If the globally unique quality of service option is present, and the -congestion experienced bit is set, then the transport congestion -control function \fItpclnp_ctlinput(PRC_QUENCH2, addr)\fR is called. -The following table summarizes the CLNP option processing. -.(b -.TS -allbox, tab(+); -l l l l. -Option+Send+Forward+Receive -= -Padding+may be set+-+- -Security+reject+ignore+discard -Source Route+\fIclnp_srcroute()\fR+\fIclnp_srcroute()\fR+- -Record Route+-+\fIclnp_dooptions()\fR+- -QOS+added+congestion bit set+tpclnp_ctlinput() -Priority+reject+ignore+- -.TE -.)b -.sh 2 "DT NPDU Segmentation" -.pp -Segmentation is the process by which initial NPDUs are segmented into -smaller derived NPDUs when the initial NPDU is too large for transmission -on a network interface. -Segmentation is accomplished by \fIclnp_fragment()\fR. -This function chops the NPDU into pieces and individually places the pieces -in the appropriate network interface's output queue. -Each piece is made as large as possible. -Note: The phrase "fragmentation" is used synonymously with "segmentation" -throughout this prose and the CLNP fragmentation code. This is due to -this author's familiarity with the DoD Internet Protocol which uses -the term "fragment." -.sh 2 "DT NPDU Reassembly" -.pp -Derived NPDUs are put back together by the process called -reassembly. -Reassembly is performed only at the destination end system. -When a derived NPDU arrives, it is passed to \fIclnp_reass()\fR. -This function scans a linked list of NPDUs awaiting reassembly. -Each packet in the list is represented by a fragment list -descriptor, which is stored in an \fImbuf\fR: -.(b -\fC -.TS -tab(+); -l s s s. -struct clnp_fragl { -.T& -l l l l. -+struct iso_addr+cfl_src;+/* source */ -+struct iso_addr+cfl_dst;+/* destination */ -+u_short+cfl_id;+/* id of the pkt */ -+u_char+cfl_ttl;+/* time to live */ -+u_short+cfl_last;+/* offset of last -+++byte of packet */ -+struct mbuf +*cfl_orighdr;+/* ptr to -+++original header */ -+struct clnp_frag+*cfl_frags;+/* linked list -+++of fragments */ -+struct clnp_fragl+*cfl_next;+/* next pkt be- -+++ing reassembled */ -}; -.TE -\fR -.)b -The fields \fIcfl_src\fR, \fIcfl_dst\fR, and \fIcfl_id\fR are used to -match an incoming derived NPDU with a fragment list. -\fICfl_orighdr\fR contains a copy of the NPDU header of the first fragment received. -The linked list of fragments pertaining to the packet is stored in the -\fIcfl_frags\fR field. -Each NPDU fragment represented by a \fIclnp_frag\fR structure, -stored in an \fImbuf\fR: -.(b -\fC -.TS -tab(+); -l s s s. -struct clnp_frag { -.T& -l l l l. -+u_int+cfr_first;+/* offset of -+++first byte of this frag */ -+u_int+cfr_last;+/* offset of last -+++byte of this frag */ -+u_int+cfr_bytes;+/* bytes to shave */ -+struct mbuf+*cfr_data;+/* ptr to data */ -+struct clnp_frag+*cfr_next;+/* next frag */ -}; -.TE -\fR -.)b -The fields \fIcfr_first\fR and \fIcfr_last\fR indicate the first and -last octet of the fragment. -\fICfr_data\fR points to an mbuf chain -which contains the data for the fragment. -.pp -If \fIclnp_reass()\fR finds a \fIclnp_fragl\fR structure matching the -incoming derived NPDU, \fIclnp_insert_frag()\fR is called to create -a \fIclnp_frag\fR structure and insert it in the linked list of -packet fragments. -If no \fIclnp_fragl\fR structure is found, -\fIclnp_newpkt()\fR is invoked to create a new fragment list structure. -.pp -The last task \fIclnp_reass()\fR performs is to check if the fragment -that just arrived completes the reassembly of the initial NPDU. -If it does, the reassembled NPDU is rearranged to -look like it just arrived intact. -It accomplishes this by linking the \fImbuf\fRs holding -the fragments into one \fImbuf\fR chain that represents the initial -NPDU. -A pointer to this \fImbuf\fR chain is returned by \fIclnp_reass()\fR. -.pp -If the newly arrived fragment does not complete an initial NPDU, -\fIclnp_reass()\fR returns NULL. -.sh 3 "Reassembly Lifetime Control" -.pp -One function of the CLNP is to prevent -a proliferation of fragments awaiting reassembly from -consuming buffers in an end system for indefinite periods of time. -This function is called reassembly lifetime control. -It is accomplished by -periodic traversal of -the list of \fIclnp_fragl\fR structures, decrementing the -\fIcfl_ttl\fR field. -This field is a copy of the NPDU time-to-live -field. If \fIcfl_ttl\fR reaches zero, all resources associated with the -fragment are released. -The procedure -\fIclnp_slowtimo()\fR, which is called by the system -clock every 500 milliseconds (every half-second), -performs the CLNP reassembly lifetime control. -.sh 2 "ER NPDU" -.pp -An ER NPDU is sent to the originator of a packet when a DT NPDU is -discarded and the error report function is not suppressed. Suppression -of the error report function is accomplished by setting the "no ER" -bit in the CLNP header. -A packet is discarded by \fIclnp_discard()\fR. -Before it -returns the \fImbufs\fR used to store the -the discarded packet to the \fImbuf\fR free list, -\fIclnp_discard()\fR -determines if the error report function is suppressed. -If not, -an ER NPDU will be sent to the originator of the discarded packet by -calling \fIclnp_emit_er()\fR. -.pp -\fIClnp_emit_er()\fR will create an ER NPDU, address it to the -originator of the discarded packet, route the NPDU, -and transmit it, sending the header of the discarded NPDU as data. -ER NPDUs may not be segmented. -If the ER NPDU is too large for the outgoing network interface, -the packet is truncated. -.sh 2 "Raw CLNP" -.pp -In order to test CLNP in isolation from higher layer -protocols, ARGO provides a \*(lqraw\*(rq interface to CLNP. -This raw interface is selected with the \fISOCK_RAW\fR parameter to -the -\fIsocket()\fR -system call. -When a \*(rqraw\*(rq socket is open, -and CLNP receives an NPDU, -CLNP must determine whether the incoming NPDU is destined for -the -\*(rqraw\*(rq interface or for the interface to the -OSI transport protocol entity. -ARGO addresses this problem by using non-standard NPDU types -for packets sent on \*(rqraw\*(rq sockets. -The type field in the CLNP NPDU header -is set to \fICLNP_RAW\fR (hex 1d) rather than \fICLNP_DT\fR -in NPDUs that originate from -\*(rqraw\*(rq sockets. -This non-standard type value is used by \fIclnp_input()\fR -to decide which upper layer protocol should receive the packet. -See \fIclnptest(8)\fR for more information about the. -\*(rqraw\*(rq CLNP interface. -.sh 2 "CLNP Echo" -.pp -In the DoD world, ICMP supports an \fIecho\fR service. -This allows one to \*(lqping\*(rq a distant gateway and -to receive an echo response (a packet in return) if the gateway is working. -There is no counterpart to \*(lqecho\*(rq in ISO 8473 (CLNP). -ARGO provides this non-standard feature in its connectionless -network layer. -.pp -Like raw CLNP, implementing an echo function requires a non-standard -NPDU type value to allow -\fIclnp_input()\fR to differentiate between a DT NPDU to be forwarded -or passed to a higher layer protocol, and an NPDU that is to be echoed. -When requesting an echo, -the CLNP type field is set to \fICLNP_EC\fR (hex 1E) rather -than CLNP_DT. -When \fIclnp_input()\fR receives a packet with type -\fICLNP_EC\fR, -it swaps the source and destination addresses, sets the -type field to \fICLNP_ECR\fR (hex 1F) and forwards -the packet back to the sender. -See also \fIclnpping(8)\fR. -.sh 2 "Timers" -.pp -The only timer used by CLNP is the -500 millisecond timer, which is -user for reassembly lifetime control. -See the section \*(lqReassembly Lifetime Control.\*(rq -.sh 1 "End System to Intermediate System Routing Protocol (ES-IS)" -.\" ROB -.sh 2 "Overview" -.pp -This section describes the implementation of the ES-IS routing protocol. -This protocol is used primarily to resolve NSAP address to SNPA address -translations. It is also used to identify end systems -and intermediate systems on -the local subnetwork. -All of this work is accomplished by transmitting -packets of the type End System Hello (ESH), Intermediate System Hello (ISH) -and Request Redirect (RD). -.pp -For the purpose of this section, the following definitions of end system (ES) -and intermediate system (IS) apply. -.ip \(bu 5 -An \fIend system\fR is an open system that -is an OSI end system in the standard OSI sense -(that it supports a full OSI protocol suite in addition to the network layer) -and that -implements the functions of the -the ES-IS protocol that are mandatory for end systems, -such as the Query Configuration function and the Record Redirect -function, -but that does not implement -the functions of the ES-IS protocol that are for intermediate systems. -.ip \(bu 5 -An \fIintermediate system\fR is an open system that -is an OSI intermediate system in the standard OSI sense -(that it performs packet routing in the network layer) -and that -implements the functions of the -the ES-IS protocol that are mandatory for intermediate systems, -such as the Request Redirect function, -but not the functions of the ES-IS protocol that are for end systems. -.pp -While system may be an ES or an IS or both according to the -standard OSI definitions, this is not the case in the context of -the ES-IS protocol. -.pp -An ARGO system is by default an end system, by the definitions given above. -An ARGO system can be made to function as an intermediate system -instead of an end system with the \fIclnlutil\fR program. -See \fIclnlutil(8)\fR for more information. -.sh 2 "Report Configuration Function" -.pp -The report configuration function is used by end systems and intermediate -systems to inform each other of their reachability and current subnetwork -addresses. -This function is invoked whenever the configuration timer -expires. -This timer fires at a frequency of once every -\fIesis_config_time\fR seconds. -By default, this value is 60 (seconds), -but it may be changed with the \fIclnlutil\fR program. -.pp -The report configuration function is contained in the C function -\fIesis_config()\fR. Called every \fIesis_config_time\fR seconds, -\fIesis_config()\fR searches the list of active network interfaces -calling \fIesis_shoutput\fR for each interface that is up, has -broadcast ability and has an ISO address configured. -.pp -The function \fIesis_shoutput()\fR has the responsibility of building and -transmitting ESH and ISH packets. -It takes several arguments, including a pointer to a network interface -and -a packet type (ESH or ISH). -If the packet type is ESH, then -each NSAP address configured on the specified interface is added to -the ESH NPDU. ISH NPDUs may only contain a single NSAP address\**. -.(f -\** Actually, ISH packets contain Network Entity Titles (NETs). ARGO -does not make a distinction between NETs and NSAPs. -.)f -After the packet is built, it is transmitted on the subnetwork. ESH packets -are sent to the multicast address \fIall intermediate systems\fR, whereas -ISH packets are sent to the multicast address \fIall end systems\fR. -.pp -Each ISH and ESH NPDU contains -a holding timer setting. This setting (specified -in seconds) is used by the receiver of the NPDU to set its -holding timer. When its holding timer expires, the information from -the NPDU is erased. The holding timer value sent on each ISH and ESH NPDU -is contained in the variable \fIesis_holding_time\fR. By default, this -timer setting is 120 seconds. This value may be changed with the -\fIclnlutil\fR utility program. -.sh 2 "Record Configuration Function" -.pp -The Record Configuration function receives ESH or ISH NPDUs, extracts the -configuration information, and updates kernel-resident tables. -The two functions \fIesis_eshinput()\fR and \fIesis_ishinput()\fR -process incoming ESH and ISH NPDUs, respectively. -.pp -The ES-IS entity maintains a table that -associates a SNPA-addresses with NSAP-addresses. -This table is called the \fISNPA cache\fR. -.pp -Whenever an ESH or ISH NPDU is received, -an entry is made in the SNPA cache -via the \fIsnpac_add()\fR function. -This entry is kept in the cache until the holding timer expires. -In addition to adding an entry to the SNPA cache, \fIsnpac_add()\fR creates -a default ISO route toward the sender of the ISH. -One such route is kept so that the ES-IS entity has at most one -route to an IS at any time. -Note that ISHs from different sources will -cause the route to the source of the earlier ISH to be -overwritten. -The default route -will be removed when the ISH holding timer expires. -.pp -If, at the time an ESH or ISH NPDU is received, the SNPA cache -contains no entry for the NSAP address in the NPDU just received, -an ESH or ISH (depending on the system type) NPDU is -transmitted to the sender of the NPDU just received. -.sh 2 "Resolving NSAP addresses to SNPA addresses: Query Configuration Function" -.pp -Whenever a device driver needs to resolve an NSAP address to -an SNPA address, it calls \fIiso_snparesolve()\fR. This function first looks -up the NSAP address in the SNPA cache. If a match is found, the -corresponding SNPA address is returned. If a match is not found and the -system is an end system, and there is a known intermediate system, then -the SNPA address of the intermediate system is returned. It is assumed that -the intermediate system will forward the packet and transmit a redirect back -(see "Redirection Generation", below). -If a match is not found and the system is an end system, but there is no -known intermediate system, then \fIiso_snparesolve()\fR will return -the multicast address \fIall end systems\fR. -In all other cases, \fIiso_snparesolve()\fR will return an error. -This is known as the query configuration function. -.sh 3 "Configuration Response Function" -.pp -In order for the query configuration function to be effective, the network -entity that receives a CLNP DT sent to the \fIall end system\fR -multicast address must transmit an ESH back to the sender of the DT. -This is called the configuration response function and is accomplished by -calling \fIsh_output()\fR from within \fIclnp_input()\fR. -.sh 2 "Redirection Generation" -.pp -When an intermediate system forwards a packet onto the same interface -upon which -the packet arrived, a redirect (RD) NPDU is generated. This NPDU is -transmitted by calling \fIesis_rdoutput()\fR from within \fIclnp_forward()\fR. -Note that end systems may forward packets but they do not generate RD PDUs. -.sh 2 "Redirection Receipt" -.pp -RD NPDUs direct an end system to create an SNPA cache entry -for an NSAP address, or, if such an entry exists, to change -the SNPA address associated with the NSAP address. -The receipt of RD NPDUs is handled by \fIesis_rdinput()\fR. -This function -parses the RD NPDU and adds an entry to the SNPA cache for the corresponding -destination NSAP address. -If the redirect is toward an intermediate system, -meaning that the RD NPDU contains an SNPA address -of an intermediate system (gateway), -a route is created for the destination NSAP with the intermediate system as -the first hop, or gateway, in the route. -.sh 2 "Multicast Addresses" -.pp -As specified by the December 1987 NBS agreements, the address -\fIall end systems\fR is {0x09, 0x00, 0x2B, 0x00, 0x00, x04} and the address -\fIall intermediate systems\fR is {0x09, 0x00, x02B, 0x00, 0x00, 0x05}. -These multicast addresses are only used on the 802.3 subnetwork (baseband). -Broadcast addresses are used on the 802.5 subnetwork (token ring). See -the comment in \fC/sys/netargo/iso_snpac.c\fR for more information on -multicast addresses. -.sh 1 "Connection Oriented Network Service and Subnetwork Service" -.pp -The following sections describe the design of the Connection Oriented -Network Service (CONS) and the Connection Oriented Subnetwork Service -(COSNS). -The CONS and COSNS are provided by two functionally separate but related -modules, a connection manager and the ISO 8208 (X.25) protocols. -The connection manager is also known in OSI terminology as a -subnetwork dependent convergence function, or SNDCF. -In ARGO it is used for more than an SNDCF, and it is a sort of -"glue" that binds a transport service, a network service, a -subnetwork service, and a device driver together, so -hereinafter it is called "the glue". -This code performs the some of the functions of ISO 8878, -which specifies how ISO 8208 (X.25) can be used to provide the OSI -connection oriented network service. -The X.25 protocols are implemented in a coprocessor -made by Eicon Technology, Inc. -The device driver \fBecn\fR is the Unix kernel interface to this -coprocessor. -The sections that follow describe the glue and the \fBecn\fR device -driver. -.sh 2 "The Glue" -.pp -The glue provides -services to several modules in the kernel: -.ip "Subnetwork service" 5 -is provided to other network layer protocols, such as CLNP (ISO 8473). -The ARGO CLNP uses this service. -The Internet IP could be made to use this service with -minimal effort, because this service interface is made to look -like a standard Unix BSD link layer service (it has -a device driver interface). -.ip "Network service" 5 -is provided to transport layer protocols, such as TP (ISO 8073). -This service interface looks like a standard Unix BSD -network service (a procedure call interface). -.ip "Transport service" 5 -could be provided to the socket module. -While this is not provided with the ARGO software, the glue -is designed to permit -such a service to be provided with little additional programming effort. -.pp -Higher layer protocols -that use a connection-oriented -network or subnetwork service need to manage virtual -circuits in a similar fashion. -Rather than put connection management functions into each higher -layer protocol (HLP) entity -that uses the CONS or COSNS, -in ARGO the connection management is in one module, the glue. -Other alternatives exist, for example in the OSI world, -one may place in the TP entity the function of connection management for TP, -and implement a network connection management subprotocol -of the transport layer (ISO 8073 DAD1, NCMS). -In addition, connection management for CLNP may be implemented as part of -the CLNP entity. -A subnetwork dependent convergence protocol (ISO 8878/A) may -be implemented to support connection management for CLNP. -The approach taken in ARGO is different from those suggested in ISO -for two reasons. -First, ARGO aims to minimize the amount of code written to perform a given -task. -Second, ARGO has several coexisting paths through the network layer, -which the ISO approach does not address. -For example, in both ISO 8878/A and in NCMS it is assumed that if -an incoming call arrives from NSAP \(*b -while a call to NSAP \(*b is being placed, -the two calls are resolved to one virtual circuit. -This is not feasible in the ARGO scenario, since it may not be known -until after -the calls are established and higher level packets are exchanged -whether the two calls are to be used -for the same path and for the same higher layer protocols. -A possible alternative approach is to use an NSAP-address for each path -through the network layer -(or protocol suite). -This was rejected in the ARGO design because it puts the burden -on the calling application entity or network entity to -determine the proper NSAP-address to use to determine the protocol -suite to be used to reach the destination end system. -For this reason, none of the approaches suggested in ISO is adopted -here. -.pp -The glue provided in the ARGO -kernel does not provide the full OSI network service. -It provides that subset of the network service that is used -by ARGO TP and by ARGO CLNP. -The OSI connection-oriented network service elements that are -are provided are described in Chapter Four, -in the section titled "Connection Oriented Network Service". -.pp -Each module using the glue has its own service -interface to the glue. -.\" When X.25 is used as a -.\"transport service, the standard protocol switch table is used, and the procedure -.\"\fIcons_usrreq()\fR is the protosw entry for a -.\"service in the iso protosw table that provides the -.\"SOCK_STREAM abstraction in the AF_ISO address family, -.\"with protocol ISOPROTO_X25. -.\"This service is called XTS in the glue code and hereafter -.\"in this document. -.\".pp -When the transport layer uses the glue as a network service, -the interface is the procedure -.(b -\fC -.TS -tab(+); -l s s s. -error = cons_output( isop, m, len, isdgm ) -.T& -l l l. - +struct isopcb +*isop; - +struct mbuf +*m; - +int+error, len, isdgm; -.TE -\fR -.)b -.pp -When the network layer uses the glue as a subnetwork service -the interface is the device driver-like procedure -.(b -\fC -.TS -tab(+); -l s s s. -error = cosns_output( ifp, m, dst ) -.T& -l l l. - +struct ifnet +*ifp; - +struct mbuf +*m; - +struct sockaddr_iso +*dst; - +int+error; -.TE -\fR -.)b -.pp -When the glue is used as a connection-oriented service -(i.e., by TP 0, and by TP 4 during the transport -connection establishment phase, during which -it is not yet known whether class 0 or class 4 will be used) -the following procedures are used: -.(b -\fC -.TS -tab(+); -l s s s. -error = cons_openvc( copcb, dstaddr, so ) -.T& -l l l. - +struct cons_pcb +*copcb; - +struct sockaddr_iso +*dstaddr; - +struct socket+*so; -.T& -l s s s. - +++ -error = cons_netcmd( cmd, isop, vc, isdgm ) -.T& -l l l. - +int+cmd; - +struct isopcb +*isop; - +int+channel, isdgm; -.TE -\fR -.)b -.pp -The procedure \fIcons_openvc()\fR places a call. -The procedure \fIcons_netcmd()\fR accepts, rejects, or clears -a call. -There is no incoming call indication, because -the glue uses the passive open model for accepting calls. -The HLP simply sees a new incoming packet, and is given -a virtual circuit number (channel) along with the incoming packet. -If the HLP chooses to reject the call -it may do so, which will cause the virtual circuit (VC) to be cleared. -.pp -The glue may reject (clear) an incoming call for its own reasons. -The following table lists the reasons that the glue may -clear a call and the ISO 8208 diagnostic code used on the X.25 clear packet -in each case. -For a complete list of the permissible diagnostic codes, see -Figure 14-B of ISO 8208. -.in -5 -.(b -.TS -center expand box tab(+); -l l. -Reason+Diagnosic code -= -The VC was opened for use with CLNP +Higher level initiated reset -or TP 4 and has been idle for the +user resynchronization -maximum inactivity time. +(0xfa) -_ -The HLP closed +Higher level initiated disconnection -this network connection. +- normal (0xf1) -_ -The HLP rejected +Higher level initiated connection -this network connection. +rejection - transient condition (0xf4) -_ -The X.25 call packet contained +Higher level initiated connection -facilities that are not supported +rejection - incompatible -by the glue, or did not contain +information in user data (0xf8) -necessary information, e.g. calling + -or called DTE address. + -_ -The X.25 call packet contained +Higher level initiated connection -call user data that does not +rejection - unrecognizable protocol -indicate any HLP supported by ARGO +identifier in user data -HLP supported by ARGO +(0xf9) -_ -The given destination +OSI Network service problem: NSAP -NSAP-address is not supported +address unknown (permanent - +condition) (0xeb) -_ -The X.25 packet or a facility +Packet not allowed- -therein was too long +packet too long. (0x27) -.TE -.)b -.in +5 -.pp -The glue provides several functions common to all -modules (HLPs) that use the glue. -Regardless of the HLP, -the DTE addresses and NSAP addresses are associated in the same -manner. -One same network layer protocol identification scheme -(ISO PDTR 9577) for all HLPs. -Several different HLPs need to close inactive X.25 -virtual circuits after a timer expires. -The glue insulates the -device driver interface to the X.25 coprocessor -from the HLP. -.pp -TP class 0 connections -.\" and the X.25 "transport service" -do not share X.25 VCs -.\" with each other or among transport service-level circuits (sockets), -so -.\" these two modules need to keep X.25 -the glue needs to maintain -a 1-1 correspondence between VCs -and sockets. -.\" For use by TP 0 and XTS, -For use by TP 0, -one network-level pcb is needed for each socket, and that is a -\fIcons_pcb\fR, described below. -.pp -TP class 4 connections may share VCs, -and TP 4 makes no correspondence between sockets and VCs. -CLNP regards VCs similarly to TP 4. -A given VC may be used simultaneously for many higher level connections, -but all higher level connections using a given VC must use the same -path or protocol suite. -In other words, a TP4 connection running over CONS may not share a -VC with a TP4 connection running over CLNS/COSNS. -.pp -To manage VCs and to maintain the separation of sharable and non-sharable -VCs, the glue uses the following protocol control block: -.(b -\fC -.TS -tab(+); -l s s s. -struct cons_pcb { -.T& -l l l. - +struct isopcb+_co_isopcb; -+u_short+co_state; -+u_char+co_flags; -+u_short+co_ttl; -+u_short+co_init_ttl; -+int+co_channel; -+struct ifnet+*co_ifp; -+struct protosw+*co_proto; -+struct dte_addr+co_peer_dte; -+struct ifqueue+co_pending; -}; -.T& -l l s. -#define co_next+_co_isopcb.isop_next -#define co_prev+_co_isopcb.isop_prev -#define co_head+_co_isopcb.isop_head -#define co_laddr+_co_isopcb.isop_laddr -#define co_faddr+_co_isopcb.isop_faddr -#define co_lport+_co_isopcb.isop_laddr.siso_tsuffix -#define co_fport+_co_isopcb.isop_faddr.siso_tsuffix -#define co_route+_co_isopcb.isop_route -#define co_socket+_co_isopcb.isop_socket -}+ -.TE -\fR -.)b -.pp -The \fIcons_pcb\fR contains -an \fIisopcb\fR so that TP 0 -.\" and XTS -may use the routines that manipulate \fIisopcb\fR structures for allocating -and -deallocating PCBs, binding addresses to PCBs, -and finding routes. -.pp -A CONS PCB has states CLOSED, LISTENING, CLOSING, -CONNECTING, ACKWAIT, and OPEN. -This represents the state of the VC to the degree necessary to the glue. -The glue uses the passive open model for opening VCs. -The coprocessor device driver always accepts -incoming calls and passes an indication to the glue when -a call is accepted by the coprocessor. -If the user of the glue (the HLP) or the glue itself decides -that the VC is not desired, the VC is cleared. -.pp -The \fIcons_pcb\fR contains a bit mask, \fIco_flags\fR, with values: -.(b -\fC -.TS -tab(+); -l l l l. -#define+CONSF_OCRE+0x40+/* created on OUTPUT */ -#define+CONSF_ICRE+0x20+/* created on INPUT */ -#define+CONSF_DGM+0x04+/* for datagram use only */ -.TE -\fR -.)b -.pp -The flag -CONSF_DGM means that the VC is being used to provide a -datagram (connectionless, unreliable, unsequenced) -service to the higher layer, and that requests for additional VCs -from the same higher layer entity -may be served by this VC, effectively -multiplexing higher layer connections on this VC. -When this flag is set in a \fIcons_pcb\fR, there is no associated -\fIco_socket\fR pointer. -When CONSF_DGM is not set, there is an associated -\fIco_socket\fR pointer, and the VC is being used for -TP 0. -.pp -The flag -CONSF_ICRE means that the VC was created by -and incoming call indication. -The flag -CONSF_OCRE means that the VC was created -on behalf of an outgoing call request. -.pp -The \fIstruct dte_addr\fR field, \fIco_peer_dte\fR, -contains the peer's DTE address. -The glue locates VCs by searching the list of protocol control -blocks for a PCB with a DTE matching that desired. -.pp -The glue is given an NSAP-address by the HLP entity. -The glue finds the desired DTE address by searching the -ES-IS SNPA cache for an SNPA-address (DTE address) associated -with the NSAP-address given by the HLP entity. -This means that to use the CONS, an entry for each desired -peer must appear in the SNPA cache. -ARGO does not provide the ES-IS protocol for use with ISO 8208, so -"permanent" or static entries must be placed in this cache by hand, -using the utility program \fIclnlutil\fR. -.pp -When an incoming call is accepted, the peer's DTE address is -placed in the SNPA cache along with -an NSAP address generated as follows: -.np -If the incoming call contained the peer's NSAP-address -in an Address Extension Facility (AEF, available with 1984 X.25), -this NSAP-address is used, otherwise -.np -the glue creates a "type-37" address (the format defined by AFI 37 -in ISO 8348/AD 2). -.pp -TP 4 can have its outgoing packets sent on more than one VC. -The glue presently contains no mechanism for fanning outgoing -packets onto several VCs, however, -it does not prohibit packets arriving for TP 4 on any VC that -opened with the protocol identifier for TP. -.pp -The glue has the ability to generate AEFs on outgoing calls, but -this ability is turned off, -since the public data network on which ARGO runs at Wisconsin -does not support 1984 X.25, and so it rejects packets containing -AEFs. -The use of AEFs can be reinstated by making a kernel with the -option \fBX25_1984\fR or by adding the line -.nf -.in +5 -\fC -#define X25_1984 -\fR -.in -5 -.fi -at the top of the file -\fC/sys/netargo/if_cons.c\fR -and rebuilding the kernel. diff --git a/share/doc/iso/wisc/net_serv.nr b/share/doc/iso/wisc/net_serv.nr deleted file mode 100644 index 4608f014082a..000000000000 --- a/share/doc/iso/wisc/net_serv.nr +++ /dev/null @@ -1,163 +0,0 @@ -.NC "Network Service Interface" -.sh 1 "Connectionless Network Service" -.pp -This section describes the interface to the ISO connectionless network service. -There are really two interfaces to the CLNS: the internal interface -and the IPC interface. -The internal interface is based on -procedure calls. It is used only within the kernel. The IPC interface -allows a user process to access the CLNS directly. This is used only -for testing and debugging purposes. -.sh 2 "Primitives" -.pp -The CLNS is, by definition, connectionless. Therefore, there are no -primitives associated with connection establishment or connection release. -There is one primitive associated with data transfer: N-UNITDATA. -The parameters to a N-UNITDATA request are: source NSAP address, -destination NSAP address, quality of service, and user data. -The parameters of a N-UNITDATA indication are identical to those of the -request. -In this implementation, the quality of service parameter is not supported. -.sh 2 "Internal Interface" -.pp -Within the kernel, an N-UNITDATA request is effected by the procedure -\fIclnp_output()\fR: -.(b -\fC -.TS -tab(+); -l s s. -clnp_output(m0, isop, datalen, flags) -.T& -l l l. - +struct mbuf+*m0;+/* data */ - +struct isopcb+*isop;+/* ISO protocol control block */ - +int+datalen;+ - +int+flags;+/* flags */ -.TE -\fR -.)b -This procedure will construct a DT NPDU, route it, and transmit it on -the appropriate subnetwork. \fIM0\fR is an mbuf chain containing the -user data portion of the N-UNITDATA request. \fIIsopcb\fR is the iso protocol -control block previously allocated. \fIClnp_output\fR will use the following -fields: \fIisop_laddr\fR, isop_faddr, isop_route, isop_options, -isop_optindex, \fI and \fRisop_clnpcache\fR. -\fIDatalen\fR specifies the number of bytes of user data. -The \fIflags\fR parameter will be discussed in a subsequent chapter. -.pp -A N-UNITDATA indication occurs when a DT NPDU arrives. The indication is -generated by calling the appropriate upper layer protocol input routine. -In the case of TP, the procedure \fItpclnp_input()\fR is called: -.(b -\fC -.TS -tab(+); -l s s. -tpclnp_input(m, src, dst, len) -.T& -l l l. - +struct mbuf+*m;+/* DT NPDU */ - +struct iso_addr+*src;+/* source of packet */ - +struct iso_addr+*dst;+/* destination of packet */ - +int+len;+/* length of clnp header */ -.TE -\fR -.)b -\fIM\fR contains the entire DT NPDU packet. \fILen\fR indicates the size -of the CLNP header. In other words, the user data of the DT NPDU begins -\fIlen\fR bytes into \fIm\fR. \fISrc\fR and \fIdst\fR indicate the -source and destination NSAP addresses of the packet. -.sh 3 "CLNP/Subnetwork Interface" -.pp -The design of the interface between the subnetwork and the CLNP is -determined by the design of the Unix network interface drivers. CLNP -follows the conventional mechanisms for exchanging packets with a network -interface. See the section on Network Interface Drivers in Chapter Five -for more information on these conventions. -.sh 2 "IPC (\*(lqRaw\*(rq) Interface" -.pp -The IPC interface to the CLNS allows direct (called \*(lqraw\*(rq) -access to CLNP. -This interface is intended for testing and debugging only. -Its use results in the -transmission of CLNP datagrams with nonstandard identification fields. -These raw packets may be rejected by a system not employing the same -convention. See the section on network implementation for more information -about the conventions. -.pp -In order to gain access to the raw interface -a \fIsocket\fR, with address family AF_ISO and type SOCK_RAW must be created. -With this socket in hand, -the system calls \fIsendto()\fR and \fIrecvfrom()\fR can be used to -transmit and receive raw CLNP datagrams. -.sh 3 "Sending raw datagrams" -.pp -The format of the \fIsendto()\fR system call is: -.(b -\fC -.TS -tab(+); -l s s. -cc = sendto(s, msg, len, flags, to, tolen) -.T& -l l l. -int+cc,s; -char+*msg; -int+len,flags; -struct sockaddr+*to; -int+to; -.TE -\fR -.)b -\f\fIS\fR is the socket previously created. \fIMsg\fR is a pointer to -the data for the NPDU. CLNP will prepend a header to this data before -transmission. \fILen\fR specifies the number of bytes of data. The -\fIflags\fR parameter is unused and should be zero. \fITo\fR specifies the -NSAP address to be used as the destination address. The size (in bytes) -of \fIto\fR is given in \fItolen\fR. CLNP will automatically insert -the source address based upon the route taken by the packet. The number of -user data bytes transmitted is returned as \fIcc\fR. See \fIsendto(2)\fR -for more information on this system call. -.sh 3 "Receiving raw datagrams" -.pp -The format of the \fIrecvfrom()\fR system call is: -.(b -\fC -.TS -tab(+); -l s s. -cc = recvfrom(s, buf, len, flags, from, fromlen) -.T& -l l l. -int+cc,s; -char+*buf; -int+len,flags; -struct sockaddr+*from; -int+*fromlen; -.TE -\fR -.)b -When used with a CLNP raw socket \fIs\fR, \fIrecvfrom()\fR will read a -NPDU from the CLNS. If no packet is available, the call will block. -\fIBuf\fR specifies a buffer of \fIlen\fR bytes into which the NPDU will -be read. The entire packet, including the header, will be read into the -buffer. The \fIflags\fR parameter is unused, and should be zero. If -\fIfrom\fR is non-zero, the source address of the NPDU is filled in. -\fIFromlen\fR is a value-result parameter, initialized to the size of -the buffer associated with \fIfrom\fR, and modified on return to -indicate the actual size of the address stored there. The total number -of bytes received (header and data) is returned as \fIcc\fR. -See \fIrecvfrom(2)\fR for more information about this system call. -.sh 1 "Connection Oriented Network Service" -.pp -The ARGO Connection Oriented Network Service (CONS) is not a complete -implementation of the -OSI network service. -It is that subset of the OSI network service that is used -by ARGO Transport and by ARGO CLNP. -.\" FIGURE -.so figs/NS_primitives.nr -.pp -.CF -shows which CONS service elements are provided. diff --git a/share/doc/iso/wisc/parts.nr b/share/doc/iso/wisc/parts.nr deleted file mode 100644 index 1cd70b12003e..000000000000 --- a/share/doc/iso/wisc/parts.nr +++ /dev/null @@ -1,39 +0,0 @@ -.\"$Header: parts.nr,v 1.1 88/12/05 18:10:50 nhall Exp $ -.\"$Source: /usr/argo/doc/kernel/RCS/parts.nr,v $ -.\" -.\" -.\" LOOK FOR ALL CASES OF 'writing' (as in, "at this writing") -.\" to be sure you've updated everything before distributing this! -.\" -.\"This file uses -me and tbl macros. -.so macros.nr -.pn 1 -.IC -.IF -.(l C -.sz 16 -Wisconsin ARGO Kernel Programmer's Guide for -Academic Information Systems 4.3 - -Current source: argo:/usr/argo/doc/kernel -.sz 8 -.)l -.so ../icon/ARGO.nr -.he 'ARGO Kernel Programmer\'s Guide''' -.fo '%''\*(td' -.bp -.\".so intro.nr -.\".so def.nr -.\".so trans_serv.nr -.\".so net_serv.nr -.\".so ipc.nr -.\".so addr.nr -.so trans_design.nr -.\".so net_design.nr -.\".so errors.nr -.\".so debug.nr -.\".so appendix_a.nr -.\".so appendix_b.nr -.\".fo ''Table of Contents'' -.bp -.xp diff --git a/share/doc/iso/wisc/preview b/share/doc/iso/wisc/preview deleted file mode 100755 index 6069d4e9e09f..000000000000 --- a/share/doc/iso/wisc/preview +++ /dev/null @@ -1,7 +0,0 @@ -#! /bin/csh -f -echo $argv -set dev=fa -foreach m ($argv) - grn -P$dev $m.grn > $m.nr - ditroff -P$dev $m.nr -end diff --git a/share/doc/iso/wisc/program.nr b/share/doc/iso/wisc/program.nr deleted file mode 100644 index dfb33055260a..000000000000 --- a/share/doc/iso/wisc/program.nr +++ /dev/null @@ -1,51 +0,0 @@ -.\"$Header: program.nr,v 1.1 88/12/05 18:10:57 nhall Exp $ -.\"$Source: /usr/argo/doc/kernel/RCS/program.nr,v $ -.\" -.\" -.\" FONT CONVENTIONS -.\" -.\" \fIprocedure()\fR -.\" \fIsyscall()\fR -.\" \fImanpage(3)\fR -.\" \fIdata_structure_name\fR -.\" \fC/file/or/directory/name\fR -.\" \fC -.\" section of code -.\" \fR -.\" -.\" -.\" LOOK FOR ALL CASES OF 'writing' (as in, "at this writing") -.\" to be sure you've updated everything before distributing this! -.\" -.\"This file uses -me and tbl macros. -.so macros.nr -.pn 1 -.IC -.IF -.(l C -.sz 16 -Wisconsin ARGO 1.0 Kernel Programmer's Guide for -Academic Operating Systems 4.3 -.sz 8 -.)l -.so ../icon/ARGO.nr -.he 'ARGO 1.0 Kernel Programmer\'s Guide''' -.fo '%''December 9, 1988' -.bp -.so intro.nr -.so def.nr -.so trans_serv.nr -.so net_serv.nr -.so ipc.nr -.so addr.nr -.so trans_design.nr -.so net_design.nr -.so eicon.nr -.so errors.nr -.so debug.nr -.so appendix_a.nr -.\" Leave manual pages out! -.\".so appendix_b.nr -.fo ''Table of Contents'' -.bp -.xp diff --git a/share/doc/iso/wisc/trans_design.nr b/share/doc/iso/wisc/trans_design.nr deleted file mode 100644 index f0f80952c0ea..000000000000 --- a/share/doc/iso/wisc/trans_design.nr +++ /dev/null @@ -1,1468 +0,0 @@ -.\" $Id$ -.\" -.NC "The Design of the ARGO Transport Entity" -.sh 1 "Protocol Hooks" -.pp -The design of the AOS kernel IPC support to some -extent mandates the -design of protocols. -Each protocol must provide the following -protocol hooks, which are procedures called through a -protocol switch table -(an array of type \fIprotosw\fR as described in -Chapter Five. -.ip "pr_input()" 5 -Called when data are to be passed up from a lower layer. -.ip "pr_output()" 5 -Called when data are to be passed down from a higher layer. -.ip "pr_init()" 5 -Called when the system is brought up. -.ip "pr_fasttimo()" 5 -Called every 200 milliseconds by the clock functional unit. -.ip "pr_slowtimo()" 5 -Called every 500 milliseconds by the clock functional unit. -.ip "pr_drain()" 5 -This is meant to be called when buffer space is low. -Each protocol is expected to provide this routine to free -non-critical buffer space. -This is not yet called anywhere. -.ip "pr_ctlinput()" 5 -Used for exchanging information between -protocols, such as notifying a transport protocol of changes -in routing or configuration information. -.ip "pr_ctloutput()" 5 -Supports the protocol-dependent -\fIgetsockopt()\fR -and -\fIsetsockopt()\fR -options. -.ip "pr_usrreq()" 5 -Called by the socket code to pass along a \*(lquser request\*(rq - -in other words a service primitive. -This call is also used for other protocol functions. -The functions served by the \fIpr_usrreq()\fR routine are: -.ip " PRU_ATTACH" 10 -Creates a protocol control block and attaches it to a given socket. -Called as a result of a \fIsocket()\fR system call. -.ip " PRU_DISCONNECT" 10 -Called as a result of a -\fIclose()\fR system call. -Initiates disconnection. -.ip " PRU_DETACH" 10 -Disassociates a protocol control block from a socket and recycles -the buffer space used for the protocol control block. -Called after PRU_DISCONNECT. -.ip " PRU_SHUTDOWN" 10 -Called as a result of a -\fIshutdown()\fR system call. -If the protocol supports the notion of half-open connections, -this closes the connection in one direction or both directions, -depending on the arguments passed to -\fIshutdown\fR. -.ip " PRU_BIND" 10 -Gives an address to a socket. -Called as a result of a -\fIbind()\fR system call, also -when -socket without a bound address is used. -In the latter case, an unused transport suffix is located and -bound to the socket. -.ip " PRU_LISTEN" 10 -Called as a result of a -\fIlisten()\fR system call. -Marks the socket as willing to queue incoming connection -requests. -.ip " PRU_CONNECT" 10 -Called as a result of a -\fIconnect()\fR system call. -Initiates a connection request. -.ip " PRU_ACCEPT" 10 -Called as a result of an -\fIaccept()\fR system call. -Dequeues a pending connection request, or blocks waiting for -a connection request to arrive. -In the latter case, it marks the socket as willing to accept -connections. -.ip " PRU_RCVD" 10 -The protocol module is expected to have put incoming data -into the socket's receive buffer, \fIso_rcv\fR. -When a receive primitive is used -(\fIrecv(), recvmsg(), recvfrom(), -read(), readv(), \fRand -\fIrecvv()\fR system calls) -the socket code module copies data from the -\fIso_rcv\fR to the user's -address space. -The protocol module may arrange to be informed each time the socket code -does this, in which case the socket code calls \fIpr_usrreq\fR(PRU_RCVD) -after the data were copied to the user. -.ip " PRU_SEND" 10 -This performs the protocol-dependent part of a send primitive -(\fIsend(), sendmsg(), sendto(), write(), writev(), -\fRand \fIsendv()\fR system calls). -The socket code -(procedures \fIsendit() and \fIsosend()\fR) -moves outgoing data from the user's -address space into a chain of \fImbufs\fR. -The socket code takes as much data from the user as it -determines will fit into the outgoing socket buffer, so_snd. -It passes this much data in the form of an mbuf chain to the protocol -via \fIpr_usrreq\fR(PRU_SEND). -If there are more data than -the so_snd can accommodate, -the socket code, which is running on behalf of a user process, -puts the user process to sleep. -The protocol module is expected to wake up the user process when -more room appears in so_snd. -.ip " PRU_ABORT" 10 -Called when a socket is closed and that socket -is accepting connections and has -queued pending -connection requests or -partially open connections. -.ip " PRU_CONTROL" 10 -Called as a result of an -\fIioctl()\fR system call. -.ip " PRU_SENSE" 10 -Called as a result of an -\fIfstat()\fR system call. -.ip " PRU_RCVOOB" 10 -Performs the work of receiving \*(lqout-of-band\*(rq data. -The socket module has already allocated an mbuf into which -the protocol module is expected to put the incoming -\*(lqout-of-band\*(rq data. -The socket code will then move the data from this mbuf -to the user's address space. -.ip " PRU_SENDOOB" 10 -Performs the work of sending \*(lqout-of-band\*(rq data. -The socket module has already moved the data -from the user's address space into a chain of mbufs, -which it now passes to the protocol module. -.ip " PRU_SOCKADDR" 10 -Supports the system call -\fIgetsockname()\fR. -Puts the socket's bound address into an mbuf. -.ip " PRU_PEERADDR" 10 -Supports the system call -\fIgetpeername\fR(). -Puts the peer's address into an mbuf. -.ip " PRU_CONNECT2" 10 -This is used in the Unix domain to support pipes. -It is not generally supported by transport protocols. -.ip " PRU_FASTTIMO, PRU_SLOWTIMO" 10 -These are superfluous. -None of the transport protocols uses them. -.ip " PRU_PROTORCV, PRU_PROTOSEND" 10 -None of the transport protocols uses these. -.ip " PRU_SENDEOT" 10 -This was added to support TP. -This indicates that the end of the data sent in this -send primitive should -be marked by the protocol as the end of the TSDU. -.sh 1 "The Interface Between the Transport Entity and Lower Layers" -.pp -The transport layer may run over a network layer such as IP -or the ISO connectionless network layer, -or it may run over a multi-purpose layer such as the service -provided by X.25. -X.25 is viewed as a network layer when -TP runs over X.25, and as a -subnetwork layer -when IP is running over X.25. -The software interface between data link and network layers differs -considerably from the software interface between transport and network -layers in AOS. -For this reason some modification of the transport-to-lower-layer -interface is necessary to support the suite of protocols included in -ARGO. -.pp -In AOS it is assumed that the transport layer will run over one -and only one network layer, and therefore it may call the -network layer output procedure directly. -In order to allow TP to run over a set of lower layers, -all domain-specific functions have been put into a set of routines -that are called indirectly through a domain-specific switch table. -The primary reason for this is that the transport and network -layers share information, mostly information pertaining to addresses. -The protocol control blocks for different network layers -differ, so the transport layer cannot just directly -access the network layer's pcb. -Similarly, a network layer may not directly access the transport -pcb because a multitude of transport protocols can run over each -of the network protocols. -.pp -To permit different network-layer protocol control blocks to coexist -under one transport layer, all transport-dependent control -information was put into a transport-specific protocol control block. -A new field, \fIso_tpcb\fR, -was added to the \fIsocket\fR structure to hold a pointer to -the transport-layer protocol control block. -The existing -field \fCso_pcb\fR is used for the network layer pcb. -.pp -The following structure was added to allow domain-specific -functions to be called indirectly. -All these functions operate on a network-layer pcb. -.pp -.(b -\fC -.TS -tab(+); -l s s s. -struct nl_protosw { -.T& -l l l l. -+int+nlp_afamily;+/* address family */ -+int+(*nlp_putnetaddr)();+/* puts addrs in pcb */ -+int+(*nlp_getnetaddr)();+/* gets addrs from pcb */ -+int+(*nlp_putsufx)();+/* transp suffix -> pcb */ -+int+(*nlp_getsufx)();+/* gets t-suffix */ -+int+(*nlp_recycle_suffix)();+/* zeroes suffix */ -+int+(*nlp_mtu)();+/* get maximum -+++transmission unit size */ -+int+(*nlp_pcbbind)();+/* bind to pcb */ -+int+(*nlp_pcbconn)();+/* connect */ -+int+(*nlp_pcbdisc)();+/* disconnect */ -+int+(*nlp_pcbdetach)();+/* detach pcb */ -+int+(*nlp_pcballoc)();+/* allocate a pcb */ -+int+(*nlp_output)();+/* emit packet */ -+int+(*nlp_dgoutput)();+/* emit datagram */ -+caddr_t+nlp_pcblist;+/* list of pcbs -+++for management -+++of connections */ -}; -.TE -\fR -.)b -.lp -The switch is based on the address family chosen when the -\fIsocket()\fR system call is made prior to connection establishment. -This unfortunately ties the address family to the domain, -but the only alternative is to add an argument to the \fIsocket()\fR -system call to let the user specify the desired network layer. -In the case of a connection oriented environment with no multi-homing, -it would be possible to determine which network layer is to be -used -from routing -information, but to do this requires unrealistic assumptions -about the environment. -For these reasons, linking the address family to the network -layer protocol is seen as the least of the evils. -The transport suffixes are kept in the network layer's pcb -as well as in the transport layer because -full transport address pairs are used to identify a connection -in the Internet domain. -.sh 1 "The Architecture of the Transport Protocol Entity" -.pp -A set of protocol hooks is required -by the AOS IPC architecture. -These hooks are used by the protocol-independent parts of the kernel -to gain entry to protocol-specific code. -The protocol code can be entered in one of the following ways: -.ip "1) " 5 -at boot time, when autoconfiguration -initializes each protocol through -the -\fIpr_init()\fR -hook, -.ip "2) " 5 -from above, either -a user program making a system call, through -the \fIpr_usrreq()\fR or \fIpr_ctloutput()\fR hooks, or -from a higher layer protocol using the -\fIpr_output()\fR hook, -.ip "3) " 5 -from below, a device interrupt servicing an incoming packet -through the \fIpr_input()\fR and \fIpr_ctlinput()\fR hooks, and -.ip "4) " 5 -from a clock interrupt through the \fIpr_slowtimo()\fR -or the -\fIpr_fasttimo()\fR hook. -.\" FIGURE -.so figs/trans_flow.nr -.\".so figs/trans_flow.grn -.pp -The protocol code can be divided into -the following modules, which are described in more detail below. -.CF -shows the flow of data and control -among these modules. -.in +5 -.ip "Timers and References:" 5 -The code executed on behalf of \fIpr_slowtimo()\fR. -The fast timeout is not used by TP. -.ip "Driver:" 5 -This is the finite state machine for TP. -.ip "Input: " 5 -This is the module that decodes incoming packets, -identifies or creates the pcb for which -the packet is destined, and creates an "event" to -pass to the driver. -.ip "Output:" 5 -This is the module that creates a packet header of a given type -with fields containing -values that are appropriate to the connection -on which the packet is being sent, appends data if necessary, -and hands a packet -to the lower layer, according to the transport-to-lower-layer -interface. -.ip "Send: " 5 -This module packetizes data from the outbound -socket buffer, \fIso_snd\fR, -handles retransmissions of packetized data, and -drops packetized data from the retransmission queue. -.ip "Receive:" 5 -This module reorders packets if necessary, -depacketizes data, passes it to the socket code module, -and determines when acknowledgments should be sent. -.in -5 -.sh 1 "Timers and References" -.pp -TP identifies sockets by \fIreference numbers\fR, or -\fIreferences\fR, -which are \*(lqfrozen\*(rq (may not be reassigned) -until some locally defined time after -a connection is broken and its protocol control block -is discarded. -An array of \fIreference blocks\fR is maintained by TP. -The reference number of a reference block is its -offset in the array. -When a reference block is in use it contains -a pointer to the pcb for the socket to which the -reference applies. -.pp -The system clock calls the \fIpr_slowtimo()\fR and -\fIpr_fasttimo()\fR hooks for each protocol in the protocol switch table -every 500 and 200 microseconds, respectively. -Each protocol handles its own timers its own way. -The timers in TP take two forms -- those that typically are cancelled and -those that usually expire. -The latter form may have more than one instantiation at any given -time. -The former may not. -The two are implemented slightly -differently for the sake of performance. -.pp -The timers that normally expire -are kept in a queue, their values all relative -to the value of preceding timer. -Thus all timer values are decremented by a single -operation on the value of the first timer. -The timer is represented by the Ecallout structure: -.(b -\fC -.TS -tab(+); -l s s s. -struct Ecallout { -.T& -l l l l. -+int+c_time;+/* incremental time */ -+int+c_func;+/* function to call */ -+u_int+c_arg1;+/* argument to routine */ -+u_int+c_arg2;+/* argument to routine */ -+int+c_arg3;+/* argument to routine */ -+struct Ecallout+*c_next; -}; -.TE -\fR -.)b -.lp -When an Ecallout structure migrates to the head -of the E timer list, and its \fIc_time\fR -field is decremented to zero, -the function stored in \fIc_func\fR is -called, with \fIc_arg1, c_arg2\fR, and \fIc_arg3\fR -as arguments. -Setting and cancelling these timers -are accomplished by a linear search and one -insertion or deletion from the timer queue. -This queue is linked to the -reference block associated with a communication endpoint. -This form used for the reference timer -and for the retransmission timers for data TPDUs. -.pp -The second form of timer, the type that -typically is cancelled, is used for several -timers - the inactivity timer, the sendack timer, -and the retransmission -timer for all types of TPDUs except data TPDUs. -.(b -\fC -.TS -tab(+); -l s s s. -struct Ccallout { -.T& -l l l l. -+int+c_time;+/* incremental time */ -+int+c_active;+/* this timer is active? */ -}; -.TE -\fR -.)b -.lp -All of these timers are stored -directly -in the reference block. -These timers are decremented in one linear scan of -the reference blocks. -Cancelling, setting, and both -cancelling and resetting one of these timers is accomplished by a -single assignment to an array element. -.sh 1 "Driver" -.pp -This is the finite state machine for TP. -A connection is managed by the finite state machine (fsm). -All events that pertain to a connection cause the -finite state machine driver to be called. -The driver takes two arguments - the pcb for the connection -and an event structure. -The event structure contains a field that discriminates -the different types of events, and a union of -structures that are specific to the event types. -The driver evaluates a set of predicates based on the current -state of the finite state machine (which is kept in the pcb) and the event type. -The result of the predicate evaluation determines -a set of actions to take and a state transition. -The driver takes the actions and if they complete -without errors, the driver makes the state transition. -.pp -The states, event types, predicates, actions, and state transitions are all -specified as a \fIxebec transition file\fR. -\fIXebec\fR is a utility that takes a human-readable description -of a finite state machine -and produces a set of tables and C source code for the driver. -The driver procedure is called \fItp_driver()\fR. -It is located in a file generated by xebec, -\fCtp_driver.c\fR. -For more details about xebec, see the manual page \fIxebec(1)\fR. -.pp -The transition file for TP is \fCtp.trans\fR, -and it is a good place to begin a perusal of the TP -source code. -.sh 1 "Input" -.pp -This is the module that decodes an incoming packet, -locates or creates the pcb for which -the packet is destined, and creates an event to -pass to the driver. -The network layer passes a packet up to the appropriate -transport layer by indirectly calling a transport input -routine through the protocol switch table for the network -domain. -There is one protocol switch entry for TP for each domain in which -TP will run (Internet, ISO). -In the Internet domain, the protocol switch field \fIpr_input()\fR -takes the value \fItpip_input()\fR. -This procedure accepts a packet from IP, with the IP header -still intact. -It extracts the network addresses from the IP header, -strips the IP header, and calls the domain-independent -input procedure for TP, -\fItp_input()\fR. -\fITp_input()\fR -decodes a TPDU. -The multitude of options, the variable-length -nature of the options, the semantics of the -options, and the possible combinations of concatenated -TPDUs make this a -complex procedure. -It is sensitive to changes, and from -the point of view of a software maintenance, it is a -potential hazard. -Because it is in the -critical path of TP however, some compromise -was made between maintainability and efficiency. -Multiple copies of sections of code were avoided as much as -possible, -not for the sake of saving space, but rather for the sake -of maintainability. -Ironically, -this detracts somewhat from the readability of the code. -.pp -Once a TPDU has been decoded and a pcb has been -identified for the TPDU, -the appropriate fields of the TPDU -are extracted and their values are placed in -an event structure. -Finally, \fItp_driver()\fR is called with -the event structure and the pcb as parameters. -.sh 1 "Output" -.pp -This module creates a TPDU header of a given type -with field values that are appropriate to the connection -on which the TPDU is being sent, appends data if necessary, -and hands a TPDU -to the lower layer according to the transport-to-lower-layer -interface. -Whenever a TPDU is to be sent to the peer or prospective peer, -the function \fItp_emit()\fR -is called, passing as arguments the pcb a TPDU type and several miscellaneous -other type-specific arguments, possibly including some data. -The data are in the form of an mbuf chain. -\fITp_emit()\fR prepends to the data an mbuf containing a TP header, -fills in the fields of the header according to the parameters -given, performs the checksum if appropriate, and -calls a domain-specific output routine. -For the Internet domain, this output routine is -\fItpip_output()\fR, which takes -as arguments the mbuf chain representing the TPDU, -and a network level pcb. -Some protocol errors cannot be associated with -a connection -but require that TP issue -an ER TPDU or a DR TPDU. -When these errors occur the routine -\fItp_error_emit()\fR is called. -This procedure creates the appropriate type of TPDU -and passes it to a domain-dependent routine for transmitting datagrams. -In the Internet domain, -\fItpip_output_dg()\fR is called. -This takes as arguments an mbuf chain representing the TPDU, -a source network address, and a destination network address. -.sh 1 "Send" -.\" FIGURE -.so figs/mbufsnd.nr -.\".so figs/mbufsnd.grn -.pp -This module packetizes data from the outbound -socket buffer, \fIso_snd\fR, -handles retransmissions of packetized data, and -drops packetized data from the retransmission queue. -The major routine in this module is \fItp_send()\fR, which -takes a range of sequence numbers as arguments. -For each sequence number in the range, -it packetizes the an appropriate amount -of outbound data, and places the resulting TPDU on -a retransmission control queue subject to the -constraints imposed by the rules of expedited data, -maximum packet sizes, and end-of-TSDU markers. -.pp -The most complicating factor is that of managing -expedited data. -A normal datum may not be sent (for its first time) before the -acknowledgment of any expedited datum -that was received from the user after the -normal datum was received. -In order to enforce this rule, -each TPDU must be marked in some way -so that it will be known which expedited datum -must be delivered and acknowledged by the peer before this TPDU may be transmitted -for the first time. -Markers are placed in \fIso_snd\fR -when an -outgoing expedited datum arrives from the user. -A marker is an mbuf structure with an \fIm_len\fR -of zero, but with the data area nevertheless containing -the sequence number of an expedited data TPDU. -The \fIm_type\fR of a marker is a new type, MT_XPD. -.pp -\fITp_send()\fR stops packetizing data when it encounters a marker -for an unacknowledged expedited datum. -If it encounters a marker for an expedited TPDU that has already -been acknowledged, the marker is jettisoned. -.CF -illustrates the structure of the sending socket buffer used -for normal data. -.pp -When \fItp_send()\fR moves data from mbufs on \fIso_snd\fR to the retransmission -control queue, it needs to know -how many octets of data can be placed in each TPDU. -The appropriate amount depends on, among other things, -the maximum transmission unit of the network layer -on the route the packet will take. -To determine the maximum transmission unit, -TP queries the network layer through -the domain-dependent switch table's field, \fInl_mtu\fR. -In the Internet domain, this resolves to \fItp_inmtu()\fR. -The header sizes for the network and transport layers -also affect the amount of data that can go into a packet, -and these sizes depend on the connection's characteristics. -.pp -Once the maximum amount of data per TPDU is determined, -\fItp_send()\fR can pull this amount off the \fIso_snd\fR queue to form -a TPDU, -assign a TPDU sequence number, -and place the new TPDU on the -retransmission control queue. -The retransmission control queue is a list of mbuf chains. -Each mbuf chain represents one TPDU, preceded by an -\fIrtc structure\fR: -.(b -\fC -.TS -tab(+); -l s s s. -struct tp_rtc { -.T& -l l l l. -+struct tp_rtc+*tprt_next;+/* next rtc struct in list */ -+SeqNum+tprt_seq;+/* seq # of this TPDU */ -+int+tprt_eot;+/* end of TSDU? */ -+int+tprt_octets;+/* # octets in this TPDU */ -+struct mbuf+*tprt_data;+/* ptr to the octets of data */ -.\"/* Performance measurment info: */ -.\"int tprt_window; /* in which call to tp_send() was -.\" * this TPDU formed? -.\" */ -.\"struct timeval tprt_sess_time; /* time session received the -.\" * majority of the data for this packet on send; -.\" * on recv, this is the time it's given to session -.\" */ -.\"struct timeval tprt_net_time; /* time first copy was given to net layer -.\" * on send; on receive it's the time received from -.\" * the network -.\" */ -}; -.TE -\fR -.)b -.lp -Once TPDUs are on the retransmission control queue, -they are retransmitted or dropped by the actions -of timers. -The procedure \fItp_sbdrop()\fR -removes the TPDUs from the retransmission queue. -It takes a sequence number as an argument and drops -all TPDUs up to and including the TPDU with that sequence number. -.pp -When an AK TPDU arrives, the values from -its credit and sequence number fields -are passed to \fItp_goodack()\fR, which -determines whether or not the AK brought any news with it, -and therefore whether TP can send more data -or expedited data. -If this AK acknowledges something heretofore unacknowledged, -\fItp_goodack()\fR drops the appropriate TPDU(s) from the retransmission -control list, computes the smoothed average round trip time -and standard deviation of the round trip time, -and updates -the retransmission timer based on these statistics. -It sets a flag in the pcb if the TP entity is obliged to -send the flow control confirmation parameter on its next -AK TPDU. -\fITp_goodack()\fR returns true if the AK brought some news with it, -either with respect to a change in credit or with respect to -new acknowledgments. -.pp -The function \fItp_goodXack()\fR is called when an XAK TPDU -arrives. -It takes the XAK sequence number as an argument and -determines if the XAK acknowledges the last XPD TPDU sent. -If so, it drops the expedited data from the outgoing -expedited data buffer. -By its definition in the TP specification, -the expedited data stream has a window -of size 1, -that is, -only one expedited datum (packet) can be buffered -at a time. -\fITp_goodXack()\fR returns true if the XAK acknowledged -the last XPD TPDU sent and the data were dropped, -and it returns false if the acknowledgment caused no action to be taken. -.\" NEXT FIGURE -.so figs/mbufrcv.nr -.\".so figs/mbufrcv.grn -.sh 1 "Receive" -.pp -This module reorders incoming TPDUs if necessary, -depacketizes data, passes it to the socket code module, -and determines when acknowledgments should be sent. -The function -\fItp_stash()\fR -takes an DT TPDU as an argument, and if the TPDU is not in -sequence, it saves the TPDU in a \fItp_rtc\fR structure in -a list, with the TPDUs -kept in order. -When the next expected TPDU arrives, the -list of out-of-order TPDUs is scanned for -more TPDUs in sequence, updating -a field in the pcb, \fItp_rcvnxt\fR which -always contains the sequence -number of -the next expected TPDU. -If an acknowledgment is to be generated -at any time, the value of tp_rcvnxt goes into the -\fIYR-TU-NR\fR\** field of the acknowledgment TPDU. -.(f -\** -This is the name used in ISO 8073 for the field -which indicates the sequence number of the next expected DT TPDU. -.)f -.pp -\fITp_stash()\fR returns true if an acknowledgment needs to be generated -immediately, false not. -The acknowledgment strategy is therefore implemented in this routine. -Acknowledgments may be generated for one or more of several reasons, -listed below. -\fITp_stash()\fR increments a counter for each of these reasons -for which an acknowledgment is generated, and a counter for TPDUs -that are not acknowledged immediately. -.ip "ACK_STRAT_EACH" 5 -The acknowledgment strategy in use calls for acknowledging each -data packet with an AK TPDU. -.ip "ACK_STRAT_FULLWIN" 5 -The acknowledgment strategy in use calls for acknowledging -upon receiving the DT TPDU that represents the upper window -edge of the last advertised window. -.ip "ACK_DUP" 5 -A duplicate data TPDU was received. -.ip "ACK_REORDER" 5 -A DT TPDU arrived in the window but out of order. -.ip "ACK_EOT" 5 -A DT TPDU arrived, and it had the end-of-TSDU flag set. -.pp -Upon receipt of a DT TPDU that is in order, and upon reordering -DT TPDUs, -\fItp_stash()\fR -places the TSDUs into the socket's receive -socket buffer, \fIso->so_rcv\fR in mbuf chains, with -TSDUs delimited by mbufs of the \fIm_type\fR MT_EOT, -which is a new type with the ARGO kernel. -.CF -illustrates the structure of the receiving socket buffer used -for normal data. -.pp -A separate socket buffer, \fItpcb->tp_Xrcv\fR, -is used for -buffering expedited data. -Only one expedited data packet may reside in this buffer at a time -because the TP standard limits the size of the window on expedited flow -to be 1. -This means the data structures are straightforward; -there is no need to distinguish between separate TSDUs in this socket buffer. -.pp -Credit is determined -by dividing the total amount of available -space in the receive buffer -by the negotiated maximum TPDU size. -TP can often offer a larger credit than this if it uses -an average of the measured actual TPDU sizes. -This strategy was once an option in the ARGO kernel, -but it was removed because unless the actual TPDU size -is constant, it leads to reneging of credit, -retransmissions, and decreased performance. -It does not work well when there is any fluctuation in the sizes -of TPDUs and it carries the penalty of lengthening the critical path -of the TP entity. -.sh 1 "Major Data Structures and Types" -.pp -In addition to the types commonly used in the kernel, -such as -.(b -\fC -.TS -tab(+); -l l l l. - +typedef+unsigned char+u_char; - +typedef+unsigned int+u_int; - +typedef+unsigned short+u_short; -.TE -\fR -.)b -TP uses the following types: -.(b -\fC -.TS -tab(+); -l l l l. - +typedef+unsigned int+SeqNum - +typedef+unsigned short+RefNum; - +typedef+int+ProtoHook; -.TE -\fR -.)b -.pp -Sequence numbers can be either 7 or 31 bits. -An unsigned integer is used in all cases, and the proper type -of arithmetic is performed with bit masks. -Reference numbers are 16 bits. -ProtoHook is the type of the procedures that are in switch -tables, which, -although they are not functions, -are declared \fIint\fR rather than \fIvoid\fR -to be consistent with the rest of the kernel. -.pp -The following structures are fundamental -types used throughout TP, -in addition to those already described in the -section, -"The Design of the Transport Entity". -.(b -\fC -.TS -tab(+); -l s s s. -struct tp_ref { -.T& -l l l l. -+u_char+tpr_state;+/* REF_FROZEN...*/ -+struct Ccallout+tpr_callout[N_CTIMERS];+/* C timers */ -+struct Ecallout+tpr_calltodo;+/* E timers list */ -+struct tp_pcb+*tpr_pcb;+/* --> PCB */ -}; -.TE -\fR -.)b -.lp -The reference structure is logically a part of the protocol -control block and it is linked to a pcb, but it may outlive -a pcb. -When a connection is dissolved, the pcb may be recycled -but the reference structure must remain until the reference -timer goes off. -The field \fItpr_state\fR takes the values -REF_FROZEN (a reference timer is ticking), -REF_OPEN (in use, has timers and an associated pcb), -REF_OPENING (has a pcb but no timers), and -REF_FREE (free to reallocate). -.pp -The TP protocol control block is too large to fit into -one mbuf structure so it comprises two structures -linked together, the -\fItp_pcb\fR structure and the. -\fItp_pcb_aux\fR structure. -The \fItp_pcb_aux\fR structure contains -items that are used less frequently than those in -the former structure, since each access to these -items requires a second pointer dereference. -.(b -\fC -.TS -tab(+); -l s s s. -struct tp_pcb_aux { -.T& -l l l s. - +struct sockbuf+tpa_Xsnd;+/* for expedited data */ -+struct sockbuf+tpa_Xrcv;+/* for expedited data */ -+u_char +tpa_vers;+/* protocol version */ -+u_char +tpa_peer_acktime;+/* to compute DT TPDU -+++retrans timer value */ -+SeqNum+tpa_Xsndnxt;+/* seq # of -+++next XPD to send */ -+SeqNum+tpa_Xuna;+/* seq # of -+++unacked XPD */ -+SeqNum+tpa_Xrcvnxt;+/* next XPD seq # -+++expect to recv */ -+/* addressing */ -+u_short+tpa_domain;+/* domain AF_ISO,...*/ -+u_short+tpa_fsuffixlen;+/* foreign suffix */ -+u_char+tpa_fsuffix[MAX_TSAP_SEL_LEN];+ -+u_short+tpa_lsuffixlen;+/* local suffix */ -+u_char+tpa_lsuffix[MAX_TSAP_SEL_LEN];+ -.T& -l s s s. - +/* AK subsequencing */ -.T& -l l l s. - +u_short+tpa_s_subseq;+/* next subseq to send */ -+u_short+tpa_r_subseq;+/* highest recv subseq */ -}; -.TE -\fR -.)b -.pp -The major portion of the protocol control block is in the -\fItp_pcb\fR structure: -.(b -\fC -.TS -tab(%); -l s s s. -struct tp_pcb { -.\" *************************************** -.T& -l l l l. -.\" The next line sets the spacing for the table: 1+3 17+3 17+3 13+3 - % % % -.\"456789 123456789- 123456789 123456-789 123456789 1234567890 -.\" - %struct tp_ref%*tp_refp;% -.T& -l l l s. -%%/* reference structure */% -.\" *************************************** -.T& -l l l l. - %struct tp_pcb_aux%*tp_aux;% -.T& -l l l s. - %%/*rest of tpcb (auxiliary struct)*/% -.\" *************************************** -.T& -l l l l. - %caddr_t%tp_npcb;%/* to ll pcb */ -%struct nl_protosw%*tp_nlproto;% -.T& -l l l s. - % %/* domain-dependent routines */% -.\" *************************************** -.T& -l l l l. - %struct socket%*tp_sock;%/* back ptr */ -.\" *************************************** -.T& -l s s s. - -/* local and foreign reference numbers: */ -.T& -l l l l. - %RefNum%tp_lref;% -%RefNum%tp_fref;% -.\" *************************************** -.T& -l s s s. -.\"456789 123456789 123456789 123456789 123456789 1234567890 - -/* Stuff for sequence space arithmetic: - * Maintaining 2 sequence spaces is a pain so we set these - * values once at connection establishment time. Sequence - * number arithmetic is a set of macros which uses these. - * Sequence numbers are stored as 32 bits. - * tp_seqmask tells which of the 32 bits is used. - * tp_seqibt is the lsb that is not used. When set, - * it indicates wraparound has occurred. - * tp_seqhalf is the value that is half the sequence space. - * (or half plus one). - */ -.T& -l l l l. -%u_int%tp_seqmask;%/* mask */ -%u_int%tp_seqbit;%/* wraparound */ -%u_int%tp_seqhalf;%/* half space */ -.\" *************************************** -.T& -l s s s. - -/* flags: values are defined in tp_user.h. - * Here we keep such info as which options - * are in use: checksum, extended format, - * flow control in class 2, etc. - * See tp(4p) man page. - */ -.\" *************************************** -.T& -l l l l. - %u_short%tp_state;%/* fsm */ -%short%tp_retrans;% -.T& -l l l s. - % % /* # times to retransmit */% -.\" *************************************** -.T& -l s s s. - -/* credit & sequencing info for SENDING: */ -.T& -l l l s. - %u_short%tp_fcredit;% - % %/* remote real window */% - %u_short%tp_cong_win;% - % %/* remote congestion window */% -.\" *************************************** -%SeqNum%tp_snduna;% -.T& -l l l s. - % %/* seq # of lowest unacked DT */% -.\" *************************************** -.T& -l l l l. - %struct tp_rtc %*tp_snduna_rtc;% -.T& -l l l s. - % %/* ptr to mbufs containing lowest% -%% * unacked TPDUs sent so far% -%% */% -.\" *************************************** -.T& -l l l l. - %SeqNum%tp_sndhiwat;% -.T& -l l l s. - % %/* highest DT sent yet */% -.\" *************************************** -.T& -l l l l. - %struct tp_rtc%*tp_sndhiwat_rtc;% -.T& -l l l s. - % %/* ptr to mbufs containing the last% -%% * DT sent - this is the last item % -%% * on the list that starts% -%% * at tp_snduna_rtc% -%% */% -.\" *************************************** -.T& -l l l l. - %int %tp_Nwindow;%/* for perf. measmt */ -.\" *************************************** -.T& -l s s s. - -/* credit & sequencing info for RECEIVING: */ -.\" *************************************** -.T& -l l l s. - %SeqNum%tp_sent_lcdt;% - %%/* cdt according to last AK sent */% - %SeqNum%tp_sent_uwe;% - % %/* upper window edge, according to% -%% * the last AK sent % -%% */* - %SeqNum%tp_sent_rcvnxt;% - % %/* rcvnxt, according to% -%% * the last AK sent% -%% */* -.\" *************************************** -.T& -l l l l. - %short%tp_lcredit;%/* local */ -.\" *************************************** -.T& -l l l l. - %SeqNum%tp_rcvnxt;% -.T& -l l l s. - % %/* next DT seq# we expect to recv */% -.\" *************************************** -.T& -l l l l. - %struct tp_rtc%*tp_rcvnxt_rtc;% -.T& -l l l s. - % %/* ptr to mbufs containing unacked % -%% * DTs received out of order, and % -%% * which we haven't acknowledged% -%% */% -.\" *************************************** -.TE -.TS -tab(%); -l s s s. -/* Items kept in the aux structure: */ - -.\" *************************************** -.T& -l s s l. -#define tp_vers%tp_aux->tpa_vers -#define tp_peer_acktime%tp_aux->tpa_peer_acktime -#define tp_Xsnd%tp_aux->tpa_Xsnd -#define tp_Xrcv%tp_aux->tpa_Xrcv -#define tp_Xrcvnxt%tp_aux->tpa_Xrcvnxt -#define tp_Xsndnxt%tp_aux->tpa_Xsndnxt -#define tp_Xuna%tp_aux->tpa_Xuna -#define tp_domain%tp_aux->tpa_domain -#define tp_fsuffixlen%tp_aux->tpa_fsuffixlen -#define tp_fsuffix%tp_aux->tpa_fsuffix -#define tp_lsuffixlen%tp_aux->tpa_lsuffixlen -#define tp_lsuffix%tp_aux->tpa_lsuffix -#define tp_s_subseq%tp_aux->tpa_s_subseq -#define tp_r_subseq%tp_aux->tpa_r_subseq -.\" *************************************** -.T& -l s s s. - % % % -/* parameters per-connection controllable by user: */ -.\" *************************************** -.T& -l l l l. - %struct%tp_conn_param%_tp_param; - % % % -.\" *************************************** -.T& -l s s l. -#define tp_Nretrans%_tp_param.p_Nretrans -#define tp_dr_ticks%_tp_param.p_dr_ticks -#define tp_cc_ticks%_tp_param.p_cc_ticks -#define tp_dt_ticks%_tp_param.p_dt_ticks -#define tp_xpd_ticks%_tp_param.p_x_ticks -#define tp_cr_ticks%_tp_param.p_cr_ticks -#define tp_keepalive_ticks%_tp_param.p_keepalive_ticks -#define tp_sendack_ticks%_tp_param.p_sendack_ticks -#define tp_refer_ticks%_tp_param.p_ref_ticks -#define tp_inact_ticks%_tp_param.p_inact_ticks -#define tp_xtd_format%_tp_param.p_xtd_format -#define tp_xpd_service%_tp_param.p_xpd_service -#define tp_ack_strat%_tp_param.p_ack_strat -#define tp_rx_strat%_tp_param.p_rx_strat -#define tp_use_checksum%_tp_param.p_use_checksum -#define tp_tpdusize%_tp_param.p_tpdusize -#define tp_class%_tp_param.p_class -#define tp_winsize%_tp_param.p_winsize -#define tp_netservice%_tp_param.p_netservice -#define tp_no_disc_indications%_tp_param.p_no_disc_indications -#define tp_dont_change_params%_tp_param.p_dont_change_params -.\" *************************************** -.TE -.\" *************************************** -.\" *************************************** -.\" *************************************** -.TS -tab(%); -l l l l. -.\" The next line sets the spacing for the table: 1+3 17+3 17+3 13+3 -.\"456789 123456789- 123456789 123456-789 123456789 1234567890 -.\" -.T& -l l l s. - %%/* log2(the negotiated max size) */% -.T& -l l l l. - %int%tp_l_tpdusize;%/* # bytes */ -.\" *************************************** - %struct timeval%tp_rtt;% -.T& -l l l s. - % %/* smoothed avg round-trip time */% - %struct timeval%tp_rtv;% - % %/* std deviation of round-trip time */% -%struct timeval%tp_rttemit[ TP_RTT_NUM + 1 ];% -%%/* times that the last TP_RTT_NUM % -%% * DT_TPDUs were transmitted % -%% */% -.\" *************************************** - %unsigned % % -% tp_sendfcc:1,%/* shall next ack % -% %include flow control conf. param? */% -.\" *************************************** -.T& -l l l s. - % tp_trace:1,%/* is this pcb being traced?% -%% * (not used yet) % -%% */% -.\" *************************************** -% tp_perf_on:1,%/* statistics being kept? */% -.\" *************************************** -% tp_reneged:1,%/* have we reneged on credit% -%% * since the last AK TPDU was sent? % -%% */% -% tp_decbit:4,%/* congestion experienced? */% -% tp_flags:8,%/* see #defines below */% -.\" *************************************** -% tp_unused:16;%% -.T& -l s s l. -#define TPF_XPD_PRESENT%TPFLAG_XPD_PRESENT -#define TPF_NLQOS_PDN%TPFLAG_NLQOS_PDN -#define TPF_PEER_ON_SAMENET%TPFLAG_PEER_ON_SAMENET -%%% -.\" *************************************** -.T& -l l l l. - %struct tp_pmeas%*tp_p_meas;% -.T& -l l l s. - % %/* ptr to mbuf to hold the perf.% -%% * statistics structure % -%% */% -.\" *************************************** -}; -.TE -\fR -.\" -.\" end of tpcb structure (thank you) -.\" -.)b -.fi -.sh 1 "Sequence Number Arithmetic" -.pp -Sequence numbers in TP can be either 7 bits -(\*(lqnormal format\*(rq) -or 31 bits -(\*(lqextended format\*(rq). -Sequence numbers are unsigned integers, -regardless of their format. -Three fields are kept in the pcb to manage the sequence -number arithmetic: -.(b -\fC -.TS -tab(+); -l l l l. - +u_int+tp_seqmask;+/* mask for seq space */ - +u_int+tp_seqbit;+/* bit for seq # wraparound */ - +u_int+tp_seqhalf;+/* half the seq space */ -.TE -\fR -.)b -.lp -\fITp_seqmask\fR -is a bit mask indicating which bits are legitimate -for a sequence number of either format. -It takes the value 0x7f if 7-bit sequence numbers are in use, -and 0x7fffffff if 31-bit sequence numbers are in use. -\fITp_seqbit\fR -is the bit that becomes set when a sequence number wraps around -while being incremented. -Its value is 0x80 for normal format, 0x80000000 for extended format. -\fITp_seqhalf\fR -takes the value which is in the middle of the sequence space, -0x40 for normal format, -and -0x40000000 for extended format. -.(b -.nf -The macro -.fi -\fC -.TS -tab(+); -l l l l. - SEQ(tpcb, x) -.TE -\fR -.)b -.lp -extracts a sequence number from the location -in which it is stored. -.pp -The macros -.(b -\fC -.TS -tab(+); -l l s s l. - +SEQ_GT(tpcb, seq, t)+is seq > t? - +SEQ_GEQ(tpcb, seq, t)+is seq >= t? - +SEQ_LT(tpcb, seq, t)+is seq < t? - +SEQ_LEQ(tpcb, seq, t)+is seq <= t? - +SEQ_INC(tpcb, seq)+seq\+\+ - +SEQ_DEC(tpcb, seq)+seq-- - +SEQ_SUB(tpcb, seq, amt)+seq -= amt - +SEQ_ADD(tpcb, seq, amt)+seq \+= amt -.TE -\fR -.)b -.lp -perform the indicated comparisons and arithmetic -on their arguments. -.pp -An example of how these macros -are used is as follows. -To determine if a sequence -number \fIseq\fR is in a receive window -bounded by -\fIlwe\fR and \fIuwe\fR, -we define the -macro -.(b -\fC -.TS -tab(+); -l l. -#define+IN_RWINDOW(tpcb, seq, lwe, uwe)\\ -+( SEQ_GEQ(tpcb, seq, lwe) && SEQ_LT(tpcb, seq, uwe) ) -.TE -\fR -.)b -.sh 1 "TP Implementation Options" -.pp -The transport protocol specification leaves several -things to the discretion of the implementor, -some of which may affect the performance -of individual connections and -aggregate performance. -Wherever different strategies are likely to favor -the performance of -individual connections to the detriment of aggregate performance -or vice versa, the -various strategies are under the control of options via the -\fIgetsockopt()\fR and -\fIsetsockopt()\fR system calls (see the manual pages -\fIgetsockopt(2)\fR, -\fIsetsockopt(2)\fR -and -\fItp(4p)\fR -for details). -In some cases the preferred strategies differ for the different -subnetworks, so the strategies chosen will be determined -by the subnetwork in use. -.sh 2 "TPDU size" -.pp -The limitation of the maximum TPDU size to a power of two is -unfortunate in the LAN environment. -For example, if the maximum NSDU size is around 1500, as in the case of an -Ethernet, -using a maximum TPDU size of 1024 reduces -the possible throughput by approximately 30%. -TP negotiates a maximum TPDU size of 2048 and -generates TPDUs of size around 1500. -Obviously this works well only when the peer is known to be -using the same scheme (so that the peer -doesn't send TPDUs of size 2048 and cause its -network layer to fragment the TPDUs). -This is likely to be the case in a LAN where -all protocol entities are under the same administrative -control. -The maximum TPDU size negotiated is under the control of the user, -so -it is possible to prevent this scheme from being used -by default -when the peer is not on the same LAN, by -setting the \fItp.tpdusize\fR parameter in the ARGO directory service -file to -something less than the network's maximum transmission -unit. -.\"*********************************************************** -.sh 2 "Congestion Window Strategy" -.pp -The congestion window strategy from the -DoD Internet -was adapted for use with TP. -The strategy is intended to minimize the -adverse effect -of transport's retransmission on an -already congested network. -.pp -A TP entity keeps two notions of the peer's window: -the real window, which is that advertised by the peer -in AK TPDUs, and the congestion window, which is a locally -controlled window. -TP uses the smaller of the two windows when transmitting. -The congestion window starts small, which keeps a -new connection from overloading the network with a sudden -burst of packets -immediately after connection establishement. -This is called \fIslow start\fR. -For each successful acknowledgment received, the congestion -window grows by one, until eventually the real window -is the one in use. -If a retransmission timer expires, the congestion window -is reset to size one. -.pp -The congestion window strategy is used for class 4 unless -the transport user requests that it not be used. -The slow start strategy is used for traffic over a PDN -unless -the transport user requests that it not be used. -Slow start is not used for traffic over a LAN unless -its use is requested by the transport user. -.\"*********************************************************** -.sh 2 "Retransmission strategies" -.pp -A retransmission timer is invoked for each set of DT TPDUs -sent in one send operation (call to \fItp_send()\fR). -This set of packets is called the \fIsend window\fR for the purpose -of this discusssion. -.pp -The number of TPDUs -in a send window -depends on the remote credit and the amount of data -in the local send buffers. -When a retransmission timer goes off, the lower -window edge -is reevaluated but the upper window edge is not reevaluated. -.pp -There are several retransmission strategies implemented in -ARGO TP. -The choice of strategies is the user's, and is made with the -\fIsetsockopt()\fR system call. -The strategies are summarized here: -.ip "Retransmit LWE TPDU only:" 5 -Only the TPDU representing the new lower window edge -is retransmitted. -This is the default retransmission strategy. -.ip "Retransmit whole send window:" 5 -Retransmission begins with the new lower window edge -and continues up to the old upper window edge. -.pp -The value of the data retransmission timer -adapts to the average round trip time and the standard deviation of -the round trip time. -A round trip time is the time that passes between -the moment of a packet's first transmission and -the moment it is first acknowledged. -The average round trip time -is kept by the sending side of TP, using -a formula for -smoothing the average: -.(b -\fC -.TS -tab(+); -l l l l. -#define+TP_RTT_ALPHA+3 -#define+TP_RTV_ALPHA+2 -+++ -#define+SMOOTH(alpha, old, new) \\ -+(((new-old) >> alpha ) \+ (old) ) -.TE -\fR -.)b -.lp -The times included in the average are chosen as follows. -The time of -each packet's initial transmission is kept (for the last -\fIN\fR packets, where \fIN\fR is a defined constant). -When an AK TPDU arrives, ARGO TP subtracts the initial transmission -time for the lowest unacknowledged sequence number that was -acknowledged by this AK TPDU from the current time, -and apply the resulting time to the average. -Hence, not all packets are included in this average, -which is as it should be since -the purpose of this measurement is -to find a good value for the retransmission timer. -.pp -Each time part of a window is retransmitted, -the retransmission timer for that window is increased. -This does not affect the retransmission timers for other windows. -.\"*********************************************************** -.sh 2 "Acknowledgment strategies" -.pp -The transport protocol specification -requires acknowledgments to be sent immediately -upon receipt -of CC TPDUs (in class 4), XPD TPDUs, and DT TPDUs containing an -EOT marker, and at other times as required for flow control, -otherwise acknowledgments may be delayed. -In addition to the times when an acknowledgment is required, -ARGO TP transmits an AK TPDU whenever the user receives some data, -thereby increasing the size of the window. -For those times when -immediate acknowledgment is optional, -ARGO TP offers two acknowledgment strategies: -.ip " Acknowledge each TPDU" 10 -Upon receipt of a DT TPDU and AK TPDU is sent. -.ip " Acknowledge full window" 10 -Acknowledgment is issued -upon receipt of enough data to -consume the last advertised credit. -.pp -The latter strategy -requires a timer to trigger an acknowledgment -in case the peer doesn't send the entire window -quickly. -This timer is called the -\fIsendack timer\fR. -The upper bound on the value of this timer -is called the \fIlocal acknowledgment time\fR. -The local acknowledgment time may be "advertised" to the -peer during connection establishment, and the -peer may choose to use this value to -adjust its retransmission timers. -The ARGO TP entity advertises its local acknowledgment time -on a CR TPDU, but it is not -constrained by -the remote acknowledge time, should the peer -advertise it. -Instead, -ARGO TP adapts its sendack timer -to the behavior of the connection. -.pp -Under the assumption that the round trip time is -often -symmetric, -and lacking -a method to measure -the round trip time in the other direction, -ARGO TP uses the measured average round trip time -to adjust the sendack timer. -.pp -The choice of strategies is made with the -\fIsetsockopt()\fR system call. -The default strategy is -to -delay acknowledgments until the most recently advertised window is filled. diff --git a/share/doc/iso/wisc/trans_serv.nr b/share/doc/iso/wisc/trans_serv.nr deleted file mode 100644 index 462186e5f451..000000000000 --- a/share/doc/iso/wisc/trans_serv.nr +++ /dev/null @@ -1,692 +0,0 @@ -.NC "Transport Service Interface" -.sh 1 "General" -.pp -It is assumed that the reader is acquainted with the -set of system calls and library routines that -compose the -Berkeley -Unix interprocess communication service (IPC). -To every extent possible -the ARGO transport service is provided by the same IPC mechanisms -that support -the transport-level services -included in the -AOS distribution. -In some instances, the interface -provided by AOS does not support -the services required by ISO 8073, -so system calls were added to support these services. -It is felt that this is superior to modifying -existing system calls, in order to avoid the -recoding of existing Unix utilities. -.pp -What follows is a description of the system calls -that are used to provide the transport service. -According to Unix custom, -the return value of a system call is 0 -if the call succeeds and -1 if -the call fails for any reason. -In the latter case, -the global variable -\fIerrno\fR contains more information -about the error that caused the failure. -In the descriptions of all the system calls for which -this custom is followed, -the return value is named -\fIstatus\fR. -.sh 1 "Connection establishment" -.pp -Establishing a TP connection is similar to -establishing a connection using any other -transport protocol supported by Unix. -The same system calls are used, and the passive open -is required. -Some of the parameters to the system calls differ. -.pp -The following call creates a communication endpoint called a -\fIsocket\fR. -It returns -a positive integer called a -\fIsocket descriptor\fR, -which -will be a parameter in all communication primitives. -.(b -\fC -.TS -tab(+); -l s s s. -s = socket( af, type, protocol ) -.T& -l l l. - +int+s,af,type,protocol; -.TE -\fR -.)b -.pp -The \fIaf\fR parameter describes the format of addresses -used in this communication. -Existing formats include AF_INET (DoD Internet addresses), -AF_PUP (Xerox PUP-I Internet addresses), and AF_UNIX -(addresses are Unix file names, for intra-machine IPC only). -TP runs in either the Internet domain or the ISO domain (AF_ISO). -When using the Internet domain, the network layer is the DoD Internet IP -with Internet-style addresses. The ISO domain uses the ISO -network service and ISO-style addresses\**. -.(f -\**ISO/DP 8348/DAD2 Addendum to the Network -Service Definition Covering Network Layer Addressing. -.)f -Regardless of the address family used, an address takes the -general form, -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr { -.T& -l l l l. - +short+sa_family;+/* address family */ - +char+sa_data[14];+/* space for an address */ -}+ -.TE -\fR -.)b -.sp 1 -When viewed as an Internet address, it takes the form -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr_in { -.T& -l l l l. - +short+sin_family;+/* address family */ - +u_short+sin_port;+/* internet port */ - +struct in_addr+sin_addr;+/* network addr A.B.C.D */ - +char+sin_zero[8];+/* unused */ -} -.TE -\fR -.)b -.sp 1 -When viewed as an ISO address, it takes the form -.(b -\fC -.TS -tab(+); -l s s s. -struct sockaddr_iso { -.T& -l l l l. - +short+siso_family;+/* address family */ - +u_short+siso_tsuffix;+/* transport suffix */ - +struct iso_addr+siso_addr;+/* ISO NSAP addr */ - +char+siso_zero[2];+/* unused */ -} -.TE -\fR -.)b -The address described by a \fIsockaddr_iso\fR structure -is a TSAP-address (transport service access point address). -It is made of an NSAP-address (network service access point address) -and a TSAP selector (also called a transport suffix or -transport selector, hereafter called a TSEL). -The structure \fIsockaddr_iso\fR contains a 2-byte TSEL. -This is for compatibility with Internet addressing. -ARGO supports -TSELs of length 1-64 bytes. -TSELs of any length other than 2 -are called \*(lqextended TSELs\*(rq. -They are described in detail in the section \fB\*(lqExtended TSELs\*(rq\fR. -If extended TSELs are not requested, 2-byte TSELs are used by default. -.pp -Refer to Chapter Five for more information about ISO NSAP-addresses. -.pp -The \fItype\fR parameter in the \fIsocket()\fR call -distinguishes -datagram protocols, stream protocols, sequenced -packet protocols, reliable datagram protocols, and -"raw" protocols (in other words, the absence of a transport protocol). -Unix provides manifest named constants for each of these types. -TP supports the sequenced packet protocol abstraction, to which -the manifest constant SOCK_SEQPACKET applies. -.pp -The \fIprotocol\fR -parameter is an integer that identifies the protocol to be used. -Unix provides a database of protocol names and their associated -protocol numbers. -Unix also provides user-level tools -for searching the database. -The tools take the form of library routines. -A protocol number for TP has been chosen -by the Internet NIC to allow TP to run in the Internet domain, and this -has been added to the Unix network protocol database. -The standard Internet database tools that serve TCP users -can -also serve user of TP -in the Internet domain, if the TP protocol number is added to the -proper Internet database file, -\fC/etc/protocols\fR. -This change must be made for TP to run in either the Internet or -in the ISO domain. -The ARGO package contains a set of tools and a database -for use with TP in the ISO domain. -This set of tools is described in the manual pages -\fIisodir(5)\fR and -\fIisodir(3)\fR. -.pp -When a socket is created, it is not given an address. -Since a socket cannot be reached by a remote entity unless it has an address, -the user must request that a socket be given an address by -using the \fIbind()\fR system call: -.(b -\fC -.TS -tab(+); -l s s s. -status = bind( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The address is expected to be in the format specified by the -\fIaf\fR parameter to the \fIsocket()\fR -call that yielded the socket descriptor \fIs\fR. -If the user -passes an address parameter with a zero-valued transport suffix, -the transport layer -assigns an unused 2-byte transport selector. -This is a 4.3 Unix convention; it is not part of any ISO standard. -.pp -The \fIconnect()\fR system call effects an active open. -It is used to establish a connection with an entity that is -passively waiting for connection requests, and whose -transport address is known. -.(b -\fC -.TS -tab(+); -l s s s. -status = connect( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The first parameter is a socket descriptor. -The \fIaddr\fR parameter is a transport address in the format -specified by the \fIaf\fR parameter to the \fIsocket()\fR -call that yielded the socket descriptor \fIs\fR. -.pp -A passive open is accomplished with two system calls, -\fIlisten()\fR followed by \fIaccept()\fR. -.(b -\fC -.TS -tab(+); -l s s s. -status = listen( s, queuelen ) -.T& -l l l. - +int+s; - +int+queuelen; -.TE -\fR -.)b -.pp -The \fIqueuelen\fR argument specifies the maximum -number of pending connection -requests that will be queued for acceptance by this user. -Connections are then accepted by the -system call \fIaccept()\fR. -There is no way to refuse connections. -The functional equivalent of connection -refusal is accomplished by accepting a connection and immediately -disconnecting. -.(b -\fC -.TS -tab(+); -l s s s. -new_s = accept( s, addr, addrlen ) -.T& -l l l. - +int+new_s, s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -The \fIaccept()\fR call completes the connection -establishment. If a connection request from a prospective peer -is pending on the socket described by \fIs\fR, it is removed and -a new socket is created for use with this connection. -A socket descriptor for the new socket is returned by the -system call. -If no connection requests are pending, this call blocks. -If the \fIaccept()\fR call fails, -1 is returned. -The transport address of the entity requesting the connection -is returned in the \fIaddr\fR parameter, and the length -of the address is returned in the \fIaddrlen\fR parameter. -The address associated with the new socket is inherited -from the socket on which the \fIlisten()\fR and \fIaccept()\fR were performed. -.pp -It is possible for the \fIaccept()\fR call to be interrupted -by an asynchronous event such as the arrival of expedited -data. -When system calls are interrupted, Unix returns the value -1 -to the caller and puts the constant -EINTR in the global variable \fIerrno\fR. -This can create problems with the system call \fIaccept()\fR. -In the case of incoming expedited data, the interruption does -not indicate a problem, but the data may have arrived before -the caller has received the new socket descriptor, which is the -socket descriptor on which the expedited data are to be received. -In order to prevent this problem from occurring, the caller must -prevent the issuance of asynchronous indications until the -\fIaccept()\fR -call has returned. -Asynchronous indications are discussed below, in -the section titled -"Indications from the transport layer to the transport user". -.pp -It is possible to discover the -address bound to a -socket with the -\fIgetsockname()\fR system call. -.(b -\fC -.TS -tab(+); -l s s s. -status = getsockname( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.pp -If the socket has a peer, that is, it is connected, -the system call -\fIgetpeername()\fR -is used to discover the peer's address. -.(b -\fC -.TS -tab(+); -l s s s. -status = getpeername( s, addr, addrlen ) -.T& -l l l. - +int+s; - +struct sockaddr+*addr; - +int+addrlen; -.TE -\fR -.)b -.lp -The names returned by -\fIgetsockname()\fR and \fIgetpeername()\fR -do not contain extended TSELs. -Extended TSELs can be retrieved with -the \fIgetsockopt()\fR and -\fIsetsockopt()\fR system calls, described below. -.pp -Unix supports several protocol-independent options -and protocol-specific options -associated with sockets. -These options can be inspected and changed by using -the \fIgetsockopt()\fR and -\fIsetsockopt()\fR system calls. -.(b -\fC -.TS -tab(+); -l s s s. -status = getsockopt( s, level, option, value, valuelen ) -.T& -l l l. - +int+s, level, option; - +char+*value; - +int+*valuelen; -.TE -\fR -.)b -.(b -\fC -.TS -tab(+); -l s s s. -status = setsockopt( s, level, option, value, valuelen ) -.T& -l l l. - +int+s, level, option; - +char+*value; - +int+valuelen; -.TE -\fR -.)b -.pp -The \fIlevel\fR argument may indicate -either -that this option applies to sockets or that it applies to -a specific protocol. -The constants SOL_SOCKET, SOL_TRANSPORT, and SOL_NETWORK -are possible values for the \fIlevel\fR argument. -The \fIoption\fR argument is an integer that identifies -the option chosen. -.\" LIST THE OPTIONS HERE -The options available to TP users provide the -user with the ability to control various TP protocol options -including but not limited to -TP class, TPDU size negotiated, TPDU format used, -acknowledgment and retransmission strategies. -For a detail list of the options, see the manual page \fItp(4p)\fR. -.sh 1 "Extended TSELs" -.pp -ARGO supports TSELs -of length 1 byte - 64 bytes for sockets bound to addresses in the -AF_ISO address family. -The ARGO user program uses the -\fIgetsockopt()\fR -and -\fIsetsockopt()\fR -system calls to -discover and assign extended TSELs. -.pp -To create a socket with an extended TSEL, -the process -.ip \(bu 5 -opens a socket with \fCsocket(AF_ISO, SOCK_SEQPACKET, ISOPROTO_TP)\fR -.ip \(bu 5 -binds an NSAP-address to the socket with \fIbind()\fR. -The address bound may contain a 2-byte selector (\fIiso_tsuffix\fR). -.ip \(bu 5 -uses \fIsetsockopt()\fR with the command TPOPT_MY_TSEL, -to assign a TSEL to the socket. -.ip \(bu 5 -calls \fIlisten(), connect()\fR, or any other appopriate system calls -to use the socket as desired. -.lp -To connect to a transport entity that is bound to a TSAP-address with -an extended TSEL, the -process -.ip \(bu 5 -opens a socket with \fCsocket(AF_ISO, SOCK_SEQPACKET, ISOPROTO_TP)\fR -.ip \(bu 5 -uses \fIsetsockopt()\fR, with the command TPOPT_PEER_TSEL, -to assign a PEER TSEL to the socket. -This TSEL is used by the transport entity -for all subsequent connect requests made on this socket, -unless the peer TSEL is changed by another call to -\fIsetsockopt()\fR employing the command TPOPT_PEER_TSEL. -.lp -To discover the TSEL of the peer of a connected socket, -the process -.ip \(bu 5 -uses \fIgetsockopt()\fR with the command TPOPT_PEER_TSEL. -.lp -To discover the TSEL of socket's own address, -the process -.ip \(bu 5 -uses \fIgetsockopt()\fR with the command TPOPT_MY_TSEL. -.sh 1 "Data transfer" -.pp -The system calls provided by AOS for data transfer have -semantics that are unsuitable for TP, -and in fact they are seriously deficient for the correct -operation of any user program that uses out-of-band or expedited -data in any way except to cause the program to abort. -The problem lies in the manner in which the kernel -handles interrupted system calls. -The send and receive primitives -may be interrupted by signals. -A signal is the mechanism used to indicate -the presence of expedited data or out-of-band data. -If the send or receive primitive is interrupted before completion, -the user needs to know how many octets of data were sent or received. -The existing system call interface does not provide this -information, nor does it permit TP to provide -this information. -All forms of the existing interface -(\fIsend()\fR, -\fIrecv()\fR, -\fIsendmsg()\fR, -\fIrecvmsg()\fR, -\fIsendto()\fR, -\fIrecvfrom()\fR, -\fIwrite()\fR, -\fIread\fR, -\fIwritev()\fR, -and \fIreadv()\fR system calls) -return an octet count -when the system call completes, and return an error -indication (-1, \fIerrno\fR == EINTR) if the system call is interrupted. -To change the semantics -of these calls would create havoc with existing user-level software. -Instead two new system calls are provided to support data transfer. -(The existing interface may be used if the user does not need the additional -service provided by the new system calls.) -.pp -The two new system calls are patterned after -\fIreadv()\fR and \fIwritev()\fR, -the scatter-gather or "vectored" -versions of \fIread()\fR and \fIwrite()\fR. -.(b -\fC -.TS -tab(+); -l s s s. -cc = sendv( s, iov, iovlen, flags ) -.T& -l l l. - +int+s: - +io_vector+iov; - +int+iovlen; - +unsigned int+*flags; -.TE -\fR -.)b -.(b -\fC -.TS -tab(+); -l s s s. -cc = recvv( s, iov, iovlen, flags ) -.T& -l l l. - +int+s: - +io_vector+iov; - +int+iovlen; - +unsigned int+*flags; -.TE -\fR -.)b -.pp -The \fIiov\fR argument is an \fIio_vector\fR, -an array of pointers and lengths that -describe the areas from (or to) which the data will be gathered (or scattered). -The \fIiovlen\fR argument is an integer that tells how many parts are in -the io_vector. -The \fIflags\fR parameter serves several purposes. -The TP specification requires that TSDUs be unlimited in size. -System calls cannot pass unlimited amounts of data between the user -and the kernel, so -there cannot be a one-to-one correspondence between TSDUs and -system calls. -The \fIflags\fR -parameter is used to mark the end-of-TSDU on both sending and -receiving. -This way one TSDU can span several system calls. -When sending, -the user sets -this flag -to indicate that this request completes a TSDU. -When receiving, -TP sets this flag when -the end of a TSDU is reached. -In the latter case, the end of the data received by the transport user -with a given system call -coincides with the end of the TSDU -if -the TP has set the end-of-TSDU bit -in the \fIflags\fR parameter of the \fIrecv()\fR system call. -It is possible for the peer to send an empty TPDU with the end-of-TSDU -flag set, in which case the transport user -may receive zero octets with the end-of-TSDU flag set. -See the manual pages -\fIrecvv(2)\fR -and -\fIsendv(2)\fR -for details. -.pp -The \fIflags\fR parameter also serves to distinguish data transfer primitives -from expedited data transfer primitives. -The flag bit MSG_OOB is provided for "out of band data" in the -DoD Internet protocols. It is also used to provide the expedited data service -of the ISO protocols. -The transport layer will deliver one expedited datum (there will be a -one-to-one correspondence between expedited TSDUs and XPD TPDUs) -at a time. -The user must receive the datum before the transport -layer will accept more expedited data. -Each expedited datum my contain up to 16 octets. -.pp -.sh 1 "Disconnection" -.pp -The \fIclose\fR system call will disconnect any association -between two TP entities. -.(b -\fC -.TS -tab(+); -l s s s. -status = close( s ) -.T& -l l l. - +int+s; -.TE -\fR -.)b -.pp -The argument \fIs\fR is a socket descriptor. -If a Unix user process terminates, Unix will close all files and -sockets associated with the process, which means all transport -connections associated with the process will be disconnected. -.sh 1 "Indications from the transport layer to the transport user" -.pp -While the above set of system calls allows you to establish -a connection, transfer data, and disconnect, -several elements of the transport service are not supported -by these system calls alone. -These system calls do not support -any way to indicate to the -to the transport user -the -presence of expedited data or -a disconnection initiated by the peer or by one of the -cooperating TP entities. -.pp -The Unix signal mechanism is used to provide these -service elements. -When an expedited data TSDU arrives, the TP interrupts -the user with a SIGURG signal ("urgent condition present on socket"). -The user must have previously registered a procedure to handle -the signal by using the \fIsigvec()\fR system call or the -\fIsignal()\fR library routine provided for that purpose. -The signal handler takes the form -.(b -\fC -.TS -tab(+); -l s s s. -int sighandler( signal_number) -.T& -l l l. - +int+signal_number; -.TE -\fR -.)b -.pp -The \fIsignal_number\fR argument will be the well-known constant SIGURG. -There are two reasons for -the transport layer to issue -a SIGURG: -expedited data -are present or -disconnection was initiated by a transport entity or by the peer. -Should the user have more than one transport connection open, -another system call is used to determine to which socket(s) -the urgent condition applies. -This is the \fIselect()\fR system call, described below. -.pp -When the SIGURG indicates a disconnection, there may be -user data from the peer present. -TP -discards all queued normal data and expedited data. -It saves the disconnect data for the user to receive via the -\fIgetsockopt()\fR system call. -Unfortunately, the socket is already considered closed -by the kernel, so there is no way -for the user to read the incoming disconnect data, so receipt -of disconnect data is not supported. -.\" -.\"If the user does not receive the disconnect data before the -.\"reference timer expires, the data will be discarded and the -.\"socket will be closed. -.pp -Transport service users may use more than one transport -connection at a time. -The \fIselect()\fR system call facilitates this. -.(b -\fC -.TS -tab(+); -l s s s. -#include -+ -nfound = select( num_to_scan, recvmask, sendmask, -+exceptmask, timeout ) -.T& -l l l. - +int+nfound, num_to_scan; - +fd_set+*recvmask, *sendmask, *exceptmask; - +time+timeout; -.TE -\fR -.)b -.pp -This system call takes as parameters a set of masks -that specify a subset of the socket descriptors that are in -use by the user program. -\fISelect()\fR inspects the sockets to see if they have data -to be received, can service a send without blocking, or -have an exceptional condition pending, respectively. -The masks will be set upon return to indicate the socket descriptors -for which the respective conditions exist. -The \fInum_to_scan\fR argument limits the number of sockets that are -inspected. -The call will return within the amount of time given in the -\fItimeout\fR parameter, or, if the parameter is zero, \fIselect()\fR -will block indefinitely. -.\" FIGURE -.so figs/TS_primitives.nr -.pp -.CF -summarizes the mapping of the transport service primitives -to Unix facilities. diff --git a/share/doc/iso/wiscman/arp.4p b/share/doc/iso/wiscman/arp.4p deleted file mode 100644 index f0fe2a0ecfd6..000000000000 --- a/share/doc/iso/wiscman/arp.4p +++ /dev/null @@ -1,118 +0,0 @@ -.\" Copyright (c) 1983 Regents of the University of California. -.\" All rights reserved. The Berkeley software License Agreement -.\" specifies the terms and conditions for redistribution. -.\" -.\" @(#)arp.4p 6.2 (Berkeley) 5/15/86 -.\" -.TH ARP 4P "May 15, 1986" -.UC 5 -.SH NAME -arp \- Address Resolution Protocol -.SH SYNOPSIS -.B "pseudo-device ether" -.SH DESCRIPTION -ARP is a protocol used to dynamically map between DARPA Internet -and 10Mb/s Ethernet addresses. It is -used by all the 10Mb/s Ethernet interface drivers. -It is not specific to Internet protocols or to 10Mb/s Ethernet, -but this implementation currently supports only that combination. -.PP -ARP caches Internet-Ethernet address mappings. When an interface -requests a mapping for an address not in the cache, ARP queues the -message which requires the mapping and broadcasts -a message on the associated network requesting the address mapping. -If a response is provided, the new mapping is cached and any pending -message is transmitted. -ARP will queue -at most one packet while waiting for a mapping request to be responded to; -only the most recently ``transmitted'' packet is kept. -.PP -To facilitate communications with systems which do not use ARP, -.IR ioctl \^s -are provided to enter and delete entries in the Internet-to-Ethernet tables. -Usage: -.LP -.nf -.ft B - #include - #include - #include - struct arpreq arpreq; - - ioctl(s, SIOCSARP, (caddr_t)&arpreq); - ioctl(s, SIOCGARP, (caddr_t)&arpreq); - ioctl(s, SIOCDARP, (caddr_t)&arpreq); -.fi -.ft R -Each ioctl takes the same structure as an argument. -SIOCSARP sets an ARP entry, SIOCGARP gets an ARP entry, and SIOCDARP -deletes an ARP entry. These ioctls may be applied to any socket descriptor -.I s, -but only by the super-user. -The -.I arpreq -structure contains: -.LP -.RS -.ta \w'#define\ \ 'u +\w'ATF_USETRAILERS\ \ 'u +\w'0x08\ \ \ \ 'u -.nf -/* - * ARP ioctl request - */ -struct arpreq { - struct sockaddr arp_pa; /* protocol address */ - struct sockaddr arp_ha; /* hardware address */ - int arp_flags; /* flags */ -}; -/* arp_flags field values */ -#define ATF_COM 0x02 /* completed entry (arp_ha valid) */ -#define ATF_PERM 0x04 /* permanent entry */ -#define ATF_PUBL 0x08 /* publish (respond for other host) */ -#define ATF_USETRAILERS 0x10 /* send trailer packets to host */ -.fi -.RE -.LP -The address family for the -.I arp_pa -sockaddr must be AF_INET; for the -.I arp_ha -sockaddr it must be AF_UNSPEC. -The only flag bits which may be written are ATF_PERM, ATF_PUBL -and ATF_USETRAILERS. -ATF_PERM causes the entry to be permanent if the ioctl call succeeds. -The peculiar nature of the ARP tables may cause the ioctl to fail if more -than 8 (permanent) Internet host addresses hash to the same slot. -ATF_PUBL specifies that the ARP code should respond to ARP requests for the -indicated host coming from other machines. This allows a host to act as an -``ARP server,'' which may be useful in convincing an ARP-only machine to talk -to a non-ARP machine. -.PP -ARP is also used to negotiate the use of trailer IP encapsulations; -trailers are an alternate encapsulation used to allow efficient packet -alignment for large packets despite variable-sized headers. -Hosts which wish to receive trailer encapsulations so indicate -by sending gratuitous ARP translation replies along with replies -to IP requests; they are also sent in reply to IP translation replies. -The negotiation is thus fully symmetrical, in that either or both hosts -may request trailers. -The ATF_USETRAILERS flag is used to record the receipt of such a reply, -and enables the transmission of trailer packets to that host. -.PP -ARP watches passively for hosts impersonating the local host (i.e. a host -which responds to an ARP mapping request for the local host's address). -.SH DIAGNOSTICS -.B "duplicate IP address!! sent from ethernet address: %x:%x:%x:%x:%x:%x." -ARP has discovered another host on the local network which responds to -mapping requests for its own Internet address. -.SH SEE ALSO -ec(4), de(4), il(4), inet(4F), arp(8C), ifconfig(8C) -.br -``An Ethernet Address Resolution Protocol,'' RFC826, Dave Plummer, -Network Information Center, SRI. -.br -``Trailer Encapsulations,'' RFC893, S.J. Leffler and M.J. Karels, -Network Information Center, SRI. -.SH BUGS -ARP packets on the Ethernet use only 42 bytes of data; however, the smallest -legal Ethernet packet is 60 bytes (not including CRC). -Some systems may not enforce the minimum packet size, others will. diff --git a/share/doc/iso/wiscman/clnp.4p b/share/doc/iso/wiscman/clnp.4p deleted file mode 100644 index 07efd1a63359..000000000000 --- a/share/doc/iso/wiscman/clnp.4p +++ /dev/null @@ -1,91 +0,0 @@ -.TH CLNP 4P "9 December 1988" -.ds ]W Wisconsin ARGO 1.0 -.UC 4 -.SH NAME -clnp \- Connectionless-Mode Network Protocol -.SH SYNOPSIS -.B #include -.br -.B #include -.br -.B #include -.PP -.B s = socket(AF_ISO, SOCK_RAW, 0); -.SH DESCRIPTION -CLNP is the connectionless-mode network protocol used by the -connectionless-mode network service. This protocol is specified in -ISO 8473. -It may be accessed -through a \*(lqraw socket\*(rq for debugging purposes only. -CLNP sockets are connectionless, -and are normally used with the -.I sendto -and -.I recvfrom -calls, though the -.IR connect (2) -call may also be used to fix the destination for future -packets (in which case the -.IR read (2) -or -.IR recv (2) -and -.IR write (2) -or -.IR send (2) -system calls may be used). -.PP -Outgoing packets automatically have a CLNP header prepended to -them. Incoming packets received by the user contain the full CLNP header. -The following \fIsetsockopt\fR options apply to CLNP: -.TP -CLNPOPT_FLAGS -Sets the flags which are passed to clnp when sending a datagram. -Valid flags are: -.nf -.br -CLNP_NO_SEG-Do not allow segmentation -CLNP_NO_ER-Suppress ER pdus -CLNP_NO_CKSUM-Do not generate the CLNP checksum -.br -.fi -.TP -CLNPOPT_OPTS -Sets CLNP options. The options must be formatted exactly as specified by -ISO 8473, section 7.5 "Options Part." Once an option has been set, it will -be sent on all packets until a different option is set. -.SH DIAGNOSTICS -A socket operation may fail with one of the following errors returned: -.TP 15 -[EISCONN] -when trying to establish a connection on a socket which -already has one, or when trying to send a datagram with the destination -address specified and the socket is already connected; -.TP 15 -[ENOTCONN] -when trying to send a datagram, but -no destination address is specified, and the socket hasn't been -connected; -.TP 15 -[ENOBUFS] -when the system runs out of memory for -an internal data structure; -.TP 15 -[EADDRNOTAVAIL] -when an attempt is made to create a -socket with a network address for which no network interface -exists; -.TP 15 -[EHOSTUNREACH] -when trying to send a datagram, but no route to the destination -address exists. -.TP 15 -[EINVAL] -when specifying unsupported options. -.SH SEE ALSO -send(2), recv(2), intro(4N), iso(4F) -.SH BUGS -Packets are sent with the type code of 0x1d (technically an invalid -packet type) for lack of a better way to identify raw CLNP packets. -.PP -No more than MLEN bytes of options can be specified. diff --git a/share/doc/iso/wiscman/cons.4 b/share/doc/iso/wiscman/cons.4 deleted file mode 100644 index 73bd3fc60b9c..000000000000 --- a/share/doc/iso/wiscman/cons.4 +++ /dev/null @@ -1,241 +0,0 @@ -.\" -.\" 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 -.\" LICENSED MATERIALS - PROPERTY OF IBM -.\" REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 -.\" -.\"$Header:cons.4_ca 11.3$ -.\"$ACIS:cons.4_ca 11.3$ -.\"$Source: /ibm/acis/usr/man/man4/RCS/cons.4_ca,v $ -.\" This file uses -man macros. -.TH CONS 4 "Sept 1988" "Space overwritten by .AC macro" " " -.AC 1 0 -.SH NAME -cons \- keyboard and console display interface -.SH DESCRIPTION -The keyboard and various possible displays combine to -provide a terminal-like -interface to the system. Internally, these are separate devices which -software combines to emulate a normal terminal. See the appropriate manual -pages for information about each display and the keyboard. -.PP -The keyboard adapter also supports the speaker, which is activated -when the ASCII character \fBbel\fP (\fB^G\fP) -is sent to the display with software. -For additional information on speaker control, see \fIspeaker\fP(4). -.PP -.B Console Device Control -.PP -The display devices, -\fI/dev/ttyaed\fR, \fI/dev/ttyap16\fR, \fI/dev/ttyap8c\fR, -\fI/dev/ttyapa8\fR, \fI/dev/ttyega\fR, \fI/dev/ttymono\fR, -\fI/dev/ttympel\fR, \fI/dev/ttyvga\fR, and \fI/dev/tty8514\fR are all -minor devices under -\fI/dev/console\fR, and are all capable of displaying console output. -Unique to this system is the fact that you may have one or more of these -displays on your workstation at a time and any one can act as a console. -With only one keyboard and system mouse, the console driver -multiplexes these input devices to the many displays. -All of the displays may have simultaneous logins and the user -can ``hot key'' between each display. -At first, this -``input focus'' -is on -the first device in the above sequence to -be found at initialization time. The input focus -can be manually switched to the next available display by pressing the -default ``hot key'' . -When the -input focus -is on a display, all keyboard and mouse data are sent to the process(es) -that read from that display. -.PP -If no other console tty device is open, and only the default input -emulator is used (see \fIkbdemul\fP(4)), the input focus is set to -\fI/dev/console\fP. In this case, only switches -which display gets console output. -In the case where one or more tty devices are open, or the default input -emulator changes, \fI/dev/console\fP gets no input. It tries to send output -to the currently focused device. A user can redirect these console messages -to any tty devices with the TIOCCONS ioctl. -.PP -To support the many displays and the multiplexing between them, an -emulator package was developed to work with the console driver. -This package allows different types of emulation on input and output to -be written independently of device. -.PP -The display devices \fI/dev/aed\fP, \fI/dev/apa16\fP, \fI/dev/apa8c\fP, -\fI/dev/apa8\fP, \fI/dev/ega\fR, \fI/dev/mono\fP, -\fI/dev/mpel\fR, \fI/dev/vga\fR, and \fI/dev/ibm8514\fR -are also minor devices to -\fI/dev/console\fP. They are typically used by window managers and other -graphic applications. When the focus is pointed to one of these display -devices, the console messages are put in a circular buffer -(see \fIbufemul\fP(4)) -unless redirected with the TIOCCONS ioctl. -The buffer is flushed to the screen upon closing the display device. -.PP -The following are generic console \fIioctls\fP defined in \fIscreen_cousf.u\fP: -.TP 20 -CON_SELECT_SCREEN -Output focus is set to display number (arg > 0) or -to next display in list (arg < 0). Previous display number is returned. -.TP 20 -CON_GET_SCREEN -Just returns the current output focus display number. -.TP 20 -EIGETD -Gets the number of the current input emulator for this display. -.TP 20 -EOGETD -Gets the number of the current output emulator for this display. -.TP 20 -EISETD -Sets the input emulator and returns the previous for this display. -.TP 20 -EOSETD -Sets the output emulator and returns the previous for this display. -.TP 20 -CON_INIT_SCREEN -Initializes the specified display (arg >=0) or this display -(arg < 0). -.TP 20 -CON_GET_FOCUS_CODE -Gets the current keyboard code for setting the console -focus (affects xemul only). -.TP 20 -CON_SET_FOCUS_CODE -Sets the current keyboard code for setting the console -focus (affects xemul only), and return the previous code. -.PP -All of the above commands take integer arguments. -.PP -The following are generic console \fIioctls\fP defined in \fIconsio.h\fP: -.TP 20 -SCRIOCGETF -Gets the screen control flags for the given display number. -.TP 20 -SCRIOCSETC -Sets the screen control flags for the given display number. -.PP -.in +10 -SCRIOCGETF and SCRIOCSETC use the following structure: -.DT -.nf -struct screen_control { - int device; /* which screen/display to control */ - int switches; /* Flags for this screen */ -}; -.fi -.sp 2 -.RS 6 -.TP 20 -CONSDEV_PRESENT -Display is present on this system. -This bit cannot be changed by SCRIOSETC. -.TP 20 -CONSDEV_KERNEL -Display is available to the kernel. -.TP 20 -CONSDEV_USER -Display is available to the user. -.TP 20 -CONSDEV_INIT -Display has been initialized for output. -.TP 20 -CONSDEV_TTY -Diplay has been initialuzed for output. -This bit cannot be changed by SCRIOSETC. -.TP 20 -CONSDEV_GRA -Graphics display has been opened directly by minor device number. -This bit cannot be changed by SCRIOSETC. -.TP 20 -CONSDEV_NOINPUT -Prevents the "round-robin" console focus-switching from finding this -display. This flag is cleared when \fIbuf_emul\fP is closed. -.TP 20 -SCRSETNIP -Sets the no-input bit in the screen control flags for the -display's current file description. -.TP 20 -SCRCLRNIP -Clears the no-input bit in the screen control flags for the -display's current file description. -.RE -.PP -The following \fIioctl\fP is defined in \fIbufemul.h\fP: -.TP 20 -BUFDISPINFO -\fIArg\fP returns the following information about the display: -.PP -.RS 6 -.TP 20 -BUF_IS_ATR(arg) -True when the CPU is an IBM 6152 Academic System. -.TP 20 -BUF_IS_RTPC(arg) -True when the CPU is an IBM RT PC. -.TP 20 -BUF_GET_PCCODE(x) -Get PC-Code version/type byte (IBM 6152 only). -.bp -.TP 20 -BUF_GET_VGA(arg) -Get the type of display connected to the VGA. -0=none, 1=color, 2=gray. Valid only for the IBM 6152 Academic System. -.TP 20 -BUF_GET_8514(arg) -Get the type of display connected to the IBM 8514/A. -0=none, 1=color, 2=gray. Valid only for the IBM 6152 Academic System. -.TP 20 -BUF_GET_EGA(arg) -Returns the value of the switches on the EGA display. Valid only for the IBM RT PC with an EGA card installed. -.RE -.PP -All of the above \fIioctl\fP system calls are device-independent controls -for dealing with the emulators. -.PP -Each emulator has its own set of \fIioctls\fP for its own emulation purposes. -These other \fIiotls\fP are used in window-manager emulators for operations -such as passing/positioning the mouse locator for/on the display. -See the man page for any particular emulator for more information. -.PP -.SH NOTE -On the IBM RT PC, the kernel flashes ``98'' on the LEDs if it cannot find any -configured display during initialization, and then proceeds. -.SH DIAGNOSTICS -None. -.SH FILES -.PP -For the IBM RT PC: -.br -/dev/console -.br -/dev/aed -.br -/dev/apa16 -.br -/dev/apa8c -.br -/dev/apa8 -.br -/dev/ega -.br -/dev/mono -.br -/dev/mpel -.br -.PP -For the IBM 6152 Academic System: -.br -/dev/vga -.br -/dev/ibm8514 -.SH "SEE ALSO" -bufemul(4), bus(4), ibm5081(4), ibm5151(4), ibm6153(4), ibm6154(4), -ibm6155(4), ibm8514(4), ibmaed(4), ibmemul(4), kbdemul(4), -speaker(4), stdemul(4), tty(4), vga(4), xemul(4), setscreen(8) -.br -``IBM/4.3 Console Emulators'', in Volume II, Supplementary Documents - - diff --git a/share/doc/iso/wiscman/cons.4p b/share/doc/iso/wiscman/cons.4p deleted file mode 100644 index a233eac51637..000000000000 --- a/share/doc/iso/wiscman/cons.4p +++ /dev/null @@ -1,198 +0,0 @@ -.\" $Id$ -.\" -.TH CONS 4P "9 December 1988" -.ds ]W Wisconsin ARGO 1.0 -.UC 4 -.SH NAME -CONS \- Connection Oriented Network Service -.SH SYNOPSIS -For use as a network service (CONS): -.nf -.sp -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -.sp -\fBint cons_output(isop, m, len, isdatagram)\fR -.sp -or for use as a subnetwork service (COSNS): -.sp -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -.sp -\fBint cosns_output(ifp, m, dst) -.fi -.SH DESCRIPTION -.PP -The Connection Oriented Network Service (CONS) implemented for the AOS R2 -at the University of Wisconsin - Madison -supports transport protocols, acting as a network service, -and it also supports other network protocols, acting as a subnetwork -service or link-layer service. -Several software modules are combined to provide these services. -.TP 10 -X.25 -The CCITT X.25 packet layer and link layer protocols run on -a coprocessor (the EICON Network Adapter), which serves as a DTE. -.TP 10 -Ecn driver -A device driver manages the interaction between -the coprocessor and the PC/RT. -.TP 10 -CONS "glue" -A software module implements portions of the OSI CONS (ISO 8878), -which describes a way to use the X.25 protocols to support the -OSI connection-oriented network service. -.PP -The OSI CONS contains several "service elements" -that ARGO does not use or support. -Expedited data, -quality of service maintenance, -call collision resolution, -permanent virtual circuits, -user data on connect and release, -user-level acknowledgement -("receipt confirmation" in CCITT/ISO argot), and reset/resynchronize -are not supported. -Several of the service primitives for connection establishment -and release are not supported, and -numerous parameters to other primitives specified in the OSI CONS -are not supported. -The CONS glue does provide all the support necessary to run -ISO transport classes 0 and 4 over X.25, and ISO CLNP (also called -ISO IP) over X.25. -The subnetwork dependent convergence functions implemented in the glue -permit interoperability with -OSINET and EAN at this writing. -Interoperability with other networks will be established in the future. -.PP -The coprocessor that implements the X.25 link and packet layers -is the Eicon Technologies Access/X.25 Stand-Alone Network Adaper -(see \fIecn(4)\fR). -.PP -The glue module provides two interfaces to higher layers: -a "subnetwork service" (COSNS) used by network layer protocols, which -has a typical BSD kernel device driver interface -and -a "network service" (CONS) used by transport protocols, which has -a procedure call interface similar to that of IP and CLNP. -.PP -The network service is reliable and sequenced but does not -provide a graceful close service; it provides only an abort service. -.PP -The subnetwork service is neither reliable nor sequenced. -The subnetwork service implemented by the glue hides the -connection-oriented aspects of the protocols; nevertheless, -we call it the "connection-oriented subnetwork service" (COSNS) -here, for lack of a better name. -.SS "LIBRARIES -No libraries are needed to use the CONS, however, -the numerous error values returned by X.25 cannot be accommodated -by the standard \fIperror()\fR in the C library. -The ISO library -.nf -.sp -.in +5 -\fC/usr/argo/lib/libisodir.a\fR -.in -5 -.sp -.fi -provides an expanded perror() to handle the additional error return codes. -.SS "ERROR VALUES -.PP -The error codes returned by the CONS are taken from -the diagnostic code of the X.25 level 3 packets, as -descibed in figure 14-B of ISO 8208 (the ISO standard which -is equivalent to CCITT X.25). -The actual error value returned in -\fIerrno\fR -is the X.25 diagnostic code in the lower 10 bits -logically "or"ed with the hexadecimal value 0x8400 (bits -10 and 15 set, counting from zero at the least significant bit). -The error values can be found in -the file -.nf -.in +5 -.sp -\fC\fR -.sp -.in -5 -.fi -.SS "PROTOCOL IDENTIFICATION -.PP -The purpose of this section is to describe how incoming packets -are forwarded from the glue to the various higher -layers (ISO transport, CLNP), how -routes are chosen from the higher layers to the glue, and -how NSAP-addresses are related to all this. -.SS Outgoing path: -The ARGO transport entity routes packets either to -the CONS glue, to the CLNP module, or to the DARPA Internet IP -module, based on the value of the network service parameter -given to the transport layer by the user. -The \fInetserv\fR property of records in the ARGO -directory service database -can be used to determine the network service to be used by the -transport layer. See also \fIisodir(5)\fR and \fIisodir(3)\fR. -.PP -The connectionless network layer entity routes packets to the -COSNS based on the routing table entries in the connectionless network layer. -This means that any type of NSAP-address supported by the kernel -may be used with a CLNP packet -that is routed over X.25. -.PP -When the glue creates an X.25 Call Request packet, it -places an X.121 address (DTE address) -in both the Calling and Called DTE address fields. -The X.121 addresses are extracted from the \fISNPA cache\fR, -a table that maps NSAP-addresses to SNPA-addresses, and -is maintained by the ES-IS protocol module of the OSI network layer. -In addition to placing a DTE address in the X.25 packet, -the "glue" may -uses the 1984 Called Address Extension facility to convey the -NSAP-addresses. -Whether or not this is done depends on the compile-time option -DX25_1984. -.SS Incoming path: -The X.25 Call Request User Data field and the -1984 X.25 Address Extension Facility are used -to determing the incoming path through the network layer. -The NSAP addresses passed up along with the packet are taken from the -Address Extension facility, if present. -If the facility is absent, the glue creates two type-37 NSAP-addresses, -filling in the X.121 address from the called and -calling DTE-addresses on the Call Request packet, if present. -The glue then requests of the ES-IS module to add an entry to the -SNPA cache to associate the calling DTE address with its -derived NSAP-address. -These cache entries have a holding of 5 minutes, and get -refreshed as long as there is activity on the virtual circuit -resulting from the call request. -.PP -If a Call Request packet contains a protocol identifier -as described in ISO PTDR 9577, this protocol identifier is used -to route the packet to the higher layers. -If there is no protocol identifier, the higher layer is assumed to be ISO -transport. -.SH "BUGS -.PP -If an incoming X.25 Call Request contains no DTE-addresses and -no NSAP-addresses (in the Address Extension facility) -the kernel panics. -.SH "SEE ALSO -.PP -isodir(3), -ecn(4), -clnp(4), -tp(4), -isodir(5), -isoroute(8), -ifconfig(8), -netstat(1), -xstat(8), -"ARGO 1.0 Kernel Programmer's Manual" diff --git a/share/doc/iso/wiscman/if.4n b/share/doc/iso/wiscman/if.4n deleted file mode 100644 index ca6884c75ac4..000000000000 --- a/share/doc/iso/wiscman/if.4n +++ /dev/null @@ -1,136 +0,0 @@ -# -# 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1988 -# LICENSED MATERIALS - PROPERTY OF IBM -# REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 -# -.\"# $Header:if.4n_ca 1.5$ -.\"# $ACIS:if.4n_ca 1.5$ -.\"# $Source: /ibm/acis/usr/man/man4/RCS/if.4n_ca,v $ -.\" @(#)if.4n 1.2 87/08/23 3.2/4.3NFSSRC -.\" @(#)if.4n 1.2 87/02/10 NFSSRC -.\" @(#)if.4n 1.1 86/09/25 SMI; -.TH IF 4N "Sept 1988" "Space overwritten" " " -.AC 1 0 -.SH NAME -if \- general properties of network interfaces (NFS only) -.SH DESCRIPTION -.IX "if device" "" "\fLif\fP \(em network interface general properties" "" PAGE START -Each network interface in a system corresponds to a -path through which messages may be sent and received. A network -interface usually has a hardware device associated with it, but -certain interfaces, such as the loopback interface -.IR lo (4), -do not. -.LP -At boot time each interface which has underlying hardware support -makes itself known to the system during the autoconfiguration -process. Once the interface has acquired its address it is -expected to install a routing table entry so that messages may -be routed through it. Most interfaces require some part of -their address specified with an SIOCSIFADDR ioctl before they -will allow traffic to flow through them. On interfaces where -the network-link layer address mapping is static, only the -network number is taken from the ioctl; the remainder is found -in a hardware specific manner. On interfaces which provide -dynamic network-link layer address mapping facilities (for example, -10Mb/s Ethernets using -.IR arp (4P),), -the entire address specified in the ioctl is used. -.LP -The following -.I ioctl -calls may be used to manipulate network interfaces. Unless -specified otherwise, the request takes an -.I ifreq -structure as its parameter. This structure has the form -.RS -.nf -struct ifreq { - char ifr_name[16]; /* name of interface (e.g. "ec0") */ - union { - struct sockaddr ifru_addr; - struct sockaddr ifru_dstaddr; - short ifru_flags; - } ifr_ifru; -#define ifr_addr ifr_ifru.ifru_addr /* address */ -#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ -#define ifr_flags ifr_ifru.ifru_flags /* flags */ -}; -.fi -.RE -.IP SIOCSIFADDR 5 -.IX "ioctls for sockets" "SIOCSIFADDR" "\fLioctl\fP's for sockets" "\fLSIOCSIFADDR\fP \(em set ifnet address" -.IX "SIOCSIFADDR set ifnet address" "" "\fLSIOCSIFADDR\fP \(em set ifnet address" -.IX set "ifnet address ioctl \(em \fLSIOCSIFADDR\fP" -.IX "network interface ioctls" SIOCSIFADDR "network interface \fLioctl\fP's" "\fLSIOCSIFADDR\fP \(em set ifnet address" -Set interface address. Following the address -assignment, the ``initialization'' routine for -the interface is called. -.IP SIOCGIFADDR -.IX "ioctls for sockets" "SIOCGIFADDR" "\fLioctl\fP's for sockets" "\fLSIOCGIFADDR\fP \(em get ifnet address" -.IX "SIOCGIFADDR get ifnet address" "" "\fLSIOCGIFADDR\fP \(em get ifnet address" -.IX get "ifnet address \fLioctl\fP \(em \fLSIOCGIFADDR\fP" -.IX "network interface ioctls" SIOCGIFADDR "network interface \fLioctl\fP's" "\fLSIOCGIFADDR\fP \(em get ifnet address" -Get interface address. -.IP SIOCSIFDSTADDR -.IX "ioctls for sockets" "SIOCSIFDSTADDR" "\fLioctl\fP's for sockets" "\fLSIOCSIFDSTADDR\fP \(em set p-p address" -.IX "SIOCSIFDSTADDR set p-p address" "" "\fLSIOCSIFDSTADDR\fP \(em set p-p address" -.IX set "p-p address ioctl \(em \fLSIOCSIFDSTADDR\fP" -.IX "network interface ioctls" SIOCSIFDSTADDR "network interface \fLioctl\fP's" "\fLSIOCSIFDSTADDR\fP \(em set p-p address" -Set point to point address for interface. -.IP SIOCGIFDSTADDR -.IX "ioctls for sockets" "SIOCGIFDSTADDR" "\fLioctl\fP's for sockets" "\fLSIOCGIFDSTADDR\fP \(em get p-p address" -.IX "SIOCGIFDSTADDR get p-p address" "" "\fLSIOCGIFDSTADDR\fP \(em get p-p address" -.IX get "p-p address \fLioctl\fP \(em \fLSIOCGIFDSTADDR\fP" -.IX "network interface ioctls" SIOCGIFDSTADDR "network interface \fLioctl\fP's" "\fLSIOCGIFDSTADDR\fP \(em get p-p address" -Get point to point address for interface. -.IP SIOCSIFFLAGS -.IX "ioctls for sockets" "SIOCSIFFLAGS" "\fLioctl\fP's for sockets" "\fLSIOCSIFFLAGS\fP \(em set ifnet flags" -.IX "SIOCSIFFLAGS set ifnet flags" "" "\fLSIOCSIFFLAGS\fP \(em set ifnet flags" -.IX set "ifnet flags ioctl \(em \fLSIOCSIFFLAGS\fP" -.IX "network interface ioctls" SIOCSIFFLAGS "network interface \fLioctl\fP's" "\fLSIOCSIFFLAGS\fP \(em set ifnet flags" -Set interface flags field. If the interface is marked down, -any processes currently routing packets through the interface -are notified. -.IP SIOCGIFFLAGS -.IX "ioctls for sockets" "SIOCGIFFLAGS" "\fLioctl\fP's for sockets" "\fLSIOCGIFFLAGS\fP \(em get ifnet flags" -.IX "SIOCGIFFLAGS get ifnet flags" "" "\fLSIOCGIFFLAGS\fP \(em get ifnet flags" -.IX get "ifnet flags \fLioctl\fP \(em \fLSIOCGIFFLAGS\fP" -.IX "network interface ioctls" SIOCGIFFLAGS "network interface \fLioctl\fP's" "\fLSIOCGIFFLAGS\fP \(em get ifnet flags" -Get interface flags. -.IP SIOCGIFCONF -.IX "ioctls for sockets" "SIOCGIFCONF" "\fLioctl\fP's for sockets" "\fLSIOCGIFCONF\fP \(em get ifnet list" -.IX "SIOCGIFCONF get ifnet list" "" "\fLSIOCGIFCONF\fP \(em get ifnet list" -.IX get "ifnet list \fLioctl\fP \(em \fLSIOCGIFCONF\fP" -.IX "network interface ioctls" SIOCGIFCONF "network interface \fLioctl\fP's" "\fLSIOCGIFCONF\fP \(em get ifnet list" -Get interface configuration list. This request takes an -.I ifconf -structure (see below) as a value-result parameter. The -.I ifc_len -field should be initially set to the size of the buffer -pointed to by -.IR ifc_buf . -On return it will contain the length, in bytes, of the -configuration list. -.RS -.nf -/* - * Structure used in SIOCGIFCONF request. - * Used to retrieve interface configuration - * for machine (useful for programs which - * must know all networks accessible). - */ -struct ifconf { - int ifc_len; /* size of associated buffer */ - union { - caddr_t ifcu_buf; - struct ifreq *ifcu_req; - } ifc_ifcu; -#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ -#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ -}; -.RE -.fi -.IX "if device" "" "\fLif\fP \(em network interface general properties" "" PAGE END -.SH "SEE ALSO -arp(4P), ec(4S), lo(4) diff --git a/share/doc/iso/wiscman/iso.4f b/share/doc/iso/wiscman/iso.4f deleted file mode 100644 index 5e7ca88fac67..000000000000 --- a/share/doc/iso/wiscman/iso.4f +++ /dev/null @@ -1,87 +0,0 @@ -.TH ISO 4F "9 December 1988" -.ds ]W Wisconsin ARGO 1.0 -.UC 4 -.SH NAME -iso \- ISO protocol family -.SH SYNOPSIS -.B #include -.br -.B #include -.SH DESCRIPTION -The ISO protocol family is a collection of protocols -that uses the ISO address format. -The ISO family provides protocol support for the -SOCK_SEQPACKET abstraction through the TP protocol (ISO 8073), -and for the SOCK_RAW abstraction -by providing direct access (for debugging) to the -CLNP (ISO 8473) network layer protocol. -.SH ADDRESSING -ISO addresses are based upon ISO 8348/AD2, -"Addendum to the Network Service Definition Covering Network Layer Addressing." -.PP -Sockets bound to the OSI protocol family use -the following address structure: -.sp 1 -.nf -._f -struct sockaddr_iso { - short siso_family; - u_short siso_tsuffix; - struct iso_addr siso_addr; -}; -.sp 1 -.fi -.PP -This fields of this structure are: -.TP 10 -\fIsiso_family:\fR -Identifies the domain: AF_ISO or AF_INET. -.TP 10 -\fIsiso_tsuffix:\fR -The transport part of the address, described below. -.TP 10 -\fIsiso_addr:\fR -The network part of the address, described below. -.SS TRANSPORT ADDRESSING -.PP -The above structure describes a simple form of -ISO \fItransport\fR addresses. -An ISO transport address is similar to an Internet address in that -it contains a network-address portion and a portion that the -transport layer uses to multiplex its services among clients. -In the Internet domain, this portion of the address is called a \fIport\fR. -In the ISO domain, this is called a \fItransport selector\fR -(also known at one time as a \fItransport suffix\fR). -While ports are always 16 bits, -transport selectors may be -of (almost) arbitrary size. -ARGO supports two forms of transport selectors: -"normal" or 16-bit selectors, and -"extended" selectors, or selectors that may be from 1-64 bytes -in length. -The default mode of operation is to use 16-bit transport selectors. -These addresses can be represented with the above structure. -When transport selectors of any other size are used, the transport -selector is kept in a separate structure. -See the manual page \fItp(4p)\fR. -.SS NETWORK ADDRESSING -.PP -ISO network addresses are limited to 20 bytes in length. -ISO network addresses can take any format. -ARGO 1.0 supports three formats. -See \fIisodir(3)\fR and \fIisodir(5)\fR. -.SH PROTOCOLS -The ARGO 1.0 implementation of the -ISO protocol family comprises -the Connectionless-Mode Network Protocol (CLNP), -and the Transport Protocol (TP), classes 4 and 0, -and X.25. -TP is used to support the SOCK_SEQPACKET -abstraction. -A raw interface to CLNP is available -by creating an ISO socket of type SOCK_RAW. -This is used for CLNP debugging only. -.SH SEE ALSO -tp(4P), cons(4p), clnp(4P), isodir(3), iso(4f), isodir(5), -"The ARGO 1.0 Kernel Programmer's Guide", -"Installing ARGO 1.0 on Academic Operating Systems 4.3 Release 2" diff --git a/share/doc/iso/wiscman/rvd.4p b/share/doc/iso/wiscman/rvd.4p deleted file mode 100644 index 44d7e8499af6..000000000000 --- a/share/doc/iso/wiscman/rvd.4p +++ /dev/null @@ -1,90 +0,0 @@ -.\" -.\" 5799-WZQ (C) COPYRIGHT IBM CORPORATION 1986,1987,1988 -.\" LICENSED MATERIALS - PROPERTY OF IBM -.\" REFER TO COPYRIGHT INSTRUCTIONS FORM NUMBER G120-2083 -.\" -.\"$Header:rvd.4p_ca 11.0$ -.\"$ACIS:rvd.4p_ca 11.0$ -.\"$Source: /ibm/acis/usr/man/man4/RCS/rvd.4p_ca,v $ -.\"This file contains -man macros. -.TH RVD 4P "July 1987" "Space overwritten by .AC macro" " " -.AC 1 0 -.SH NAME -rvd \- Remote Virtual Disk protocol -.SH DESCRIPTION -RVD -is a network service which allows several -physical machines to share one -physical mass storage device such as a hard disk. The basic -concept is to have the machine to which the device is physically attached -act as a server to read and write blocks for all the other -machines desiring use of the resource. -.PP -The server program apportions the -physical blocks into \*(lqvirtual disk packs\*(rq based on a -table maintained with -.IR vddb (8). -The packs can then be used separately by clients. There are -three modes of use: read-only, shared, and exclusive. -Exclusive mode is used for -read-write access, while read-only mode is as it sounds. -Shared mode is not supported under IBM/4.3. -If a disk pack is \*(lqspun up\*(rq in read-only mode, -several clients may share the pack and read its information. In -exclusive mode, one client has exclusive use of the disk pack. -.PP -Packs are \*(lqspun up\*(rq and \*(lqspun down\*(rq with the -.I up -and -.I down -commands (see -.IR up (1)). -This can be done -at reboot time within -.I /etc/rc.local -(see -.IR rc (8)) -or -at login time within -.I ~/.login -(see -.IR csh (1)). -Once a pack is spun up, it behaves like a disk physically attached to -the local machine (excepting network latency). -The client can do anything desired with the pack; -both MS-DOS and UNIX operating system file systems have -been used on the same physical -drive at the same time (on separate packs, of course). -.PP -RVD -is implemented in two parts: server code and client code. The server -code is written as a -.IR "user process" , -i.e. it does not require any special -privileges beyond read/write access to the disks it manages. The server -opens a network socket and listens for UDP connections. It also accepts -all -RVD -packets and acts on them. -RVD is a protocol different from both -UDP and TCP, -although similar in nature to the former. -.PP -The client code is implemented as a pseudo-device and corresponding -device driver in the kernel. It can handle up to 10 -remote virtual disks -simultaneously, which are associated with the pseudo-devices below. -.SH FILES -.DT -/dev/vd[0-9]a block special file pseudo-device -.br -/dev/rvd[0-9]a character special file pseudo-device -.SH "SEE ALSO" -up(1), rvddb(5), rvdtab(5), -rvdflush(8), rvdchlog(8), rvddown(8), -rvdexch(8), rvdflush(8), rvdlog(8), rvdsend(8), rvdshow(8), -rvdshut(8), rvdsrv(8), savervd(8), -spinup(8), vddb(8), vdstats(8) -.br -``The Remote Virtual Disk System'' in Volume II, Supplementary Documents - diff --git a/share/doc/iso/wiscman/tp.4p b/share/doc/iso/wiscman/tp.4p deleted file mode 100644 index e82cfefbcdf7..000000000000 --- a/share/doc/iso/wiscman/tp.4p +++ /dev/null @@ -1,611 +0,0 @@ -.\" $Id$ -.\" -.TH TP 4P "9 December 1988" -.ds ]W Wisconsin ARGO 1.0 -.UC 4 -.SH NAME -TP \- ISO Transport Protocol -.SH SYNOPSIS -.nf -\fB#include \fR -\fB#include \fR -\fB#include \fR -\fB#include \fR -.PP -\fBs = socket( [ AF_INET, AF_ISO ] , SOCK_SEQPACKET, 0);\fR -.SH DESCRIPTION -.PP -The ISO Transport Protocol implemented for AOS R2 -at the University of Wisconsin - Madison -includes classes 0 and 4 -of the ISO transport protocols -as specified in -the September 1984 version of DIS 8073. -Class 4 of the protocol provides reliable, sequenced, -flow-controlled, two-way -transmission of data packets with an alternate stop-and-wait data path called -the "expedited data" service. -Class 0 is essentially a null transport protocol, which is used -when the underlying network service provides reliable, sequenced, -flow-controlled, two-way data transmission. -Class 0 does not provide the expedited data service. -The protocols are implemented as a single transport layer entity -that coexists with the Internet protocol suite. -Class 0 may be used only in the ISO domain. -Class 4 may be used in the Internet domain as well as in the ISO domain. -.PP -The user interface to this protocol is the Berkeley interprocess communication -interface (see \fIsocket(2)\fR.) -Two new system calls for sending and receiving -were added to this interface to -to permit the support the end-of-transport-service-data-unit (EOTSDU) -indication. -See \fIsendv(2)\fR and \fIrecvv(2)\fR. -If the EOTSDU is not needed, the Berkeley 4.3BSD interface -can be used. -See \fIsend(2)\fR and \fIrecv(2)\fR. -.PP -Through the -\fIgetsockopt\fR and \fIsetsockopt\fR -system calls, -TP supports several options -to control such things as negotiable options -in the protocol and protocol strategies. -.\"These system calls are used -.\"to submit data for inclusion on connect and disconnect TPDUs. -The options are defined in \fB\fR, -and are described below. -.\".PP -.\"The options marked with a percent sign ( \fB%\fR ) -.\"are limited to use by the super-user. -.PP -In the tables below, -the options marked with a pound sign ( \fB#\fR ) -may be used -with \fIsetsockopt()\fR -after a connection is established. -Others must be used before the connection -is established, in other words, -before calling -\fIconnect()\fR or -\fIaccept()\fR. -All options may be used -with \fIgetsockopt()\fR -before or -after a connection is established. -.\" -.\" .PP -.\" The options marked with an exclamation point ( \fB!\fR ) -.\" may be used after a connection is released, -.\" but before -.\" the TP reference timer (which generally -.\" has a value in minutes) expires, and before -.\" a \fIclose()\fR system call. -.\" In other words, these commands may be used when the peer closes -.\" a connection (possibly causing a disconnect indication), as long as the command -.\" is issued "soon" after the disconnection occurred. -.\" Disconnect data may be sent by the side initiating the close -.\" but not by the passive side ("passive" with respect to the closing -.\" of the connection), so there is no need to read disconnect data -.\" after calling \fIclose()\fR. -.\" .PP -.\" The implementation of data on connect and disconnect is incomplete -.\" and is not supported. -.sp 1 -.TP 25 -\fBName\fR -\fBValue [default]\fR -.IP -\fBDescription\fR -.\".TP 25 -.\"TPOPT_CONN_DATA -.\"(char *) [none] -.\".IP -.\"Data to send on \fIconnect()\fR. -.\".TP 25 -.\"TPOPT_DISC_DATA\fB # !\fR -.\"(char *) [none] -.\".IP -.\"Data to send on \fIclose()\fR. -.\".TP 25 -.\"TPOPT_CDDATA_CLEAR\fB #\fR -.\"No associated value. -.\".IP -.\"Erase outgoing connect or disconnect data. -.TP 25 -TPOPT_MY_TSEL\fB \fR -1-64 bytes. -.IP -An "extended" transport selector (tsel) for this socket. -This option is used to set or get the local tsel. -When this option is used to set a tsel, -the default the 2-byte tsel -that may have been allocated by \fIbind()\fR -is retained, but this "extended" tsel is the -tsel that is transmitted in a connection request -When this option is used to get a tsel, -it will return whatever transport tsel exists; -if no "extended" tsel was given to this socket, -the 2-byte tsel is returned. -.TP 25 -TPOPT_PEER_TSEL\fB \fR -1-64 bytes. -.IP -An "extended" transport selector (tsel) for the -peer transport entity. -This option is used to get the peer's tsel after -a connection is established. -When used before a connection -is established, this option can set the tsel that -will be transmitted as the "called" tsel -in a connection request. -.TP 25 -TPOPT_PERF_MEAS\fB #\fR -Boolean. -.IP -When \fBtrue\fR, performance measurements will be kept -for this connection. -When set before a connection is established, the -active side will use a locally defined parameter on the -connect request packet; if the peer is another ARGO -implementation, this will cause performance measurement to be -turned on -on the passive side as well. -See \fItpperf(8)\fR. -.TP 25 -TPOPT_PSTATISTICS\fB\fR -No associated value on input. -On output, struct tp_pmeas. -.IP -This command is used to read the performance statistics accumulated -during a connection's lifetime. -It can only be used with \fIgetsockopt()\fR. -The structure it returns is described in \fB\fR. -See \fItpperf(8)\fR. -.TP 25 -TPOPT_FLAGS -unsigned integer. [ 0x0 ] -.IP -This command can only be used with \fIgetsockopt()\fR. -See the description of the flags below. -.TP 25 -TPOPT_PARAMS\fB\fR -struct tp_conn_param. -.IP -Used to get or set a group parameters for a connection. -The struct tp_conn_param is the argument used with the -\fIgetsockopt()\fR or \fIsetsockopt()\fR system call. -It is described in -\fB\fR. -.PP -The fields of the \fItp_conn_param\fR structure are -described below. -.nf -.sp 1 -\fIValues for TPOPT_PARAMS:\fR -.fi -.TP 25 -\fBField\fR -\fBValue [default]\fR -.IP -\fBDescription\fR -.\" ******************8 -.TP 25 -p_Nretrans -nonzero short integer [ 1 ] -.IP -Number of times a TPDU will be retransmitted before the -local TP entity closes a connection. -.\" ******************8 -.TP 25 -p_dr_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks between retransmissions of disconnect request TPDUs. -.\" ******************8 -.TP 25 -p_dt_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks between retransmissions of data TPDUs. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_cr_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks between retransmissions of connection request TPDUs. -.\" ******************8 -.TP 25 -p_cc_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks between retransmissions of connection confirm TPDUs. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_x_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks between retransmissions of expedited data TPDUs. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_sendack_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks that the local TP entity -will wait before sending an acknowledgment for normal data -(not applicable if the acknowlegement strategy is TPACK_EACH). -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_ref_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks for which a reference will -be considered frozen after the connection to which -it applied is closed. -This parameter applies to classes 4 and 0 in the -ARGO implementation, despite the fact that -the frozen reference function is required only for -class 4. -.\" ******************8 -.TP 25 -p_inact_ticks -nonzero short integer [ various ] -.IP -Number of clock ticks without an incoming packet from the peer after which -TP close the connection. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_keepalive_ticks -nonzero short integer [ various ] -.IP -nonzero short integer [ various ] -Number of clock ticks between acknowledgments that are sent -to keep an inactive connection open (to prevent the peer's -inactivity control function from closing the connection). -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_winsize -short integer between 128 and 16384. [4096 bytes] -.IP -The buffer space limits in bytes for incoming and outgoing data. -There is no way to specify different limits for incoming and outgoing -paths. -The actual window size at any time -during the lifetime of a connection -is a function of the buffer size limit, the negotiated -maximum TPDU size, and the -rate at which the user program receives data. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_tpdusize -unsigned char between 0x7 and 0xd. -[ 0xc for class 4 ] [ 0xb for class 0 ] -.IP -Log 2 of the maximum TPDU size to be negotiated. -The TP standard (ISO 8473) gives an upper bound of -0xd for class 4 and 0xb for class 0. -The ARGO implementation places upper bounds of -0xc on class 4 and 0xb on class 0. -.\" ******************8 -.TP 25 -p_ack_strat -TPACK_EACH or TPACK_WINDOW. [ TPACK_WINDOW ] -.IP -This parameter applies only to class 4. -Two acknowledgment strategies are supported: -.IP -TPACK_EACH means that each data TPDU is acknowledged -with an AK TPDU. -.IP -TPACK_WINDOW -means that upon receipt of the packet that represents -the high edge of the last window advertised, and AK TPDU is generated. -.\" ******************8 -.TP 25 -p_rx_strat -4 bit mask -[ TPRX_USE_CW | TPRX_FASTSTART over -connectionless network protocols ] -[ TPRX_USE_CW over -connection-oriented network protocols ] -.IP -This parameter applies only to class 4. -The bit mask may include the following values: -.IP -TPRX_EACH: When a retransmission timer expires, retransmit -each packet in the send window rather than -just the first unacknowledged packet. -.IP -TPRX_USE_CW: Use a "congestion window" strategy borrowed -from Van Jacobson's congestion window strategy for TCP. -The congestion window size is set to one whenever -a retransmission occurs. -.IP -TPRX_FASTSTART: Begin sending the maximum amount of data permitted -by the peer (subject to availability). -The alternative is to start sending slowly by -pretending the peer's window is smaller than it is, and letting -it slowly grow up to the real peer's window size. -This is to smooth the effect of new connections on a congested network -by preventing a transport connection from suddenly -overloading the network with a burst of packets. -This strategy is also due to Van Jacobson. -.\" ******************8 -.TP 25 -p_class -5 bit mask -[ TP_CLASS_4 | TP_CLASS_0 ] -.IP -Bit mask including one or both of the values TP_CLASS_4 and TP_CLASS_0. -The higher class indicated is the preferred class. -If only one class is indicated, negotiation will not occur -during connection establishment. -.\" ******************8 -.TP 25 -p_xtd_format -Boolean. -[ false ] -.IP -Boolean indicating that extended format shall be negotiated. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_xpd_service -Boolean. -[ true ] -.IP -Boolean indicating that -the expedited data transport service will be negotiated. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_use_checksum -Boolean. -[ true ] -.IP -Boolean indicating the use of checksums will be negotiated. -This parameter applies only to class 4. -.\" ******************8 -.TP 25 -p_use_nxpd -Reserved for future use. -.\" ******************8 -.TP 25 -p_use_rcc -Reserved for future use. -.\" ******************8 -.TP 25 -p_use_efc -Reserved for future use. -.\" ******************8 -.TP 25 -p_no_disc_indications -Boolean. -[ false ] -.IP -Boolean indicating that the local TP entity shall not issue -indications (signals) when a TP connection is disconnected. -.\" ******************8 -.TP 25 -p_dont_change_params -Boolean. -[ false ] -.IP -If \fBtrue\fR the TP entity will not override -any of the other values given in this structure. -If the values cannot be used, the TP entity will drop, disconnect, -or refuse to establish the connection to which this structure pertains. -.\" ******************8 -.TP 25 -p_netservice -One of { ISO_CLNS, ISO_CONS, ISO_COSNS, IN_CLNS }. -[ ISO_CLNS ] -.IP -Indicates which network service is to be used. -.IP -ISO_CLNS indicates the connectionless network service provided -by CLNP (ISO 8473). -.IP -ISO_CONS indicates the connection-oriented network service provided -by X.25 (ISO 8208) and ISO 8878. -.IP -ISO_COSNS indicates the -connectionless network service running over a -connection-oriented subnetwork service : CLNP (ISO 8473) over X.25 (ISO 8208). -.IP -IN_CLNS indicates the -DARPA Internet connectionless network service provided by IP (RFC 791). -.\" ******************8 -.TP 25 -p_dummy -Reserved for future use. -.sp 1 -.PP -The TPOPT_FLAGS option is used for obtaining -various boolean-valued options. -Its meaning is as follows. -The bit numbering used is that of the PC/RT, which means that bit -0 is the most significant bit, while bit 8 is the least significant bit. -.nf -.sp 1 -\fIValues for TPOPT_FLAGS:\fR -.fi -.TP 10 -\fBBits\fR -\fBDescription [Default]\fR -.TP 10 -0 -TPFLAG_NLQOS_PDN : set when the quality of the -network service is -similar to that of a public data network. -.TP 10 -1 -TPFLAG_PEER_ON_SAMENET : set when the peer TP entity -is considered to be on the same network as the local -TP entity. -.TP 10 -2 -Not used. -.TP 10 -3 -TPFLAG_XPD_PRES : set when expedited data are present -[ 0 ] -.TP 10 -4..7 -Reserved. -.\".TP 10 -.\"4 -.\"Reserved. -.\".TP 10 -.\"5 -.\"TPFLAG_DISC_DATA_IN : read only flag, if set indicates that -.\"data from a disconnect TPDU are present. -.\".TP 10 -.\"6 -.\"Reserved. -.\".TP 10 -.\"7 -.\"TPFLAG_CONN_DATA_IN : read only flag, if set indicates that -.\"data from a connect TPDU are present. -.SH "LIBRARIES -.PP -The new system calls \fIrecvv\fR and \fIsendv\fR are supported by a -library, \fIlibtp.a\fR (rather than a modified C library). -Also in this -library are new optional interfaces to the \fIconnect\fR and \fIaccept\fR -system calls. See LIBTP(3). -.SH FILES -.PP -The following files in have entries necessary for the correct operation -of the TP utilities. -.nf -\fC - /etc/isodir - /etc/protocols -\fR -.fi -.PP -The symbolic link is needed for users to write programs using IPC -with TP: -.nf -\fC - /usr/include/netargo@ -> /sys/netargo -\fR -.fi -.PP -The following utilities have changed: -.nf - netstat - ifconfig - config -.fi -.PP -The following are new utilities and daemons: -.nf - isoroute - rlogin.iso, rcp.iso, rsh.iso, isod, rlogind - tpdiscard - tpping - tppt (for maintenance and debugging) - bark (for maintenance and debugging) - tpfileget, tpfileput (for debugging) - tpstat, tpmon - tpset - tppkt - viid -.fi -.PP -In the kernel source, many files have changed or been added. -For a list of these, see the installation guide, -"Installing Wisconsin ARGO 1.0 on Academic Operating System 4.3 -Release 2". -.SH "ERROR VALUES -.PP -The TP entity returns \fIerrno\fR error values as defined in -\fB\fR -and -\fB\fR. -User programs may print messages associated with these value by -using an expanded version of \fIperror()\fR -found in the ISO library, \fIlibisodir.a\fR. -.PP -If the TP entity encounters asynchronous events -that will cause a transport connection to be closed, -such as -timing out while retransmitting a connect request TPDU, -or receiving a DR TPDU, -the TP entity issues a SIGURG signal, indicating that -disconnection has occurred. -If the signal is issued during a -a system call, the system call may be interrupted, -in which case the -\fIerrno\fR value upon return from the system call is EINTR. -If the signal SIGURG -is being handled by reading -from the socket, and it was a \fIaccept()\fR that -timed out, the read may result in ENOTSOCK, -because the \fIaccept()\fR call had not yet returned a -legitimate socket descriptor when the signal was handled. -ETIMEDOUT (or a some other errno value appropriate to the -type of error) is returned if SIGURG is blocked -for the duration of the system call. -A user program should take one of the following approaches: -.IP "Block SIGURG." 5 -If the program is servicing -only one connection, it can block or ignore SIGURG during connection -establishment. -The advantage of this is that the \fIerrno\fR value -returned is somewhat meaningful. -The disadvantage of this is that -if ignored, disconnection and expedited data indications could be -missed. -For some programs this is not a problem. -.IP "Handle SIGURG." 5 -If the program is servicing more than one connection at a time -or expedited data may arrive or both, the program must -service SIGURG. -It can use the \fIgetsockopt(...TPOPT_FLAGS...)\fR system -call to see if the signal -was due to the arrival of expedited data or due to a disconnection. -In the latter case, -\fIgetsockopt()\fR -will return ENOTCONN. -.SH BUGS -.PP -When running TP over the token ring, if checksumming -is NOT used, the TP entity sents packets to the lan driver faster than -the driver can reasonably handle them. -A bug in the lan driver causes it to reorder the packets in this -situation, causing an overall degradation of TP performance. -In general, this is not a problem because very few applications -will actually be able to send packets this fast. -Nevertheless, -in order to prevent this reordering, -one may induce a delay in the TP entity by setting the 1-byte -value -\fItp_delay\fR -to 1 -using the debugger. -Hit the key, then -type \fB/b tp_delay\fR followed by the . -The debugger will print the value 00. -You then type \fB1\fR followed by the . -Then type \fBend\fR . -Then type \fBgo\fR . -.SH SEE ALSO -.PP -tcp(4P), sendv(2), recvv(2), libtp(3), -isodir(3), isodir(5), netstat(1), -iso(4F), clnp(4P), viid(8) -tppt(8), tpstat(8), bark(8), tppkt(8), tpset(8), tpperf(8) -isoroute(8), ifconfig(8), isod(8), rlogin.iso(1), -"Installing Wisconsin ARGO 1.0 on Academic Operating System 4.3 -Release 2", -"ARGO 1.0 Kernel Programmer's Manual"