Annotation of researchv10dc/man/man4/dk.4, revision 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.