HP Network Printer Interface and Timeouts

Article translations Article translations
Article ID: 94084 - View products that this article applies to.
This article was previously published under Q94084
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

On This Page

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:

  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.

Properties

Article ID: 94084 - Last Review: October 14, 2013 - Revision: 3.0
APPLIES TO
  • Microsoft LAN Manager 2.0 Standard Edition
  • Microsoft LAN Manager 2.1 Standard Edition
Keywords: 
kbnosurvey kbarchive KB94084

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com