|
|
1.1 ! root 1: .TH BSCTR 4 DLBA 1.2 ! 2: .SH NAME ! 3: bsctr \- BISYNC trace device ! 4: .SH DESCRIPTION ! 5: A prerequisite to fully understanding this section of the manual is a general ! 6: background in binary synchronous communications, which may be had by reading ! 7: the IBM General Information on Binary Synchronous Communications document, ! 8: mentioned in SEE ALSO, to follow. As well, understanding the data ! 9: returned by this pseudo-device requires an overall understanding ! 10: of the protocol state machine diagrams appended to this document. ! 11: An explanation of those diagrams appears in the PROTOCOL STATE MACHINE ! 12: section to follow. ! 13: .P ! 14: Opening the ! 15: .I bsctr ! 16: device will cause a process to wait until the corresponding ! 17: .I bsc ! 18: device is ! 19: opened. Only one process may have the trace device open at a time. ! 20: The device can only be opened for reading. ! 21: .P ! 22: When a port being controlled by the ! 23: .I bsc ! 24: driver is opened, ! 25: presumably by another process, the process opening the trace device ! 26: (the tracing process) will return from the open. The ! 27: .I bsc ! 28: device driver will place information on state transitions ! 29: in the protocol state machine (and optionally, the actual data being ! 30: sent and received) into a circular buffer. Reads to the trace device ! 31: result in information being transferred from this circular buffer ! 32: to the tracing process. It is easily possible to lose information ! 33: being placed into the buffer if it is not read before it becomes ! 34: full; to minimize risk of data loss, it is recommended that the tracing ! 35: program merely copy information from the trace device to a file, ! 36: with little if any processing. ! 37: .P ! 38: A read request for N bytes will be satisfied when (1) N bytes are ! 39: available in the trace buffer, (2) the trace buffer becomes over ! 40: half full, or (3) a transmit or receive operation has just completed. ! 41: End of file will be indicated ! 42: .I (read ! 43: returns a value of zero) when the corresponding ! 44: .I bsc ! 45: driver is closed. ! 46: .P ! 47: The data read consists of one or more trace records, of a form ! 48: defined in ! 49: .I <bsctr.h>. ! 50: Basically, there are two ! 51: overall types of trace information, the aforementioned state transition ! 52: information and the actual data packets being transmitted and received. ! 53: .P ! 54: .nf ! 55: .ta 0.8i 2.5i ! 56: struct bsctr { ! 57: long tr_time; /* time stamp */ ! 58: char tr_state; /* state number */ ! 59: char tr_type; /* type of record */ ! 60: short tr_val; /* if type=X or Y, length of data */ ! 61: char tr_data[512]; /* data packet of tr_val bytes */ ! 62: }; ! 63: .fi ! 64: .P ! 65: The time stamp is in ! 66: .I time(2) ! 67: form. The state number is one of those on the protocol state machine diagrams. ! 68: The type of record can be S for sending data, R for waiting to receive ! 69: date, C for completion of receive where tr_val gives the packet type, ! 70: F for a function state, D for a decision state, E for an error state ! 71: where tr_val gives the error code, and X or Y for actual data transmitted ! 72: or received, respectively, where tr_val gives the length of the data ! 73: packet immediately following. ! 74: .P ! 75: One ! 76: .I ioctl(2) ! 77: call is available to indicate to ! 78: the trace device that data is to be recorded in the trace buffer ! 79: as well as the default state transition information: ! 80: .IP ! 81: ioctl (fildes, 1, 0) ! 82: .SH "PROTOCOL STATE MACHINE" ! 83: .P ! 84: The protocol state machine consists of five types of states: Send, ! 85: Receive, Decision, Function, and Error. The Send state is denoted ! 86: by a rectangule, with annotations regarding state number and data ! 87: to be sent. A transition line indicates the next state to follow. ! 88: .P ! 89: The Receive state is denoted by a circle, and is annoted with the ! 90: state number. At the completion of the receive operation, transition ! 91: is made to another state depending on the type of packet received; ! 92: there is also a transition marked with a dotted line indicating the ! 93: state to receive control if nothing is received within the timeout ! 94: interval. Packet types include ENQ, STX...ETB, STX...ETX, EOT, DLE-EOT, ! 95: ACK-0, ACK-1, TTD (STX...ENQ), WACK, and RVI. ! 96: .P ! 97: A Function state is indicated by a single line, annoted with state ! 98: number. A Decision state is indicated by a triangle. The difference ! 99: between the two states is that a Function has only one successor ! 100: state, where a Decision may have several. The two states are represented ! 101: differently for clarity. ! 102: .P ! 103: An Error state is shown as a five-sided object, and is annotated ! 104: with the state number and with the error type. This state always ! 105: results in a transition to state zero. ! 106: .SH "SEE ALSO" ! 107: .br ! 108: bscmon(8) \- monitoring and tracing utilities ! 109: .br ! 110: .I ! 111: General Information \- Binary Synchronous Communications, ! 112: IBM document GA27-3004. ! 113: .SH FILES ! 114: /dev/bsc?tr
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.