Annotation of researchv10dc/man/man4/dk.4, revision 1.1.1.1

1.1       root        1: .TH DK 4
                      2: .CT 2 comm_mach
                      3: .SH NAME
                      4: dk, dkp_ld, unixp_ld, cmc_ld \- Datakit interface and protocols
                      5: .SH SYNOPSIS
                      6: .B #include <sys/dkio.h>
                      7: .SH DESCRIPTION
                      8: These device drivers
                      9: and line disciplines
                     10: are used to connect to a Datakit network.
                     11: Normally the programs in
                     12: .IR dkmgr (8)
                     13: do all the work.
                     14: .PP
                     15: Several combinations
                     16: of hardware and software
                     17: may be used to connect a system to Datakit:
                     18: .IP
                     19: The
                     20: .I dk
                     21: driver
                     22: works with a
                     23: DR11-C
                     24: or
                     25: DRV11-J
                     26: connected through an adapter box
                     27: to a Datakit CPM-422.
                     28: The host computer does all the protocol work.
                     29: .IP
                     30: The
                     31: .I kdi
                     32: driver works with a
                     33: KMC11-B
                     34: and one of several line units
                     35: (KDI, DUBHI, KMS11-P)
                     36: connected to one of several Datakit or ISN interface boards.
                     37: The KMC11 runs microcode that handles the URP protocol.
                     38: .IP
                     39: The experimental
                     40: .I kmcdk
                     41: driver works with a KMC11-B
                     42: and a line unit,
                     43: as above,
                     44: but the KMC11 runs different microcode
                     45: implementing a simple DMA engine,
                     46: and the host does all the protocol work.
                     47: This is slower,
                     48: but rather more robust,
                     49: than the
                     50: .I kdi
                     51: setup.
                     52: .IP
                     53: The experimental
                     54: .I cure
                     55: driver works with a custom-built microprocessor board
                     56: connected to a Datakit, ISN, or Hyperkit
                     57: fiber interface.
                     58: The host does all the protocol work.
                     59: .PP
                     60: Each minor device number
                     61: represents a Datakit channel;
                     62: the device number is the channel number.
                     63: The
                     64: .I kdi
                     65: driver allows only 96 channels per KMC11-line unit pair;
                     66: devices 96-191 are channels 0-95 on a second pair,
                     67: if present,
                     68: and devices 192-255 are channels 0-63 on a third.
                     69: For the other drivers,
                     70: there may be only one hardware interface,
                     71: which may have up to 256 channels.
                     72: .PP
                     73: .PP
                     74: Usually there is one interface,
                     75: with files in directory
                     76: .FR /dev/dk .
                     77: See
                     78: .IR dkmgr (8)
                     79: for more about naming conventions.
                     80: .PP
                     81: .I Dkp_ld
                     82: is a stream line discipline
                     83: implementing the URP protocol.
                     84: The
                     85: .I kdi
                     86: driver makes its own URP arrangements;
                     87: other interfaces need the line discipline.
                     88: A separate copy of
                     89: .I dkp_ld
                     90: must be pushed on each active channel.
                     91: .PP
                     92: .I Cmc_ld
                     93: and
                     94: .I unixp_ld
                     95: are line disciplines set up calls handle and controller handshake messages.
                     96: .I Cmc_ld
                     97: runs a Research-only call setup protocol;
                     98: .I unixp_ld
                     99: runs the standard one.
                    100: One copy of the appropriate line discipline
                    101: must be pushed on the common signaling channel
                    102: to deal with occasional controller keep-alive
                    103: and maintenance messages.
                    104: Other copies of the line discipline
                    105: come and go as calls are placed.
                    106: .PP
                    107: These
                    108: .I ioctl
                    109: calls are provided by the device drivers:
                    110: .nr pI \w'\f5DIOCSTREAM \fP'u
                    111: .PD 0
                    112: .TP \n(pIu
                    113: .B DIOCNXCL
                    114: Allow this channel to be opened many times.
                    115: By default,
                    116: if a channel is open,
                    117: it may not be opened again.
                    118: The default is restored
                    119: whenever the channel is completely closed.
                    120: .TP
                    121: .B KIOCSHUT
                    122: Reset the
                    123: .I kdi
                    124: driver,
                    125: hanging up all channels.
                    126: .PD
                    127: .PP
                    128: These
                    129: .I ioctl
                    130: calls are provided by the URP processors,
                    131: .I dkp_ld
                    132: and
                    133: .IR kdi :
                    134: .TP \n(pIu
                    135: .PD 0
                    136: .B DIOCSTREAM
                    137: Don't generate a stream delimiter
                    138: when this channel receives a
                    139: BOT
                    140: trailer.
                    141: .TP
                    142: .B DIOCRECORD
                    143: Insert a stream delimiter after
                    144: receiving
                    145: BOT;
                    146: the default.
                    147: .TP
                    148: .B DIOCSCTL
                    149: The third argument points to a byte;
                    150: send that as a Datakit control envelope.
                    151: .TP
                    152: .B DIOCRCTL
                    153: The third argument points to a byte;
                    154: copy the most recently received non-URP control envelope there.
                    155: Zero means no control
                    156: has been received since the last call.
                    157: .TP
                    158: .B DIOCXWIN
                    159: Set transmit window size.
                    160: The third argument points to an array of two long integers.
                    161: The first number is the maximum size of each URP block;
                    162: the second is the number of blocks that may be outstanding.
                    163: Blocks may be no more than 4096 bytes,
                    164: and the protocol allows no more than eight blocks in a window.
                    165: A
                    166: .B KIOCINIT
                    167: call should follow immediately,
                    168: or things may go awry.
                    169: .TP
                    170: .B KIOCISURP
                    171: Return success if
                    172: some URP processor
                    173: is active on this channel.
                    174: .TP
                    175: .B KIOCINIT
                    176: Initialize URP.
                    177: .PD
                    178: .PP
                    179: These
                    180: .I ioctl
                    181: calls are provided by the call setup line disciplines:
                    182: .TP \n(pIu
                    183: .PD 0
                    184: .B DIOCLHN
                    185: This is the common signalling channel.
                    186: .TP
                    187: .B DIOCHUP
                    188: Tell the controller to initialize,
                    189: hanging up all channels.
                    190: .TP
                    191: .B DIOCSTOP
                    192: Temporarily hold back received data,
                    193: so it won't be lost in call setup messages.
                    194: .TP
                    195: .B DIOCSTART
                    196: Release data held by
                    197: .BR DIOCSTOP .
                    198: .TP
                    199: .B DIOCCHAN
                    200: The third argument points to an integer;
                    201: fill it in with the number
                    202: of a free channel for calling out.
                    203: This is a hint, not a promise;
                    204: the channel may already be taken by the time it is opened.
                    205: The caller should be prepared to try again.
                    206: .SH FILES
                    207: .F /dev/dk
                    208: .SH SEE ALSO
                    209: .IR dkmgr (8),
                    210: .IR kmc (8)
                    211: .br
                    212: A. G. Fraser and W. T. Marshall, `Data Transport in a
                    213: Byte Stream Network', 
                    214: .I IEEE J-SAC,
                    215: (September, 1989)
                    216: .br
                    217: .I Datakit VSC Internal Interface Specification,
                    218: select code 700-283,
                    219: AT&T Customer Information Center, Indianapolis
                    220: .SH BUGS
                    221: .I Dkp_ld
                    222: and
                    223: .I kdi
                    224: insist on using exactly three blocks in a window,
                    225: no matter what they are told in
                    226: .BR DIOCXWIN .
                    227: .br
                    228: The
                    229: .I kdi
                    230: driver has only two block sizes,
                    231: 28 and 252 bytes.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.