gtps2m30 | ACF/SNA Data Communications Reference |
In consideration of the following facts:
TPF must take steps to guard against these occurrences and recover from them should the condition occur.
The VR sequence number problem is addressed by having TPF record 2 sets of VR sequence numbers. 1 is the VR sequence numbers that are being assigned by TPF outbound. The assigned sequence numbers are updated by the SNA output routine after the message is taken off the VR queue and is ready for transmission. The second is a recording of the VR sequence numbers at interrupt time (CE, DE) that the NCP has actually received. Following a software IPL, TPF sends out dummy messages that flow on the VR starting from the last 1 that we know NCP has received up to the 1 that TPF last assigned. The number of these dummy messages will be the largest number TPF can send in 1 I/O operation.
The problem of VR pacing is addressed by TPF setting VRPRS received during processing of the read interrupt. TPF uses existing logic that parses the PIUs to record the first 64 bytes in the in-core trace table to remember that a VRPRS was received. This closes the window where TPF could lose track of whether a VRPRS was received.
On output, TPF sets VRPRQ sent and resets the indicator in the write interrupt routine that records VR sequence numbers sent. This indicator is checked following a software IPL and if on, the window size is adjusted to indicate that a full window remains and that a VRPRQ should be set on the first PIU of the window.
If a VRPRQ was received but a VRPRS not sent by TPF, it is handled in a similar fashion and TPF sends out a VRPRS during restart. This is placed on the top of the VR queue and sent out as soon as TPF resumes communication with the NCP.