Microsoft KB Archive/170777

= INFO: Interpreting 802.2 DLC Outage Code from SNA Server Level 2 Trace =

Article ID: 170777

Article Last Modified on 3/8/2005

-

APPLIES TO


 * Microsoft SNA Server 2.0
 * Microsoft SNA Server 2.1
 * Microsoft SNA Server 3.0
 * Microsoft SNA Server 2.11 Service Pack 1
 * Microsoft SNA Server 2.11 Service Pack 2
 * Microsoft SNA Server 3.0 Service Pack 4
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 3.0 Service Pack 2
 * Microsoft SNA Server 3.0 Service Pack 3
 * Microsoft SNA Server 4.0
 * Microsoft SNA Server 4.0 Service Pack 1

-



This article was previously published under Q170777



SUMMARY
The SNA Server 802.2 DLC link service communicates over the Windows NT DLC transport protocol to support DLC connections over Token Ring, Ethernet, or FDDI. If a 802.2 DLC connection is lost for any reason, the Windows NT DLC interface returns a DLC status code in a DLC READ response to the SNA Server 802.2 link service. This status code is interpreted by the link service and mapped to the actual "qualifier" that is reported in the Windows NT application event log as follows:

Source: SNA Server

Event ID: 23

Description:

Connection using Link Service failed.

Qualifier = 00xx

The qualifier codes are documented in the SNA Server Reference Guide. For 802.2 links, the following qualifiers can occur:   29 = Remote node not active AE = DISC/DM received AF = Link lost AB = SABME received while connection active AC = FRMR (frame reject) sent AD = FRMR (frame reject) received If a FRMR is causing the connection failure, SNA Server will indicate additional information about the FRMR in one of the following events:   Event 227  FRMR received (Windows NT DLC received a FRMR from the remote system)

Event 228 FRMR sent (Windows NT DLC sent a FRMR to the remote system) These events include a "FRMR code" returned by DLC to indicate the cause of the FRMR.

This article describes how to interpret the DLC status code returned by the DLC READ response, which can be captured within an SNA Server 802.2 link service "Level 2" trace.

NOTE: It is not necessary to decode the READ response from a Level 2 trace to determine the cause of a failure, since the Event 23, 227, and 228 events already indicate the relevant information.



MORE INFORMATION
The Windows NT DLC programming interface (DLCAPI.DLL), supports the CCB2 DLC interface, as documented by the IBM Local Area Network Technical Reference (IBM document #SC30-3383). This interface is used by the SNA Server 802.2 link service to support SNA communication over Token Ring, Ethernet, and FDDI.

After an 802.2 DLC connection is established, the DLC interface indicates a connection failure to SNA Server by responding to a DLC READ command and indicating a DLC Status code. Here is the format of the READ structure returned by DLC:   CCB2 Structure ==============

Parameter      Byte Len  Type  Description

CCB_ADAPTER       1      DB    Adapter number (0 or 1) CCB_COMMAND       1      DB    Command field (31 = READ) CCB_RETCODE       1      DB    Completion code CCB_WORK          1      DB    Adapter support software work area CCB_POINTER       4      DW    Queue pointer CCB_CMPL_FLAG     4      DD    Command completion flag CCB_PARM_OFFSET   2      DW    Offset to CCB2 parameter table (Pointer to READ Parameter Table below)

[ other parameters ]

CCB2 Parameter Table for READ =============================

Parameter      Byte Len  Type  Description

STATION_ID        2      DW   SAP station ID   OPTION_INDICATOR   1      DB   READ option indicator EVENT_SET         1      DB   Set of events for notification EVENT             1      DB   Posting event (*) CRITICAL_SUBSET   1      DB   Critical event subset identifier (*) 2     DB   (**) NOTIFICATION_FLAG 4      DD   Event user notification flag (*) STATION_ID        2      DW   Station ID   DLC_STATUS_CODE    2      DW   DLC status code FRMR_DATA         5      DB   Five byte FRMR "reason code" ACCESS_PRIORITY   1      DB   New access priority if status bit 5 is "on". REMOTE_NODE       6      DB   6-byte remote node address REMOTE_SAP        1      DB   Remote SAP address 1     DB      USER_STAT_VALUE    2      DW   User value as defined in DLC.OPEN.SAP command

(*) Indicates a returned value (**) In Windows NT DLC, there are 2 unused bytes resulting from the use of a non-packed CCB2 structure Using the SNA Server Trace program (SNATRACE), it is possible to capture all DLC calls made by the 802.2 link service to the Windows NT DLC interface by enabling "Level 2" message tracing. If a DLC connection failure occurs, a DLC READ command will complete, and may appear as follows:   DLC   -- DLC  READ               OK   DLC    DLC API control block at address 7c5e0 DLC   00310000 00000000 00000000 FCC50700 DLC   D4000000 00000000 00002000 DLC DLC   0004010C 08000000 01000000 01040040 DLC   00000000 00004201 02998122 04041FC0 DLC  -- The first two lines correspond to the CCB2 structure passed in the DLC API control block, while the last two lines correspond to the CCB parameter table for the READ command. Using the structure definition above, the parameter table can be interpreted as follows:   0004 = station ID    01   = option indicator 0C  = event set 08  = event 00  = critical subset 0000 = padding (unused) 01000000 = notification flag 0104 = station ID (non-Intel format = 0401) 0040 = DLC status code (non-Intel format = 4000) 00000000 00 = FRMR data 00  = access priority 42 01 02 99 81 22 04 = remote node address 04  = remote SAP 1F  = reserved C0  = user status value Note that the DLC status code (DW = two byte "word" value) is stored in memory in Intel format, and needs to be "flipped" to show the real value as interpreted by the 802.2 link service.

Using the DLC status code definitions below (as documented in Appendix B of the IBM LAN Technical Reference), a status code of 0x4000 is interpreted as follows:   0x4000 (hex) = 0100 0000 0000 0000 (binary)

Bit 14 on = DM or DISC received

DLC Status Codes =================  BIT    Function 15    Link lost 14    DM or DISC received 13    FRMR received  (See 5-byte FRMR data "reason code") 12    FRMR sent (See 5-byte FRMR data "reason code") 11    SABME received for an open link station 10    SABME received, link station opened 9     Remote station has entered "local busy" condition 8     Remote station has left a "local busy" condition 7     Ti has expired 6     DLC counter overflow (DLC.STATISTICS should be called) 5     Access priority lowered 4-1   reserved 0     Local station has entered a "local busy" condition

Keywords: kbinfo KB170777

-

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

© Microsoft Corporation. All rights reserved.