diff options
Diffstat (limited to 'share/doc/iso/wiscman/cons.4p')
-rw-r--r-- | share/doc/iso/wiscman/cons.4p | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/share/doc/iso/wiscman/cons.4p b/share/doc/iso/wiscman/cons.4p new file mode 100644 index 0000000..c8b152b --- /dev/null +++ b/share/doc/iso/wiscman/cons.4p @@ -0,0 +1,196 @@ +.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 <sys/socket.h>\fR +\fB#include <sys/mbuf.h>\fR +\fB#include <netargo/iso.h>\fR +\fB#include <netargo/cons.h>\fR +\fB#include <netargo/iso_errno.h>\fR +.sp +\fBint cons_output(isop, m, len, isdatagram)\fR +.sp +or for use as a subnetwork service (COSNS): +.sp +\fB#include <sys/socket.h>\fR +\fB#include <sys/mbuf.h>\fR +\fB#include <netargo/iso.h>\fR +\fB#include <net/if.h>\fR +\fB#include <netargo/cons.h>\fR +\fB#include <netargo/iso_errno.h>\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 the least significant bit). +The error values can be found in +the file +.nf +.in +5 +.sp +\fC<netargo/iso_errno.h>\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" |