Microsoft KB Archive/94084

= HP Network Printer Interface and Timeouts =

Article ID: 94084

Article Last Modified on 9/30/2003

-

APPLIES TO


 * Microsoft LAN Manager 2.0 Standard Edition
 * Microsoft LAN Manager 2.1 Standard Edition

-



This article was previously published under Q94084



SUMMARY
When using the Hewlett-Packard Network Printer Interface to support network-attached printers, the HPREDIR software communicates with the printer over an 802.2 DLC class II session using the LAN Manager COMTOKR device driver and ACSLAN.DLL interface. This article describes the various DLC timers, default settings, and suggested values in order to make the printer connection more reliable. HP network printer versions A.00.02 and A.00.03 are discussed below.



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. <pre class="fixed_text">     ti = 3 * 25 * 40ms = 3000ms Note: Suggested value is 30 seconds. To get this value, ti_tick_one should be set to 250. </li></ol>

Additional query words: 2.00 2.10

Keywords: KB94084

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.