Q166222: Dlc.sys Sends Frame Reject (FRMR) and Drops Connection
Article: Q166222
Product(s): Microsoft Windows NT
Version(s): winnt:3.51 (all service packs),4.0,4.0 SP1,4.0 SP2,4.0 SP3,4.0 SP4,4.0 SP5,4.0 SP6,4.0
Operating System(s):
Keyword(s): kbnetwork kbAPI kbDLC kbSDKPlatform kbGrpDSNet
Last Modified: 09-AUG-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Windows NT Server versions 3.51 (all service packs), 4.0, 4.0 SP1, 4.0 SP2, 4.0 SP3, 4.0 SP4, 4.0 SP5, 4.0 SP6, 4.0 SP6a
- Microsoft Windows NT Workstation versions 3.51 (all service packs), 4.0, 4.0 SP1, 4.0 SP2, 4.0 SP3, 4.0 SP4, 4.0 SP5, 4.0 SP6, 4.0 SP6a
-------------------------------------------------------------------------------
SYMPTOMS
========
On Windows NT, when you run an application that uses Dlc.sys to communicate to a
remote system using DLC/802.2 over Token Ring, Ethernet, or FDDI, Windows NT may
erroneously send a frame reject (FRMR) and drop the connection.
If SNA Server is being used, this will cause an SNA Server connection failure
with the following Windows NT application event log entries:
Event 228: SNA Server
FRMR sent (0x03) = invalid or unsupported command/response received
Event 238: SNA Server
Connection <name> statistics
Event 23, SNA Server
Connection <name> using Link Service <SNADLCx> failed Qualifier = 00AC
When this occurs, all SNA sessions using this connection will be lost.
The following excerpt from a network monitor trace illustrates the reproduction
scenario:
Frame Src MAC Dst MAC Description
1 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x07, N(R) = 0x1A
2 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x08, N(R) = 0x1A
3 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x09, N(R) = 0x1A
4 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x0A, N(R) = 0x1A
5 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x0B, N(R) = 0x1A
6 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x0C, N(R) = 0x1A
7 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x0D, N(R) = 0x1A
8 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x0E, N(R) = 0x1B
POLL
9 HOST SNASRV RR DSAP=0x04 SSAP=0x05 R N(R) = 0x07 FINAL
10 SNASRV HOST I DSAP=0x04 SSAP=0x04 C N(S) = 0x07, N(R) = 0x1B
POLL
11 HOST SNASRV I DSAP=0x04 SSAP=0x04 C N(S) = 0x1B, N(R) = 0x07
12 HOST SNASRV RR DSAP=0x04 SSAP=0x05 R N(R) = 0x08
13 HOST SNASRV RR DSAP=0x04 SSAP=0x05 R N(R) = 0x09
14 SNASRV HOST FRMR DSAP=0x04 SSAP=0x05 R
CAUSE
=====
Windows NT Dlc.sys was incorrectly handling acknowledgements for I-frames when
the t1 send timer has expired on a DLC connection.
In the above trace of LLC frames, SNA Server sends a window of I-frames to the
host from frame 1-8, with the N(S) counter incremented from 0x07-0x0E. The host
then replies with a N(R) of 0x07, causing SNA Server to reset its N(S) counter
and begin resending the I-frames again. However, SNA Server then receives host
acknowledgments for later frames (sending N(R) = 0x08 and 0x09 in frame 12 and
13 above). Because the Windows NT DLC driver detects that the N(S) is now 0x07,
DLC sends a frame reject (FRMR) to the host, causing the connection to drop.
RESOLUTION
==========
It is possible to work around this problem by increasing the DLC t1 timer so
that it will never expire. If SNA Server is being used, the t1 timer can be
increased to a maximum value of 10 within the connection properties dialog or
folder within SNA Server 2.x Admin or SNA Server 3.x Manager.
An update to Dlc.sys is available to correct this problem. The Dlc.sys driver now
keeps track of a new maximum N(S) counter sent value and validates I-frame
acknowledgements based on this value
STATUS
======
Microsoft has confirmed this to be a problem in Windows NT version 3.51
(SP1-SP5) and Windows NT 4.0 (SP1, SP2). This problem was corrected in the
latest Microsoft Windows NT 4.0 U.S. Service Pack. For information on obtaining
the service pack, query on the following word in the Microsoft Knowledge Base
(without the spaces):
S E R V P A C K
Additional query words: 2.0 2.1 2.11 3.0 4.00 3.51 prodnt
======================================================================
Keywords : kbnetwork kbAPI kbDLC kbSDKPlatform kbGrpDSNet
Technology : kbWinNTsearch kbWinNTWsearch kbWinNTW400 kbWinNTW400search kbWinNT351search kbWinNT400search kbWinNTW351search kbWinNTW351 kbWinNTW400sp5 kbWinNTW400sp4 kbWinNTW400sp3 kbWinNTW400sp2 kbWinNTW400sp1 kbWinNTSsearch kbWinNTS400sp6 kbWinNTS400sp5 kbWinNTS400sp4 kbWinNTS400sp3 kbWinNTS400sp2 kbWinNTS400sp1 kbWinNTS400search kbWinNTS400 kbWinNTW400sp6 kbWinNTW400SP6a
Version : winnt:3.51 (all service packs),4.0,4.0 SP1,4.0 SP2,4.0 SP3,4.0 SP4,4.0 SP5,4.0 SP6,4.0 SP6a
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.