HP Network Printer Interface and Timeouts

This article was previously published under Q94084
This article has been archived. It is offered "as is" and will no longer be updated.
When using the Hewlett-Packard Network Printer Interface to supportnetwork-attached printers, the HPREDIR software communicates with theprinter over an 802.2 DLC class II session using the LAN Manager COMTOKRdevice driver and ACSLAN.DLL interface. This article describes the variousDLC timers, default settings, and suggested values in order to make theprinter connection more reliable. HP network printer versions A.00.02 andA.00.03 are discussed below.
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 shorttimer tick (tick_one) and long timer tick (tick_two). The length of theseticks are specified in the PROTOCOL.INI file (see below) in 40 millisecondincrements.

The actual length of each timer (T1, T2, Ti) is selected with parametersprovided when the DLC_OPEN_SAP, DLC_OPEN_STATION, or DLC_MODIFY command isissued. In these commands, the timer value is selected with a numberbetween 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 numbermultiplied 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 numberminus 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 anacknowledgment 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 stationreceives a response frame with the final bit set. If the T1 expires, thelink station sends an S-frame with the poll bit set in order to query thestatus of the remote link station. The link station then restarts T1. Ifthere is no recovery after the specified number of retries, the linkstation assumes that the link is inoperative and disconnects the link.

The duration of T1 must take into account any delays introduced by thesource routing bridges. The suggested default value for T1 is 1 second.

The link station uses the acknowledgment timer (T2) to delay the sending ofan acknowledgment for a received I-frame. The T2 timer is started when alink station receives an I-frame. The T2 timer is reset when a link stationsends 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 acknowledgmentbefore its response timer expires. The suggested default value for T2 is100 milliseconds.

The inactivity timer is used to detect an inoperative condition in theremote link station or in the transmission medium. If a station does notreceive any S- or I-frames before its Ti expires, it must query the statusof the remote link station with an S-frame with the poll bit set. If itdoes not get a response after specified number of retries, it disconnectsthe link. The suggested value for Ti is 30 seconds.


Given this, here are the values used by HPREDIR (versions A.00.02 andA.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            07DLC_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 andrecommendations:

  1. 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.
  2. 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.
2.00 2.10

Article ID: 94084 - Last Review: 10/14/2013 18:06:13 - Revision: 3.0

  • Microsoft LAN Manager 2.0 Standard Edition
  • Microsoft LAN Manager 2.1 Standard Edition
  • kbnosurvey kbarchive KB94084