MORE INFORMATION
The DLC class II protocol uses three timers:
T1 - Response timer
T2 - Acknowledgment timer
Ti - Inactivity timer
The timer values are specified in timer ticks. Each timer requires a short
timer tick (tick_one) and long timer tick (tick_two). The length of these
ticks are specified in the PROTOCOL.INI file (see below) in 40 millisecond
increments.
The actual length of each timer (T1, T2, Ti) is selected with parameters
provided when the DLC_OPEN_SAP, DLC_OPEN_STATION, or DLC_MODIFY command is
issued. In these commands, the timer value is selected with a number
between 1 and 10. If the number is between 1 and 5, the short timer tick
(tick_one) is used. The timer value will be equal to the selected number
multiplied by the short timer tick value:
timer value = selected number * short tick value * 40ms
If the selected number is between 6 and 10, the long timer tick (tick_two)
is used. In this case the timer value will be equal to the selected number
minus 5 multiplied by the long timer tick value.
timer value = (selected number - 5) * long tick value * 40ms
The response timer (T1) is used to detect a failure to receive an
acknowledgment or a response from the remote link station.
The link station starts T1 when it transmits either an I- or S-frame
(RR/RNR/REJ) with the poll bit set. The T1 will be reset when the station
receives a response frame with the final bit set. If the T1 expires, the
link station sends an S-frame with the poll bit set in order to query the
status of the remote link station. The link station then restarts T1. If
there is no recovery after the specified number of retries, the link
station assumes that the link is inoperative and disconnects the link.
The duration of T1 must take into account any delays introduced by the
source routing bridges. The suggested default value for T1 is 1 second.
The link station uses the acknowledgment timer (T2) to delay the sending of
an acknowledgment for a received I-frame. The T2 timer is started when a
link station receives an I-frame. The T2 timer is reset when a link station
sends an acknowledgment in an I-frame or in an S-frame. If the T2 expires,
the link station must send an acknowledgment as soon as possible.
The value of T2 must be less than the value of T1 of the remote station.
This ensures that the remote link station will receive the acknowledgment
before its response timer expires. The suggested default value for T2 is
100 milliseconds.
The inactivity timer is used to detect an inoperative condition in the
remote link station or in the transmission medium. If a station does not
receive any S- or I-frames before its Ti expires, it must query the status
of the remote link station with an S-frame with the poll bit set. If it
does not get a response after specified number of retries, it disconnects
the link. The suggested value for Ti is 30 seconds.
Recommendations
Given this, here are the values used by HPREDIR (versions A.00.02 and
A.00.03):
A.00.02 A.00.03
------- -------
DLC_OPEN_SAP
timer_t1 05 (same)
timer_t2 02 .
timer_ti 03 .
maxout 04 .
maxin 04 .
maxincr 01 .
maxretrycnt 1E .
sap_value C4 .
options_priority 04 .
sap_station_count 06 07
DLC_OPEN_STATION
timer_t1 01 05
timer_t2 01 02
timer_ti 01 03
maxout 04 (same)
maxin 04 .
maxoutincr 01 .
maxretrycnt 0A .
rsap_value B4 .
max_i_field 0104 .
accesspriority 00 .
Note the following settings for the COMTOKR driver in PROTOCOL.INI.
However, because HPREDIR explicitly sets the maxretrycnt to 0A (10),
COMTOKR's dlcretries entry is ignored.
Min Max Default
--- --- -------
t1_tick_one 1 255 5
t2_tick_one 1 255 1
ti_tick_one 1 255 25
dlcretries 1 65000 30
These default settings yield the following timeout periods and
recommendations:
- If HPREDIR version A.00.02 is being used:
t1 = 1 * 5 * 40ms = 200ms
Note: Suggested value is 1 second (though this should be adjusted if
bridges are being used). To get the suggested value, t1_tick_one should
be set to 25.
t2 = 1 * 1 * 40ms = 40ms
Note: Suggested value is 100ms. To get the suggested value, t2_tick_one
should be set to 3.
ti = 1 * 25 * 40ms = 1000ms
Note: Suggested value is 30 seconds. To get this value, ti_tick_one
should be set to 255 (maximum). this will only provide a 10 second
inactivity timeout. The only way to increase this is to use HPREDIR
version A.00.03.
- If HPREDIR version A.00.03 is being used:
t1 = 5 * 5 * 40ms = 1000ms
Note: This matches the suggested value is 1 second, so the default value
for t1_tick_one is recommended. However, if the DLC traffic is flowing
over a bridge, this value should be increased.
t2 = 2 * 1 * 40ms = 80ms
Note: This is close to the suggested value of 100ms. If t2_tick_one is
set to 2, this will lead to a 160ms timeout period.
ti = 3 * 25 * 40ms = 3000ms
Note: Suggested value is 30 seconds. To get this value, ti_tick_one
should be set to 250.