|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.