Annotation of lucent/sys/man/3/dk, revision 1.1.1.1

1.1       root        1: .TH DK 3 
                      2: .SH NAME
                      3: dk \- Datakit conversations
                      4: .SH SYNOPSIS
                      5: .B bind
                      6: .BI #k name
                      7: .B /net/dk
                      8: .br
                      9: .B bind
                     10: .BI #i name
                     11: .B /net/dk
                     12: .nf
                     13: .sp
                     14: .B
                     15: ctlfd = open(".../ctl", ORDWR);
                     16: .B
                     17: write(ctlfd, "push dkmux", 10);
                     18: .B
                     19: write(ctlfd, "config \fIcsc \fP[no]restart\fI name nvc window\fP", n);
                     20: .fi
                     21: .SH DESCRIPTION
                     22: A Datakit device\(emeither
                     23: .B k
                     24: for the regular Datakit or
                     25: .B i
                     26: for the Incon\(emis a directory containing up to 256
                     27: directories, one per virtual circuit, named
                     28: .B 0
                     29: through
                     30: .BR 255 ,
                     31: and a special file named
                     32: .BR clone .
                     33: The specifier
                     34: .I name
                     35: matches the Datakit device to a physical device that
                     36: its virtual circuits are multiplexed over (see
                     37: .IR dkmux
                     38: below).
                     39: .PP
                     40: Normally, the standard routines
                     41: .IR dial ,
                     42: .IR hangup ,
                     43: .IR listen ,
                     44: and
                     45: .I announce
                     46: (see
                     47: .IR dial (2))
                     48: are used to make, listen for, and control calls over
                     49: any network.
                     50: The routines expect the following properties of
                     51: any multiplexed network, not just Datakit.
                     52: .PP
                     53: Opening the
                     54: .I clone
                     55: file opens the 
                     56: .B ctl
                     57: file of an unused virtual circuit.
                     58: Reading any
                     59: .I ctl
                     60: file returns the name of the
                     61: virtual circuit directory.
                     62: For example, reading
                     63: .B #k/17/ctl
                     64: will return the string
                     65: .BR 17 .
                     66: .PP
                     67: Each virtual circuit directory contains the files:
                     68: .TP 10
                     69: .B ctl
                     70: to control the virtual circuit: establish a connection, hang it up, etc.
                     71: .TP 10
                     72: .B data
                     73: to converse with the remote end (via read and write)
                     74: .TP 10
                     75: .B listen
                     76: to listen for calls (after announcing; see below)
                     77: .TP 10
                     78: .B other
                     79: information about the conversation
                     80: .TP 10
                     81: .B raddr
                     82: the address of the remote end
                     83: .TP 10
                     84: .B ruser
                     85: the id of the user at the remote end (when applicable)
                     86: .PP
                     87: To set up and tear down virtual circuits a process writes
                     88: textual commands to the 
                     89: .B ctl
                     90: file:
                     91: .TP 18
                     92: .BI connect " addr
                     93: connect to address
                     94: .IR addr .
                     95: If the connection fails, the write returns an error.
                     96: .TP 18
                     97: .B hangup
                     98: tear down a connected virtual circuit.
                     99: .TP 18
                    100: .BI announce " name
                    101: announce the readiness to accept calls to
                    102: .IR name .
                    103: .TP 18
                    104: .BI accept " n
                    105: accept the call on virtual circuit
                    106: .IR n .
                    107: .TP 18
                    108: .BI reject " n e"
                    109: reject the call on virtual circuit
                    110: .I n
                    111: with error code
                    112: .IR e .
                    113: .I E
                    114: must be a number from 0 to 7.
                    115: .PP
                    116: Once a virtual circuit is set up,
                    117: a process can converse with the remote service
                    118: by reading and writing the
                    119: .B data
                    120: file.
                    121: Write boundaries are preserved.
                    122: .PP
                    123: Accepting calls to
                    124: .I name
                    125: requires the following dance:
                    126: .IP 1)
                    127: announce 
                    128: .I name
                    129: on a virtual circuit.
                    130: .IP 2)
                    131: open the
                    132: .B listen
                    133: file in that virtual circuit's directory.
                    134: When a call comes in on a virtual circuit for
                    135: .IR name ,
                    136: the open will return with the file descriptor open to
                    137: the control file of the incoming virtual circuit.
                    138: .IP 3)
                    139: accept or reject the call by writing an
                    140: .B accept
                    141: or
                    142: .B reject
                    143: command to the 
                    144: .B ctl
                    145: file of the announced virtual circuit.
                    146: .PP
                    147: A
                    148: .I dkmux
                    149: module pushed onto a stream makes that stream a multiplexed
                    150: connection to a Datakit.
                    151: The subsequent 
                    152: .B config
                    153: control message configures the multiplexer and matches it to a
                    154: .I dk
                    155: device.
                    156: The parameters to the
                    157: .B config
                    158: message are
                    159: .TP
                    160: .I csc
                    161: the line number of the common signaling channel (must be > 0)
                    162: .TP
                    163: .I nvc
                    164: the number of virtual circuits (optional; default chosen by Datakit)
                    165: .TP
                    166: .RB [ no ] restart
                    167: the word
                    168: .B restart
                    169: or
                    170: .B norestart
                    171: (optional; default is
                    172: .BR restart ).
                    173: .B Restart
                    174: tells the Datakit to forget all previous connections and
                    175: authentications for this machine.
                    176: .TP
                    177: .I name
                    178: The name used in binding
                    179: .I dk
                    180: device.
                    181: .TP
                    182: .I window
                    183: the default URP window size for virtual circuits on this Datakit line (default is 2048).
                    184: .LP
                    185: .SH FILES
                    186: .B #k/clone
                    187: .br
                    188: .B #k/[0-255]
                    189: .br
                    190: .B #k/[0-255]/data
                    191: .br
                    192: .B #k/[0-255]/ctl
                    193: .br
                    194: .B #k/[0-255]/listen
                    195: .br
                    196: .B #k/[0-255]/ruser
                    197: .br
                    198: .B #k/[0-255]/raddr
                    199: .SH SEE ALSO
                    200: .IR stream (3),
                    201: .IR dkconfig (8),
                    202: .IR datakit (3)
                    203: .SH SOURCE
                    204: .B /sys/src/9/*/devdk.c

unix.superglobalmegacorp.com

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