# NDIS Implementation Information
for IBM LAN Systems
IBM OS/2 LAN Technical Reference Extensions

## Table of Contents

- About This Publication

- 1.0 NDIS Overview

- 2.0 LAN Adapter and Protocol Support Overview

- 3.0 LAN Adapters Supported
  - 3.1 ISA Adapters (AT* Bus)
  - 3.2 MCA Adapters (Micro Channel*)

- 4.0 Deliverables

- 5.0 Programming Information - NETBIOS API
  - 5.1 No-Wait Command and Post Routines
  - 5.2 Dynamic Link Interface
  - 5.3 Device Driver Interface
  - 5.4 Memory Restrictions
  - 5.5 Resource Information
  - 5.6 NCB Reserve Field Change
  - 5.7 NCB.STATUS Command Extension
  - 5.8 Piggybacked Acknowledgement Behavior

- 6.0 Programming Information - IEEE 802.2 API
  - 6.1 Dynamic Link Interface
  - 6.2 Device Driver Interface
  - 6.3 Memory Restriction

- 7.0 Differences and Restrictions

- 8.0 Message Logging Facility
- 9.0 Configuring the LAN Virtual Device Driver
  - 9.1 NETBIOS Considerations
  - 9.2 IEEE 802.2 Considerations

- 10.0 Using the LTSVCFG Utility Program
  - 10.1 Syntax
  - 10.2 Parameters
  - 10.3 Examples
  - 10.4 Restrictions

- 11.0 Operating System/2 Trace Facility
  - 11.1 Minor Codes for IEEE 802.2 Traces
  - 11.2 PROTOCOL.INI TRACE Parameter- IEEE 802.2
  - 11.3 Minor Codes for NETBIOS Traces
  - 11.4 PROTOCOL.INI OS2TRACEMASK Parameter- NETBIOS
  - 11.5 Tracing for OS/2 2.0 Virtual DOS LAN Support
    - 11.5.1 Minor Codes for OS/2 2.0 Virtual DOS Lan Support
- Notices
  - Copyrights
  - Disclaimers
  - Trademarks

[next][parent][TOC]

## About This Publication

This publication explains the changes made to the LAN Adapter and Protocol Support (LAPS) shipped with IBM Extended Services* for OS/2 and IBM OS/2 LAN Server Version 2.0 and later, and NTS/2 (Network Transport Services/2) Version 1.0. The information in this publication can also be obtained from IBM in the Supplement to the IBM LAN Technical Reference.

Related Publications

- IBM Network Transport Services/2 LAN Adapter and Protocol Support Confguration Guide
- IBM Extended Services for OS/2 Network Administration Guide
- IBM Extended Services for OS/2 Communications Manager Configuration Guide
- IBM Extended Services for OS/2 LAN Adapter and Protocol Support Configuration Guide
- IBM Extended Services for OS/2 Programming Services and Advanced Problem Determination for Communications
- IBM OS/2 LAN Server Version 3.0 Network Administrator Reference Volume 1: Planning and Installation
- IBM OS/2 LAN Server Version 3.0 Network Administrator Reference Volume 2: Performance Tuning Guide
- IBM OS/2 LAN Server Version 3.0 Application Programmer's Reference
- IBM OS/2 Server Version 2.0 Network Administrator Reference Volume 1: Planning and Installation
- IBM OS/2 LAN Server Version 2.0 Network Administrator Reference Volume 2: Performance Tuning
- IBM OS/2 LAN Server Version 2.0 Network Administrator Reference Supplement for OS/2 2.0
- IBM Local Area Network Technical Reference
- TCP/IP for OS/2: LAPS Introduction and Configuration Guide
- 3Com/Microsoft LAN Manager Network Driver Interface Specification Version 2.0.1 Final
- NDIS Implementation Information for IBM LAN Systems, Extended NIF Format
- NDIS Implementation Information for IBM LAN Systems, NDIS Extensions
- NDIS Implementation Information for IBM LAN Systems, OS/2 Messaging and National Language Support
- NDIS Implementation Information for IBM LAN Systems, IBM OS/2 LAN Technical Reference Extensions

[previous][next][parent][TOC]

## 1.0 NDIS Overview

The Network Driver Interface Specification (NDIS) developed jointly by 3Com** and Microsoft** is a standardized interface for network adapter drivers and protocol drivers. NDIS separates protocol handling from hardware manipulation by defining functions that protocol drivers and network adapter drivers must provide to each other. It defines a configuration and binding process, which is handled by the protocol manager. NDIS has become an accepted industry standard, providing a common, open interface that enables different manufacturers of network adapters and LAN software to communicate. Figure 1 illustrates the major software components in the NDIS environment.

A network adapter driver provides the communication between a network adapter and a protocol. The main function of the network adapter driver is to support network packet reception and transmission. A protocol driver provides the communication between an application and a network adapter driver. The main function of the protocol manager is to read configuration information from the configuration file, PROTOCOL.INI, and make it available to the network adapter drivers and protocol drivers. It also coordinates connections between protocol drivers and network adapter drivers. Before the protocol driver and the network adapter driver can communicate, they must be bound together (entry points are exchanged). NETBIND initiates the binding process based on information in PROTOCOL.INI.

[previous][next][parent][TOC]

## 2.0 LAN Adapter and Protocol Support Overview

LAN Adapter and Protocol Support is network communication software that consists of NDIS-compliant protocol drivers, NDIS-compliant network adapter drivers, API support software, and configuration and installation software for these drivers. LAN Adapter and Protocol Support is the network communication software necessary to support the LAN connectivity for OS/2 LAN products, and is a subsytem in IBM Extended Services for OS/2, IBM OS/2 LAN Server Version 2.0, and IBM LAN Enabler Version 2.0. A version of LAN Adapter and Protocol Support that contains only a TCP/IP protocol stack is included in TCP/IP for OS/2 1.2.1. A later release of LAN Adapter and Protocol Support is included in LAN Server 3.0 and NTS/2.

IEEE 802.2 and NETBIOS are the protocol drivers available with LAN Adapter and Protocol Support. A device driver interface API and a dynamic link interface API exist for both protocols. The IEEE 802.2 and NETBIOS APIs and the IEEE 802.2 and NETBIOS protocols are described in detail in the IBM Local Area Network Technical Reference.

NDIS allows multiple protocols to bind to the same network adapter driver. Therefore, both the NETBIOS and 802.2 protocol drivers can bind to the same network adapter driver. Figure 2 shows the relationship between LAN adapters, network adapter drivers, protocol drivers, and applications.

In addition to the OS/2 API support, LAN Adapter and Protocol Support provides OS/2 2.0 Virtual LAN Support. This will enable existing DOS NETBIOS and IEEE 802.2 applications running in the OS/2 2.0 Virtual DOS Machine environment to share an adapter with other DOS, OS/2 NETBIOS, and IEEE 802/2 applications running on the same machine.

Configuration parameters for LAN Adapter and Protocol Support network adapter drivers and protocol drivers exist in the file PROTOCOL.INI, which also contain the binding information for each driver. For a detailed explanation of configuration parameters and PROTOCOL.INI see the Extended Services Communications Manager Configuration Guide, or the Extended Services LAN Adapter and Protocol Support Configuration Guide, or the OS/2 LAN Server Network Administrator Reference Volume 2: Performance Tuning. For the LAN Server 3.0 and NTS/2 release of LAN Adapter and Protocol Support, see the LAN Adapter and Protocol Support Configuration Guide for a detailed explanation of configuration parameters and PROTOCOL.INI. The network information file (NIF) supports the user interface in providing network driver information to the PROTOCOL.INI.

[previous][next][parent][TOC]

## 3.0 LAN Adapters Supported

The following network adapters are supported by IBM Extended Services for OS/2, IBM OS/2 LAN Server, and NTS/2. See 4.0, "Deliverables" for the network adapter drivers included with LAN Adapter and Protocol Support.

[previous][next][parent][TOC]

### 3.1 ISA Adapters (AT* Bus)

The network adapters listed below are designed for the Industry Standard Architecture Bus.

- IBM Adapters1
- IBM Token-Ring Network Adapter II
- IBM Token-Ring Network 16/4 Adapter
- IBM Token-Ring Network 16/4 Adapter II
- IBM PC Network Broadband Adapter II
- IBM PC Network Adapter 11 Frequency 2
- IBM PC Network Adapter II Frequency 3
- IBM PC Network Baseband Adapter II
- IBM 3174 Peer Communications Network Using the 3278/79 Emulation Adapter
- OEM Adapters2
- DCA IRMAtrac
- NCR WaveLAN
- SMC EtherCard PLUS
- Ungermann-Bass NIUpc
- Western Digital EtherCard PLUS
- 3Com Etherlink II

Note:
1 Network adapter drivers will be made available for IBM adapters that announce NDIS support after the initial shipment of any IBM product containing LAN Adapter and Protocol Support.
2 IBM is putting in place enablement support for development and test if network adapter drivers produced by network interface card vendors.

[previous][next][parent][TOC]

### 3.2 MCA Adapters (Micro Channel*)

The network adapters listed below are designed for the Micro Channel Architecture Bus.

- IBM Adapters1
- IBM Token-Ring Network Adapter/A
- IBM Token-Ring Network 16/4 Adapter/A
- IBM Token-Ring Network 16/4 Busmaster Server Adapter/A
- IBM Adapter/A for Ethernet Networks
- IBM PC Network Broadband Adapter II/A
- IBM PC Network Adapter II/A Frequency 2
- IBM PC Network Adapter II/A Frequency 3
- IBM PC Network Baseband Adapter II/A
- IBM 3174 Peer Communications Network Using the 3270 Connection
- OEM Adapters2
- DCA IRMAtrac
- NCR WaveLAN
- SMC EtherCard PLUS/A
- Ungemnarm-Bass NIUps/2
- Western Digital EtherCard PLUS/A
- 3Com EtherLink/MC

[previous][next][parent][TOC]

## 4.0 Deliverables

The following files are provided with LAN Adapter and Protocol Support:

File Name | Description
ACSLAN.DLL | IEEE 802.2 dynamic link library (DLL) for dynamic link interface API
ACSNETB.DLL | NETBIOS DLL for dynamic link interface API
ELNKII.NIF | 3Com Etherlink II network adapter driver network information file
ELNKII.OS2 | 3Com Etherlink II network adapter driver
ELNKMC.NIF | 3Com Etherlink/MC network adapter driver network information file
ELNKMC.OS2 | 3Com Etherlink/MC network adapter driver
ETH.MSG | Adapter/A for a Ethernet networks network adapter driver message file
ETHH.MSG | Adapter/A for Ethernet networks network adapter driver message help file
IBMLVL.TXT4 | Version Information
IBMLXCFG.HLP | Presentation Manager (PM) help information used by IBMLXCFG.DLL
IBMLXCFG.DLL | PM user interface for LAN Adapter and Protocol Support configuration (invoked by the Extended Services program and LAN Server
IBMLXRES.DLL | Translatable resource file used by IBMLXCFG.DLL (includes messages and dialog boxes)
IBMNET.NIF | Network adapter driver network information file for PC Network Broadband Adapter II, PC Network Adapter II Frequency 2, PC Network Adapter II Frequency 3, and PC Network Baseband Adapter II
IBMNETA.NIF | Network adapter driver network information file for PC Network Broadband Adapter II/A PC Network Adapter II/A Frequency 2, PC Network Adapter II/A Frequency 3, and PC Network Baseband Adapter II/A
IBMNET.OS2 | Network adapter driver for PC Network Broadband Adapter II, PC Network Adapter II Frequency 2, PC Network Adapter II Frequency 3, and PC Network Baseband Adapter II
IBMNETA.OS2 | Network adapter driver for PC Network Broadband Adapter II/A, PC Network Adapter II/A Frequency 2, PC Network Adapter II/A Frequency 3, and PC Network Baseband Adapter II/A
IBMTOK.NIF | Network adapter driver network information for Token-Ring Network Adapter II, Token Ring Network Adapter 16/4, and Token-Ring Network Adapter II/A, and Token-Ring Network 16/4 Adapter/A
IBMTOK.OS2 | Network adapter driver for Token-Ring Network Adapter II, Token-Ring Network 16/4 Adapter, Token-Ring Network Adapter II/A, and Token-Ring Network 16/4 Adapter/A
IBMTRBM.NIF | Token Ring 16/4 Busmaster Server Adapter/A network adapter driver network information file
IBMTRBM.OS2 | Token Ring 16/4 Busmaster Server Adapter/A network adapter driver
IBMXLN.NIF | Network adapter driver network information file for 3174 Peer Communications Network using the 3278/79 Emulation Adapter and 3174 Peer Communications Network Using the 3270 Connection
IBMXLN.OS2 | Network adapter driver for 3174 Peer Communications Network Using the 3278/79 Emulation Adapter and 3174 Peer Communications Network Using the 3270 Connection
IBM16TR.NIF4 | Network adapter driver network information file for Token Ring Network 16/4 Adapter/II
IBM16TR.OS24 | Network adapter driver for Token Ring Network 16/4 Adapter/II
LAN_1_A.INC3 | IEEE 802.2 API command code and return code definitions
LAN_1_C.H3 | IEEE 802.2 API command code and return code definitions
IRMATR.NIF | DCA IRMAtrac network adapter driver network information file
IRMATR.OS24 | DCA IRMAtrac network adapter driver
LAN_2_A.INC3 | Definitions for reason, status,and error codes, and bit definitions for IEEE 802.2 API
LAN_2_C.H3 | Definitions for reason, status,and error codes, and bit definitions for IEEE 802.2 API
LAN_3_A.INC3 | IEEE 802.2 API CCB2 and CCB3 data declarations
LAN_3_C.H3 | IEEE 802.2 API CCB2 and CCB3 data declarations
LAN_4_A.INC3 | IEEE 802.2 API CCB2 and CCB3 exception data declarations for IEEE 802.2 API
LAN_4_C.H3 | IEEE 802.2 API CCB2 and CCB3 exception data declarations
LAN_6_C.H3 | Entry point declaration for IEEE 802.0 API DLL
LAN_7_C.H3 | Type definitions for data declarations
LANDD.NIF | IEEE 802.2 protocol driver network information file
LANDLLDD.OS2 | IEEE 802.2 device driver
LANDLL.EXE | IEEE 802.2 dynamic link interface API support
LANMSGDL.DLL | LAN Adapter and Protocol Support DLL
LANMSGEX.EXE | LAN Adapter and Protocol Support messaging executable
LANMSGDD.OS2 | LAN Adapter and Protocol Support message device driver
LANPDD.OS2 | Device driver to bridge the gap between the 32-bit model LANVDD and the 16-bit model LAN API
LANVDD.OS2 | Device driver that intercepts the Interrupt 5C issued by the DOS application and maps it to the appropriate OS/2 LAN API
LANVMEM.SYS | Device driver to allocate memory during the OS/2 2.0 VM boot sequence
LAPS.EXE4 | Install and configuration executable
LAPS.ICO4 | Icon for LAN Adapter and Protocol Support
LAPCID.DLL4 | LAN Adapter and Protocol Support CID function DLL
LAPSDISK.EXE4 | Executable to put LAN Adapter and Protocol Support diskette image on code server
LAPSPM.DLL4 | LAN Adapter and Protocol Support PM function DLL
LAPSRSP.EXE4 | Executable to generate CID response files
LAPRES.DLL4 | LAN Adapter and Protocol Support PM resource file
LTSVCFG.COM | OS/2 2.0 DOS LAN Support NETBIOS and 802.2 configuration tool
LT0.MSG | IEEE 802.2, NETBIOS, and NETBEUI message file
LT0H.MSG | IEEE 802.2, NETBIOS, and NETBEUI message help file
LT1.MSG | PC Network adapter driver message file
LT1H.MSG | PC Network adapter driver message help file
LT2.MSG | Token-Ring Network adapter driver message file
LT2H.MSG | Token-Ring Network adapter driver message help file
LT3.MSG | 3174 Peer Communications Network adapter driver message file
LT3H.MSG | 3174 Peer Communications Network adapter driver message help file
LT4.MSG | Token-Ring Network 16/4 Busmaster Server Adapter/A network adapter driver message file
LT4H.MSG | Token-Ring Network 16/4 Busmaster Server Adapter/A network adapter driver message help file
LT8.MSG4 | NetWare Requester Support message file
LT8H.MSG4 | NetWare Requester Support message help file
MAC.MSG | Western Digitial EtherCard network adapter driver message file
MACETH.INF | Adapter/A for Ethernet Networks network adapter driver network information file
MACETH.OS2 | Adapter/A for Ethernet Networks network adapter driver
MACETH2.OS2 | Adapter/A for Ethernet Networks networks adapter driver (used if a second Adapter /A for EtherCard Networks adapter is installed)
MACH.MSG | Western Digital EtherCard PLUS and PLUS/A network adapter message help file
MACWDAT.NIF | Western Digital EtherCard PLUS network adapter driver message help file
MACWDMC.INF | Western Digital EtherCard PLUS/A network adapter driver network information file
MACWD.OS2 | Western Digital EtherCard PLUS and PLUS/A network adapter driver
MACWD2.OS2 | Western Digital EtherCard PLUS and PLUS/A network adapter driver (used if a second Western Digital EtherCard PLUS or PLUS/A adapter is installed)
MONT400.BIN | Downloadable microcode for Token-Ring 16/4 Busmaster Server Adapter/A
NETB_1_A.INC3 | Type definitions for data declarations
NET_1_C.H3 | NETBIOS command code and return code definitions
NETB_2_A.INC3 | NETBIOS command code and return code definitions
NETB_2_C.H3 | NETBIOS NCB data declarations
NETB_4_C.H3 | Entry point definition for NETBIOS DLL
NETBIND.EXE | Executable code that initiates the process of binding a protocol driver to a network adapter driver
NETBIOS.OS2 | NETBIOS device driver for API support
NETBEUI.OS2 | NETBIOS protocol driver
NETBEUI.NIF | NETBIOS protocol driver network information file
PRO.MSG | Protocol Manager message file
NWFIXUP.EXE4 | Utility for NetWare Requester Support
ODI2NDI.NIF4 | Network information file for NetWare Requester Support for OS/2 protocol driver
ODI2NDI.OS24 | NetWare Requester Support for OS/2 protocol driver
PROH.MSG | Protocol Manager message help file
PROTMAN.OS2 | NDIS Protocol Manager driver
PROTOCOL.INI | Sample PROTOCOL.INI configuration file
PROTOCOL.SMP4 | Sample PROTOCOL.INI configuration file
PKUNZIP2.EXE4 | File decompression utility
README.NTS4 | Readme file
SETUPVDD.EXE3 | OS/2 2.0 Virtual DOS LAN Support installation utility
SYSLEVEL.TRP | LAN Adapter and Protocol Support syslevel file
THINLAPS.EXE4 | Utility to install thin transport client
UBI.MSG | Ungermann-Bass NIUpc and NIUps/2 network adapter driver message file
UBIH.MSG | Ungermann-Bass NIUpc and NIUps/2 network adapter driver message help file
UBNEI.OS2 | Ungermann-Bass NIUpc and NIUps/2 network adapter driver
UBNEIPC.NIF | Ungermann-Bass NIUpc network adapter driver network information file
UBNEIPS.NIF | Ungermann-Bass NIUps network adapter driver network information file
WRTRAM.BIN | Downloadable microcode for Token-ring 16/4 Busmaster Server Adapter/A
XIHELP.HLP4 | PM help text files for LAN Adapter and Protocol Support
XI0.MSG4 | LAN Adapter and Protocol Support message file
XI0H.MSG4 | LAN Adapter and Protocol Support message help file

Note:
3 Not part of NTS/2 or LAN Server 3.0.
4 New for NTS/2 nad LAN Server 3.0.

[previous][next][parent][TOC]

## 5.0 Programming Information - NETBIOS API

The release of NETBIOS included in LAN Adapter and Protocol Support is NETBIOS 4.0. NETBIOS 4.0 is NDIS-based. This section documents the changes to the API as a result of the new release. This section also contains answers to user questions about the OS/2 NETBIOS API that have not yet been included in the IBM Local Area Network Technical Reference.

[previous][next][parent][TOC]

### 5.1 No-Wait Command and Post Routines

When using a no-wait command at either the dynamic link or device driver interface, the user commonly has a post routine that gets control upon command completion. When the post routine is called, NETBIOS is running on interrupt. Therefore, the post routine should be as short in duration as possible. It is valid to issue NCB commands inside the post routine as long as the command is a no-wait command.

For the dynamic link interface, the NETBIOS stack used by the thread that calls the user's post routine is 4KB. Before calling the post routine, NETBIOS pushes the NCB pointer ES: BX on the stack. Upon entry, to the user's post routine, ES and BX are at the following location in the stack frame.

ES | stack pointer + 8
BX | stack pointer + 6
Undefined | stack pointer + 4
Return address | stack pointer + 2
Return address | stack pointer + 0
Use a C calling convention, not Pascal, to access the NCB pointer on the stack.

The priority of the NETBIOS dynamic link interface thread that calls the user's post routine is set to priority class fixed high and priority delta zero. Some dynamic link interface applications have experienced performance degradation when setting threads to a priority higher than the NETBIOS post routine thread.

[previous][next][parent][TOC]

### 5.2 Dynamic Link Interface

The ACS.LIB library shipped with IBM OS/2 Extended Services contains the dynamic link definition for the NETBIOS DLL user. ACS.LIB is not included in IBM OS/2 LAN Server Version 2.0. However, the user can create a .DEF file to create the same definition without linking to ACS.LIB. The .DEF file should contain the following statements:

    IMPORTS

        ACSNETB.NETBIOS

For the dynamic link interface NETBIOS locks the data buffers (NCB_BUFFER) associated with the NCB. The overhead associated with operating system locks and unlocks may be minimized if the application uses the same segment or segments for all of its data buffers.

[previous][next][parent][TOC]

### 5.3 Device Driver Interface

In an application program using the NETBIOS OS/2 device driver interface, the register pair ES: BX contains a pointer to the NCB issued. This pointer must be a GDT when using the device driver interface.

[previous][next][parent][TOC]

### 5.4 Memory Restrictions

OS/2 2.0 introduces a paged memory model. However, NETBIOS 4.0 is a 16-bit device driver. Any memory passed to NETBIOS in the form of NCBs or buffers must be contiguous in physical memory. The IBM C Set/2 compiler provides the /Gt-compiler option, which defines 16-bit versions of the `malloc` family of functions. Use of this option guarantees that memory allocated and freed will not cross a 64KB boundary. Refer to the IBM C Set/2 User's Guide for more information on compiler options. OS/2 2.0 ensures that a 16-bit application's memory is physically contiguous.

The NETBIOS API device driver uses a single 64K data area for allocation of resources. To determine the resources to allocate for NETBIOS APIs, you need to know the RAM usage of the NETBIOS API driver to stay within the 64K limitation. The sum of the following must be less than or equal to 64KB:

- 11200 bytes overhead
- 95 bytes for each NCB available to the NETBIOS API
- 15x(NCBs available to the NETBIOS API - 15)

  (use 0 if less that 0)

- 990 for each adapter configured for NETBIOS

    Example 1

    From IBMLAN.INI

    [networks]
    ; This information is read by the redirector at device initialization time.
    net1=netbeui$,0,LM10, 32, 50, 14

    From IBMLAN.INI
    [NETBEUI_nif]
    DriverName = netbeui$
    Bindings = IBMTOK_nif
    NCBS = 95

NCBS available to NETBIOS API's is 45. 50 are configured for adapter 0 on the netl line in IBMLAN.INI. 95 are configured for adapter 0 in PROTOCOL.INI.

    Example 2

    From IBMLAN.INI

    [networks]
    ;This information is read by the redirector at device initialization time.
    net1=netbeui$,0,LM10, 32, 50, 14

    From IBMLAN.INI
    [NETBEUI_nif]
    DriverName = netbeui$
    Bindings = IBMTOK_nif, ELNKMC_nif
    NCBS = 95

NCBS available to NETBIOS API's is 135. 50 are configured for adapter 0 on the netl line in IBMLAN.INI. 95 are configured for adapter 0, and 95 are configured for adapter 1 in PROTOCOL.INI.

[previous][next][parent][TOC]

### 5.5 Resource Information

NETBIOS uses the message logging facility of LAN Adapter and Protocol Support at IPL time. Following is the NETBIOS information extracted from a log:

        IBM 0S/2 NETBIOS 4.0

        Adapter 0 has 32 NCBs, 32 sessions, and 32 names available to NETBIOS applications.

        NETBI0S 4.0 is loaded and operational.

NETBIOS will log the sessions, commands, and names available to the NETBIOS API user for each adapter configured. In this example, only adapter 0 is configured. NETBIOS 4.0 will Support a maximum of four adapters. A maximum of 251 application programs (processes) can use NETBIOS 4.0 simultaneously.

[previous][next][parent][TOC]

### 5.6 NCB Reserve Field Change

The only returned field defined for the NCB_RESERVE area of the NCB is offset 6. It will contain the last Adapter Check reason code. Refer to the IBM Local Area Network Technical Reference for information on Adapter Check reason codes.

[previous][next][parent][TOC]

### 5.7 NCB.STATUS Command Extension

The NCB.STATUS command has been extended to return the locally administered address on local status. Offset 36 of the status buffer is now defined for OS/2 for local status only. If the NCB is passed to the dynamic link interface, offset 36 is an LDT; if the NCB is passed to the device driver interface, offset 36 is a GDT. The LDT or GDT is the address of the extended status information. The locally administered address is returned in the extended status information at offset 40 through 45. If a locally administered address is not configured, the adapter's encoded address is returned. Other areas defined in the extended status information are:

- Bytes 2 and 3 contain the latest NDIS Open Adapter return code
- Bytes 4 and 5 contain the latest NDIS Ring Status status code
- Bytes 6 and 7 contain the latest NDIS Adapter Check reason code.

The NCB.STATUS command originally reported only that the adapter or type was Token-Ring or PC Network. The command has been extended to support additional adapter types as defined below:

Adapter Type | Function Number
Token-Ring | X'FF'
PC Network | X'FE'
Ethernet | X'FD'
IBM FDDI | X'FC'
3174 Peer | X'FB'
Reserved | X'FA'
Reserved | X'F9'

[previous][next][parent][TOC]

### 5.8 Piggybacked Acknowledgement Behavior

NETBIOS 4.0 will not attempt to piggyback acknowledgements if the data is received on an NCB.RECEIVE; a DATA_ACK will be sent upon receipt of the data. However, if an NCB.RECEIVE.ANY is used to receive data, the protocol will attempt to piggyback the acknowledgment. Piggybacked acknowledgment is only applicable for the NETBIOS device driver interface. Piggybacked acknowledgement is configurable. However, the configuration parameter sets piggybacking for the adapter, not the application. Therefore, use caution when changing this parameter. It will affect the performance of other NETBIOS applications. See the Extended Services Communications Manager Configuration Guide, the Extended Services LAN Adapter and Protocol Support Configuration Guide, or the OS/2 LAN Server Network Administrator Reference Volume 2: Performance Tuning for more information on NETBIOS configuration parameters.

[previous][next][parent][TOC]

## 6.0 Programming Information - IEEE 802.2 API

The IEEE 802.2 protocol stack included in LAN Adapter and Protocol Support is NDIS-based. This section documents the changes to the API as a result of the new release. This section also contains answers to user questions about the OS/2 IEEE 802.2 API that have not yet been included in the IBM Local Area Network Technical Reference.

[previous][next][parent][TOC]

### 6.1 Dynamic Link Interface

The ACS.LIB library shipped with IBM OS/2 Extended Services contains the dynamic link definition for the IEEE 802.2 DLL user. ACS.LIB is not included in IBM OS/2 LAN Server Version 2.0. However the user can create a .DEF file to create the same definition without linking to ACS.LIB. The .DEF file should contain the following statements:

    IMPORTS

        ACSLAN. ACSLAN

For the dynamic link interface IEEE 802.2 locks the data buffers associated with the CCB. The overhead associated with operating system locks and unlocks may be minimized if the application uses the same segment or segments for all of its data buffers.

[previous][next][parent][TOC]

### 6.2 Device Driver Interface

In an application program using the IEEE 802.2 OS/2 device driver interface, the register pair ES: BX contains a pointer to the CCB issued. This pointer must be a GDT when using the device driver interface.

[previous][next][parent][TOC]

### 6.3 Memory Restriction

OS/2 2.0 introduces a paged memory model. However, the IEEE 802.2 protocol stack is a 16-bit device driver. Any memory passed to the IEEE 802.2 protocol stack in the form of CCBs or buffers must be contiguous in physical memory. The IBM C Set/2 compiler provides the /Gt compiler option, which defines 16-bit versions of the malloc family of functions. Use of this option guarantees that memory allocated and freed will not cross a 64KB boundary. Refer to the IBM C Set/2 User's Guide for more information on compiler options. OS/2 2.0 ensures that a 16-bit application's memory is physically contiguous.

[previous][next][parent][TOC]

## 7.0 Differences and Restrictions

The following is a list of differences between the version of LAN Adapter and Protocol Support included in IBM Extended Services for OS/2 and IBM OS/2 LAN Server Version 2.0 and the network communication software included in IBM OS/2 Extended Edition 1.3 and IBM LAN Server 1.2. Many of the changes are a result of moving to NDIS-compliant network adapter drivers and protocol drivers. Some, such as support of four network adapters, are enhancements. The restrictions resulting from these changes are related to NDIS requirements and OS/2 2.0.

- A protocol driver using the NDIS interface now implements all the LLC function. The LLC function is handled in the protocol driver, not on the adapter. For the Token-Ring Network adapters, the LLC function is now handled in the protocol driver.
- The LAN protocol drivers will now bind to a maximum of four network adapter drivers. Therefore, adapter numbers 0 through 3 are valid parameters for the NETBIOS API and the IEEE 802.2 CCB2 and CCB3 APIs.
- The NDIS interface now restricts the number of chained transmit buffers to 8. Therefore, if an attempt is made to transmit a frame that is contained in more than 8 buffers, the CCB2 and CCB3 TRANSMlT command will be returned with a return code of X'23'. This return code will also be reported if the internal supply of NDIS frame descriptors is exhausted.
- The NDIS interface now restricts the number of chained receive buffers to 8. Therefore, if an attempt is made to receive a frame that is larger than 8 SAP buffers, the CCB2 and CCB3 RECEIVE command will be resumed with a return code of X'18'
- IBM Token-Ring and PC Network network adapter drivers now implement NDIS 2.02 to allow the protocol stack to access adapter-specific information. For network adapter drivers that do not support NDIS 2.02, the following CCB2 and CCB3 return fields are undefined:

  - DIR.INITIALIZE
  - BRING_UPS
  - SRAM_ADDRESS
  - VIRTUAL_SRAM_ADDRESS
  - VIRTUAL_MMIO_ADDRESS

  - DIR.OPEN.ADAPTER
  - OPEN_ERROR_CODE
  - BRING_UPS

  - DIR.STATUS
  - MICROCODE_LEVEL
  - ADAPTER_PARMS_ADDR
  - ADAPTER_MAC_ADDR

- DIR.OPEN.ADAPTER command for CCB2 and CCB3. The value resumed in the parameter DATA_HOLD_BUFFERS, offset 24 of the Adapter Parms Open Parameters, is the value present in the characteristic table for the network adapter driver to which the IEEE 802.2 protocol is bound. The value resumed in the parameter DHB_BUFFER_LENGTH, offset 22 of the Adapter Parms Open Parameters, minus 6 is the length of the maximum guaranteed l-field.
- The term data hold buffer (DHB) is only applicable when the network adapter driver is Token-Ring.
- DIR.READ.LOG adapter log change. The adapter log data resumed by DIR.READ.LOG will be the data returned by a Read Error Log request to the network adapter driver. For IBM Token-Ring and PC Network adapters, the format is unchanged from the previous version of adapter support software.
- If the network adapter driver does not support the Read Error Log function, the adapter log contents will be undefined.
- DIR.SET.FUNCTIONAL.ADDRESS command for CCB2 and CCB3. The following applies only to network adapter drivers that do not support functional addresses, as indicated by the Service Flags parameter in the MAC Service Specific Characteristics table. For each bit to be set in the functional address, an NDIS Add Multicast Address command is issued to add a multicast address with that bit on. For each bit to be reset in the functional address, an NDIS Delete Multicast Address command is issued to delete the corresponding multicast address. If the number of bits to be in the functional address exceeds the number of available multicast addresses, the DIR.SET.FUNCTIONAL.ADDRESS command is not executed and a return code of X'1E' is posted to the CCB.
- The algorithms for calculating RAM, shared RAM, and work area are new. Refer to the Extended Services Communications Manager Configuration Guide, the Extended Services LAN Adapter and Protocol Support Configuration Guide, or the OS/2 LAN Server, Network Administrator Reference Volume 2: Performance Tuning for the calculation tables.
- NETBIOS provided in LAN Adapter and Protocol Support is NETBIOS Version 4.0.
- A maximum of 251 application programs (processes) can use NETBIOS 4.0 simultaneously.
- The only returned field defined for the NCB_RESERVE area of the NCB is offset 6. This field will contain the last Adapter Check reason code.
- NCB.STATUS command. This command has been extended to return the locally administered address on local status. Offset 36 of the status buffer is now defined for local status only. If the NCB is passed to the DLL interface, offset 36 is an LDT; if the NCB is passed to the DD interface, offset 36 is a GDT. The LDT or GDT is the address of the extended status information. The locally administered address is returned in the extended status information at offset 40 through 45. If a locally administered address is not configured, the adapter's encoded address is returned. Other areas defined in the extended status information are

  - Bytes 2 to 3 contain the latest NDIS Open Adapter return code

  - Bytes 4 to 5 contain the latest NDIS Ring Status status code

  - Bytes 6 to 7 contain the latest NDIS Adapter Check reason code.

- NETBIOS 4.0 will not attempt to piggyback acknowledgements if the data is received on an NCB.RECEIVE; a DATA_ACK will be sent upon receipt of the data. However, if an NCB.RECEIVE.ANY is used to receive data, the protocol will attempt to piggyback the acknowledgment. Piggybacked acknowledgment is only applicable for the NETBIOS device driver interface. Piggybacked acknowledgment is configurable. However, the configuration parameter sets piggybacking for the adapter, not the application. Therefore, use caution when changing this parameter. It will affect the performance of other NETBIOS applications. See the Extended Services Communications Manager Confguration Guide, the Extended Services LAN Adapter and Protocol Support Configuration Guide, or the OS/2 LAN Server Network Administrator Reference Volume 2: Performance Tuning for more information on NETBIOS configuration parameters.
- The Adapter Status parameter table returned by the CCB2 and CCB3 DIR.STATUS command may contain all zeroes if the network adapter driver to which IEEE 802.2 is bound is not NDIS Version 2.02.
- OS/2 2.0 Virtual DOS LAN Support operates only on OS/2 2.0 or greater.
- OS/2 2.0 Virtual DOS LAN Support will share the adapter with other OS/2 and DOS NETBIOS applications. Therefore, a DOS-based NETBIOS application can experience problems if it assumes that it is the only user of the adapter. For example, NCB.STATUS will return the names in the adapter's name table, which includes names in use for all NETBIOS applications using the adapter. The LTSVCFG configuration utility is provided to handle some inconsistencies between the DOS and OS/2 NETBIOS environment. Refer to the OS/2 LAN Server Network Administrator Reference Supplement for OS/2 2.0 for more information on OS/2 2.0 Virtual DOS LAN Support configuration.
- The Token-Ring Network 16/4 Busmaster Server Adapter/A is a DMA adapter. Due to a hardware limitation, the adapter does not access memory above a boundary of 16MB in physical memory. Therefore, any 32-bit device driver written to the IEEE 802.2 device driver interface API or the NISTBIOS device driver interface API that wants to successfully run on the Token-Ring Network 16/4 Busmaster Server Adapter/A network adapter must ensure that all memory passed to the API exists below the 16MB boundary in physical memory. The 16-bit device driver interface applications, 16-bit dynamic link interface applications, and 32-bit dynamic link interface applications are not affected.
- Memory passed to a LAN Adapter and Protocol Support interfaces must be contiguous in physical memory. OS/2 2.0 introduces a paged memory model. However, the IEEE 802.2 protocol stack and the NETBIOS 4.0 protocol stack are both 16-bit device drivers. Any memory passed to either protocol stack in the form of control blocks or buffers must be contiguous in physical memory. OS/2 2.0 ensures that a 16-bit application's memory is physically contiguous. See also 5.0, "Programming Information NETBIOS API" and 6.0, "Programming Information - IEEE 802.2 API" .
- The 3COM/Microsoft LAN Manager Network Driver Interface Specification Version 2.0/ Final defines syntax guidelines for the PROTOCOL.INI files. The specification states that all PROTOCOL.INI keywords that contain multiple values on the right-hand side of the equals sign may be separated by commas, semicolons, or spaces. However, the LAN Adapter and Protocol Support Configuration utility included with IBM Extended Services for OS/2 and IBM OS/2 LAN Server Version 2.0 supports commas and semicolons as separators but does not support spaces as separators.

[previous][next][parent][TOC]

## 8.0 Message Logging Facility

LAN Adapter and Protocol Support includes a message logging facility. This facility serializes logging of messages to a common log file, or optionally, to the screen. Service is provided for both ring 0 and ring 3 users. The LAN Adapter and Protocol Support protocol and network adapter drivers log messages at IPL time to the common log file LANTRAN.LOG. Some of the network adapter drivers will also log error messages at run time. The contents of the file help with debugging information as well as with resource and configuration information.

Figure 3 is a screen display of LANTRAN.LOG. In this example, the NETBIOS protocol driver and the IEEE: 802.2 protocol driver are bound to the Token-Ring network adapter driver. The Token-Ring adapter is configured as adapter 0 for both protocols.

`IBM OS/2 LANMSGDD [12/03/91] 2.01 is loaded and operational.`
``
`IBM OS/2 LAN Protocol Manager`
``
`IBM OS/2 NETBEUI 2.01`
`IBM - IBM Token-Ring Network Driver, Version V.2.02`
`IBM OS/2 LANDD [11/12/91] 2.01.2`
`IBM OS/2 LANDLLDD 2.01`
`IBM OS/2 LANDLLDD is loaded and operational.`
`IBM OS/2 NETBIOS 4.0`
`Adapter 0 has 32 NCBs, 32 sessions, and 32 names available to NETBIOS`
`applications.`
`NETBIOS 4.0 is loaded and operational.`
`IBM OS/2 LAN Netbind`
`IBM Token-Ring adapter data rate is 4 mbps.`
`IBM LANDD is accessing IBM 802.5 LAN Interface.`
`Adapter 0 was initialized and opened successfully.`
`Adapter 0 is using node address 10005A8D4426.`
`IBM LANDD was successfully bound to MAC: IBMTOK->VECTOR.`

Figure 3. Sample LANTRAN.LOG

To learn more about the message logging facility, refer to the NDIS Implementation Information for IBM LAN Systems OS/2 Messaging & National Language Support.

[previous][next][parent][TOC]

## 9.0 Configuring the LAN Virtual Device Driver

You must first configure the total IBM OS/2 NETBIOS and IBM IEEE 802.2 resources that your workstation requires before configuring the LAN VDD.

The LAN VDD indirectly uses the IBM OS/2 NETBIOS and IBM IEEE 802.2 resources. Changing the LAN VDD parameters has no effect on the total IBM OS/2 NETBIOS and IBM IEEE 802.2 resources allocated. The configuration of the LAN VDD only sets the number of resources a DOS NETBIOS or a DOS IEEE 802.2 application can request for each DOS session. Each DOS session that uses the LAN VDD is considered a single user to LAPS, regardless of the number of LAN applications running in a DOS session.

[previous][next][parent][TOC]

### 9.1 NETBIOS Considerations

If a DOS NETBIOS application requires more than the default number of NETBIOS commands, sessions, and names, or requires Name Number 1 support, use the LTSVCFG utility program to change the defaults.

[previous][next][parent][TOC]

### 9.2 IEEE 802.2 Considerations

If a DOS IEEE 802.2 application requires Direct Station support, use LTSVCFG to configure. If a DOS IEEE 802.2 application requires a group address, the System key parameter of the IBM IEEE 802.2 protocol driver must specify a value greater than 0.

[previous][next][parent][TOC]

## 10.0 Using the LTSVCFG Utility Program

LTSVCFG enables you to configure NETBIOS and IEEE 802.2 resources on a per DOS session basis. You can also request Name Number 1 support for DOS NETBIOS applications and Direct Station support for DOS IEEE 802.2 applications.

In most situations, the following resources support DOS NETBIOS and DOS IEEE 802.2 applications when the following line is added to the AUTOEXEC.BAT file:

    x:\IBMCOM\LTSVCFG S=12 C=14 N=8 N1=0 D=C

where x is the drive where you installed LAPS, S is the number of sessions, C is the number of commands, N is the number of names, N1 is Name Number 1 support is not requested, and D is Direct Station support not requested.

This command must be invoked before any DOS NETBIOS or DOS IEEE 802.2 applications are started. You can also invoke it from the IBMCOM subdirectory at a DOS command line.

LTSVCFG enables you to set DOS NETBIOS and DOS IEEE 802.2 parameters for each network adapter. Currently, support is provided for up to four network adapters. See 10.3, "Examples" for setting parameters.

If you receive an error from a DOS application requiring more NETBIOS or IEEE 802.2 resources you need to:

1. Close the specific DOS session affected.
2. Restart the DOS session.
3. Run LTSVCFG and reconfigure the appropriate parameters.
4. Restart the application.

[previous][next][parent][TOC]

### 10.1 Syntax

The following diagram illustrates LTSVCCFG syntax:

[previous][next][parent][TOC]

### 10.2 Parameters

You can specify parameters for different network adapters by using the slash (/) to separate the adapter settings. You can also specify the same parameters for different adapters by using an equal sign ( = ). Default values are used if the syntax is not correct, a value is not specified, or the value specified is out of range.

The following list describes the LAN VDD parameters:

S = sessions | Specifies the maximum number of NETBIOS sessions defined for a DOS session Default value: 6 Range: 1-254
C = commands | Specifies the maximum number of NetBIOS commands defined for a DOS session. Default value: 12 Range: 1-255
D = direct station | Specifies the request for IEEE 802.2 Direct Station support for a DOS session. Default value: 0(Request no Direct Station support) Range: 0 or 1
N=names | Specifies the maximum number of NETBIOS names defined for a DOS session Default value: 16 Range: 1-254
N1=name number 1 | Specifies the request for Name Number 1 for a DOS session. Default value: 0(Request no Name Number 1 support) Range: 0 or 1

[previous][next][parent][TOC]

### 10.3 Examples

The following example requests 10 sessions, 30 commands, 14 names, Name Number 1, and Direct Station support for adapter 0.

`LTSVCFG S=10 C=30 N=14 N1=1 D=1`

Figure 4. LTSVCFG Example (1)

The following example requests the defaults for adapter 0. It also requests 12 sessions, 25 commands, default (16) names, and no Name Number 1 support for adapter 1.

`LTSVCFG / S=12 C=25 N1=0`

Figure 5. LTSVCFG Example (2)

The following example requests 12 sessions, 25 commands, 20 names, and no Name Number 1 support for adapter 0. It also requests those same values for adapter 1.

`LTSVCFG S=12 C=25 N=20 N1=0 / =`

Figure 6. LTSVCFG Example (3)

The following example requests 10 sessions and Name Number 1 for support adapter 0, it also requests 12 sessions, 25 commands, and no Name Number 1 Support for adapter 1. For adapter 3 it requests the defaults and no Name Number 1 support and for adapter 4 it requests 14 sessions, 20 commands, 18 names and Name Number 1 support.

`LTSVCFG S=10 N1=1 / S=12 C=25 N1=0 / / S=14 C=20 N=18 N1=1`

Figure 7. LTSVCFG Example (4)

[previous][next][parent][TOC]

### 10.4 Restrictions

The following restrictions apply to the LAN VDD:

- There can be only one OS/2 or DOS application per adapter that uses any given SAP number.
- There can be only one OS/2 or DOS NETBIOS application per adapter that uses Name Number 1 support.
- There can be only one OS/2 or DOS IEEE 802.2 application per adapter that uses Direct Station support.
- You cannot use the IBM LAN Support Program with the LAN VDD.
- All DOS IEEE 802.2 commands are implemented with the exception of RECEIVE.MODIFY.

[previous][next][parent][TOC]

## 11.0 Operating System/2 Trace Facility

The Operating System/2 System Trace functions are redefined for the NDIS-based version of IEEE 802.2 adapter support software. The major code for IEEE 802.2 system traces will remain 164 (0xA4). Minor codes 64 (0x40) through 81 (0x51) will be used by the NDIS-based version of IEEE 802.2 adapter support software. The format of the trace data for each of the minor codes is explained in 11.1, "Minor Codes for IEEE 802.2 Traces."

The Operating System/2 System Trace functions are redefined for NETBIOS 4.0. The major trace code for NETBIOS 4.0 is still 164 (0xA4). Minor codes defined for NETBIOS 4.0 are 96 (0x60) through 106 (0x 6A) and 120 (0x78) through 123 (px7B). The format of the trace data for each of the minor codes is explained in 11.3, "minor Codes for NETBIOS Traces" .

To enable the OS12 Trace Facility, the user must specify a trace buffer in CONFIG.SYS. Add the following statement to CONFIG.SYS to specify the trace buffer:

    TRACEBUF=63

The information traced is controlled by the OS/2 major code trace selection and the protocol trace bit mask. The major code for LAPS is 164 (0xA4). Both NETBIOS and IEEE 802.2 have defined trace bit masks to select minor code information traced.

The IEEE 802.2 tracing is controlled by the TRACE parameter in the LANDD section of the PROTOCOL.INI file. This parameter is a bitmap of flags for enabling or disabling subsets of the available trace points. The TRACE parameter consists of 10 bit flags. To enable a particular subset of traces, the bit controlling those traces is set on in the TRACE parameter. For example, to trace CCBs issued and their parameter tables and status events, set TRACE = 0x000E. The subset of traces controlled by each bit of the TRACE parameter is explained in 11.2, "PROTOCOL.INI TRACE Parameter - IEEE 802.2" and summarized in Figure 8 .

The OS2TRACEMASK parameter in the NETBEUI section of PROTOCOL.INI controls the tracing of NETBIOS minor code events. Enabling and disabling tracing of minor codes is controlled by bit selection in OS2TRACE:VIASK. For example, to trace NCBs issued, pending, and completed set 0S2TRACEMASK = 0X0700. The bits associated with each minor code are defined in 11.4, "PROTOCOL.INI OS2TRACEMASK Parameter - NETBIOS" and summarized in Figure 9 .

After making changes to CONFIG.SYS and PROTOCOL.INI for NETBIOS or IEEE 802.2, reboot the machine. To begin tracing, type the following at the command prompt:

    TRACE ON 164

[previous][next][parent][TOC]

### 11.1 Minor Codes for IEEE 802.2 Traces

The following minor codes are defined for IEEE 802.2:

- 0x40 - CCB RECEIVED ENTRY

  This trace entry indicates a CCB received at the CCB3 entry point. CCB2s will also be traced since they are converted to CCB3s and then sent to the CCB3 entry point. The trace data is the contents of the CCB3, except for the CCB_POINTER field. Instead of its actual contents, the CCB_POINTER field will contain the address of the CCB3.

- 0x41 - CCB RECEIVED EXIT

  This trace entry indicates the immediate return of a CCB. The trace data is the first 8 bytes of the CCB3, except that the CCB_POINTER field will be set to the address of the CCB3 and the CCB_RETURN_CODE field will be set to 0.

- 0x42, 0x43 - CCB FINAL COMPLETION

  This trace entry indicates the final completion of a CCB3. The trace data is the contents of the CCB3, except for the CCB_POINTER field. Instead of its actual contents, the CCB_POINTER field will contain the address of the CCB3. Minor code 43 is used for CCBs that are returning an information table, and code 42 is used for CCBs that are not.

- 0x44 - CCB PARAMETER TABLE

  This trace entry will follow a trace entry for minor codes 0x40, 0x41, 0x42, 0x43, and 0x50, if the CCB being traced has a parameter table. The trace data is the CCB parameter table.

- 0x45 - DLC STATUS EVENT

  This trace entry indicates a DLC status event. The trace data is the DLC status table, followed by 1 byte for the adapter number, 1 byte for the application ID, and 2 bytes of reserved data.

- 0x46- EXCEPTION EVENT

  This trace entry indicates one of the exception events controlled by the DIR.SET.EXCEPTION.FLAGS CCB. These events are Adapter Check, Network Status, PC Error, and System Action. The trace data is the CCB3 exception event information table (padded with 0 to 20 bytes in the case of Adapter Check and System Action), followed by 1 byte for the adapter number, 1 byte for the application ID, 1 byte for the exception type, and 1 byte of reserved data. The exception type values are:

  0 Adapter Check

  2 Network Status

  4 PC Error

  6 System Action.

- 0x47 - CCB INFORMATION TABLE

  This trace entry will follow a trace entry for minor code 0x43. The trace data is the CCB information table.

- 0x48, 0x49 - NDIS DATA, RECEIVE

  This trace entry indicates data received at the NDIS interface, through either a ReceiveLookahead or a ReceiveChain indication. The trace data is the received frame. The length of the trace is either the first 32 or 128 bytes of the frame, depending on the state of the Data trace Size flag. If the indication is ReceiveLookahead, then there will be only one trace entry per frame, and it will be minor code 49. If the indication is ReceiveChain, then there will be one trace entry for every buffer in the chain, up to the number of buffers required to reach the 32 - or 128-byte trace limit. The last trace entry per frame will be minor code 49 and all others, if any, will be minor code 48.

- 0x4A, 0x4B - NDIS DATA, TRANSMIT

  This trace entry indicates data transmitted at the NDIS interface through the TransmitChain interface. The trace data is the transmitted frame. The length of the trace is either the first 32 or 128 bytes of the frame, depending on the state of the Data Trace Size flag. There will be one trace entry for every buffer in the chain, up to the number of buffers required to reach the 32- or 128-byte trace limit. The last trace entry per frame will be minor code 4B and all others, if any, will be minor code 4A.

- 0x4C, 0x4D - CCB DATA, RECEIVE

  This trace entry indicates data received at the CCB interface, either through a Receive or a Receive_Modify CCB. The trace data is the SAP buffer contents, including buffer headers and frame data. The length of the trace is either the first 64 or 128 bytes of the SAP buffer, depending on the state of the Data Trace Size Tag. There will be one trace entry for every SAP buffer in the chain, up to the number of buffers required to reach the 64- or 128-byte trace limit. The last trace entry per frame will be minor code 4D and all others, if any, will be minor code 4C.

- 0x4E, 0x4F - CCB DATA, TRANSMIT

  This trace entry indicates data transmitted at the CCB interface through any of the Transmit CCBs. The trace data is the user-supplied transmit-frame data. The length of the trace is either the first 32 or 128 bytes of the frame, depending on the state of the Data Trace Size flag. There will be one trace entry for every buffer in the frame, up to the number of buffers required to reach the 32- or 128-byte trace limit. The last Race entry per frame will be minor code 4F and all others, if any, will be minor code 4E.

- 0x50 - CCB RECEIVED FRAME EVENT

  This trace entry indicates data received at the CCB interface, either through a Receive or a Receive_Modify CCB. The trace data is the Receive CCB3. This entry is only used for Receive CCBs that do not complete when a frame is received. If the CCB completes when the frame is received, whether due to an error or not, only the CCB completion trace entry will be logged.

- 0x51 - DLR CCB RECEIVED ENTRY

  This trace entry indicates a CCB received at the CCB2 entry point. The trace data is the CCB2.

[previous][next][parent][TOC]

### 11.2 PROTOCOL.INI TRACE Parameter - IEEE 802.2

The TRACE parameter in the LANDD section of the PROTOCOL.INI file consists of 10 bit flags. The format of this parameter for each trace event is as follows:

- Bit 0 (0x0001) - Validation

  Enables debugging-level CCB validation. When enabled, addressability to all buffers defined by the CCB will be verified. This verification is only considered necessary for programs under development, so it defaults to disabled to improve performance.

- Bit 1 (0x0002) - CCBs

  Enables tracing of CCB contents at CCB3 entry, CCB3 immediate return, and CCB3 final completion, plus CCB3 receive frame events where the Receive CCB3 does not complete. CCB2s will also be traced because when they are received they are converted to CCB3s and then sent to the CCB3 entry.

- Bit 2 (0x0004) - CCB Parameter Tables

  Enables tracing of the CCB parameter table contents at CCB entry, CCB final completion, and CCB receive frame events where the Receive CCB does not complete. This bit also enables the tracing of the CCB information table at CCB final completion.

- Bit 3 (0x0008) - Status Events

  Enables tracing of DLC Status, Adapter Check, Network Status, PC Error, and System Action events.

- Bit 4 (0x0010) - DLL CCBs

  Enables tracing of CCB2 contents at CCB entry.

- Bit 5 (0x0020) - CCB Interface Received Data

  Enables tracing of the contents of the SAP buffers containing received data.

- Bit 6 (0x0040) - CCB Interface Transmit Data

  Enables tracing of the contents of the transmit data supplied with a transmit CCB.

- Bit 7 (0x0080) - Data Trace Size

  Enables large size data traces for transmit and receive at both the CCB and NDIS interfaces. For Transmit Data traces at both the CCB and NDIS interface, the first 128 bytes of data of each frame are traced if large size is enabled. If large size is disabled, only the first 32 bytes of each frame are traced. For Receive Data traces at the NDIS interface, the first 128 bytes of data of each frame are traced if large size is enabled. If large size is disabled, only the first 32 bytes of each frame are traced. For Receive Data traces at the CCB interface, the first 128 bytes of SAP buffer contents of each frame are traced if large size is enabled. If large size is disabled, only the first 64 bytes of SAP buffer contents are traced. The SAP buffer contents will include header information in addition to the frame data. The SAP buffer contents are described in the IBM local Area Network Technical Reference.

- Bit 8 (0x0100) - NDIS Interface Received Data

  Enables tracing of the contents of the data received from the NDIS interface. This will include user-generated frames destined for the CCB interface, as well as LLC control frames such as SABME and DISC.

- Bit 9 (0x0200) - NDIS Interface Transmit Data

  Enables tracing of the data sent to the NDIS interface. This will include user-generated frames from the CCB interface, as well as LLC control Barnes such as SABME and DISC.

Figure 8 provides a summary of the IEEE 802.2 trace point minor codes and the TRACE parameter bit flags.

Figure 8. IEEE 802.2 TRACE Bit Definition

Refer to the IBM Local Area Network Technical Reference for documentation on the following:

CCB content

SAP buffer format

Adapter Check reason code

Network Status code

System Action exceptions

DLC Status code definition.

Refer to the 3Com/Microsoft LAN Manager Network Driver Interface Specification Version 2.0 Final for more information on ReceiveLookahead, ReceiveChain, and TransmitChain.

[previous][next][parent][TOC]

### 11.3 Minor Codes for NETBIOS Traces

The following minor codes are defined for NETBIOS:

- 0x60 - TRANSMIT I FRAME

  The first 14 bytes of the trace data are the NETBIOS I-frame header. The next 2 bytes contain the return code received from the network adapter driver on the TransmitChain primitive. The last 2 bytes are the adapts number.

- 0x61 - TRANSMIT UI FRAME

  The first 44 bytes of the trace data are the NETBIOS Ul-frame header. The next 2 bytes contain the return code received from the network adapter driver on the TransmitChain primitive. The last 2 bytes are the adapter number.

- 0x62 - TRANSMIT COMPLETE

  The first 14 bytes of the trace data are the NETBIOS I-frame header and the last 2 bytes are the adapter number.

- 0x63 - RECEIVE I FRAME

  The first 14 bytes of the trace data are the NETBIOS I-frame header and the last 2 bytes are the adapter number.

- 0x64 - RECEIVE I FRAME

  The first 44 bytes of the trace data are the NETBIOS I-frame header and the last 2 bytes are the adapter number.

- 0x65 - NETWORK STATUS

  The first 2 bytes of the trace data are the Ring Status bit mask and the next 2 bytes are the adapter number.

- 0x66 - ADAPTER CHECK

  The first 2 bytes of the trace data are the Adapter Check reason code and the next 2 bytes are the adapter number.

- 0x67 - DLC STATUS

  The following are the contents of the trace data in detail:

- 0x68 - NCB RECEIVED

  This trace entry indicates the NCB was received by the NETBEUI device driver. The first 64 bytes are the NCB contents and the last 4 bytes are the NCB address.

- 0x69 - NCB PENDING

  This trace entry indicates the NCB is pending in the NETBEUI device driver. The first 64 bytes are the NCB contents and the last 4 bytes are the NCB address.

- 0x6A - NCB COMPLETE

  This trace entry indicates the NCB is completed by the NETBEUI device driver. The first 64 bytes are the NCB contents and the last 4 bytes are the NCB address.

- 0x78, 0x79 - NDIS DATA, RECEIVE

  This trace entry data received from the NDIS interface. This will also include LLC control frames such as SABME and DISC. The last trace entry per frame will be minor code 0x7B and all others, if any, will be minor code 0x78.

- 0x7A, 0x7B - NDIS DATA, TRANSMIT

  This trace data is the data sent to the NDIS interface. This will also include LLC control frames such as SABME and DISC. The last trace entry per frame will be minor code 0x7B and all others, if any, will be minor code 0x7A.

[previous][next][parent][TOC]

### 11.4 PROTOCOL.INI OS2TRACEMASK Parameter- NETBIOS

The OS2TRACE.MASK parameter in the NETBEUI section of PROTOCOL.INI consists of 16 bit flags. The format of this parameter for each minor code is as follows:

- Bit 0 (0x0001) - Transmit I Frame

  Enables tracing of NETBIOS I frames transmitted.

- Bit I (0x0002) - Transmit UI Frame

  Enables tracing of NETBIOS UI frames transmitted.

- Bit 2 (0X0004) - Transmit Complete

  Enables tracing of completion of NETBIOS I frames transmitted.

- Bit 3 (Ox0008)- Receive I Frame

  Enables tracing of NETBIOS I frames received.

- Bit 4 (0x0010) - Receive UI Frame

  Enables tracing of NETBIOS UI frames received.

- Bit 5 (0x0020) - Network Status

  Enables tracing of Network Status events.

- Bit 6 (0x0040) - Adapter Check

  Enables tracing of Adapter Check events.

- Bit 7(0x0080)- DLC Status

  Enables tracing of DLC Status events.

- Bit 8 (0x0100)- NCB Received

  Enables tracing of the NCB contents at entry to the NETBEUI device driver.

- Bit 9 (0x0200) - NCB Pending

  Enables tracing of the NCB contents at immediate return from the NETBEUI device driver if the NCB return code is X'FF', which indicates a pending state.

- Bit 10 (0x0400) - NCB Complete

  Enables tracing of the NCB contents at completion of the NCB in the NETBEUI device driver.

- Bit 11 (0x0800)- NDIS Data

  Enables data traces for transmit and receive at the the NDIS interface. This bit enables minor codes X'78' through X'7B'.

- Bit 12 (0x1000) - NDIS Size

  Enables large size data traces for transmit and receive at the NDIS interface. For Transmit Data traces and for Receive Data traces, the first 128 bytes of data of each frame are traced if large size is enabled. If large size is disabled, only the first 32 bytes of each frame are traced.

Figure 9 provides a summary of the NETBIOS trace point minor codes and the OS2TRACEMASK parameter bit flags.

Figure 9. NETBIOS OS2TRACEMASK Bit Definition

Refer to the IBM Local Area Network Technical Reference for documentation on the following:

NCB content

NETBIOS UI-frame header content and format

NETBIOS I-frame header content and format

Network Status code definition

Adapter Check reason code definition

DLC Status code definition

Refer to the 3Com/Microsoft LAN Manager Network Driver Interface Specification Version 2.01 Final for return code information on the TransmitChain primitive.

[previous][next][parent][TOC]

### 11.5 Tracing for OS/2 2.0 Virtual DOS LAN Support

Major code 164 (0xA4) enables tracing for OS/2 2.0 Virtual DOS LAN Support. The minor codes 162 (0xA2), 163 (0xA3), and 164 (0xA4) are defined for OS/2 2.0 Virtual DOS LAN Support.

[previous][next][parent][TOC]

#### 11.5.1 Minor Codes for OS/2 2.0 Virtual DOS LAN Support

The following minor codes are defined for OS/2 2.0 Virtual DOS LAN Support:

- 0xA2- NCB ISSUED

  This trace entry indicates that the NCB issued by DOS was received by OS/2 2.0 Virtual DOS LAN Support. The first 64 bytes are the contents of the DOS NCB. The last 4 bytes are the linear address of the DOS NCB.

- 0xA3 - NCB COMPLETE

  This trace entry indicates that the DOS NCB was completed by OS/2 2.0 Virtual DOS LAN Support. The first 64 bytes are the contents of the DOS NCB. The last 4 bytes are the linear address of the DOS NCB.

- 0xA4 - NCB IMMEDIATE RETURN

  This trace entry indicates the immediate return from interrupt SC. The first 64 bytes are the contents of the DOS NCB. The last 4 bytes are the linear address of the DOS NCB.

- 0xB0 - CCB INTERMEDIATE RESULT

  This trace entry indicates the intermediate results of the CCB request as it appears after issuing the CCB request to the OS/2 802.2 protocol stack. The data is the contents of the CCB and parameter table as is is received from the OS/2 802.2 protocol stack.

- 0xB1 - CCB INTERMEDIATE RESULT

  This trace entry indicates that an asynchronous command is being completed to OS/2 2.0 Virtual LAN Support from the OS/2 802.2 protocol stack. The data is the contents of the CCB and parameter table as is is received from the OS/2 802.2 protocol stack.

- 0xB2 - CCB ISSUED

  This trace entry indicates that the CCB issued by DOS was received by the OS/2 Virtual LAN Support. The data is the contents of the DOS CCB.

- 0xB3 - CCB ISSUED

  This trace entry indicates that the DOS CCB was completed by OS/2 Virtual LAN Support. The data is the contents of the DOS CCB.

- 0xB4 - CCB IMMEDIATE RETURN

  This trace entry indicates the immediate return from interrupt SC. The data is the contents of the CCB.

- 0xB5 - STATUS EVENT

  This trace entry indicates that a status event occurred and information was passed to the DOS exception handler. The data is the information table that is passed to the DOS application.

- 0xB6- CCB PARMTABLE ISSUED

  This trace entry indicates the DOS parameter table, if any, that was passed to OS/2 Virtual LAN Support. The data is the contents of the parameter table.

- 0xB7 - CCB PARMTABLE COMPLETE

  This trace entry indicates the DOS parameter table, if any, that was passed back to the DOS application as a result of the CCB command completed. The data is the contents of the CCB parameter table.

[previous][next][parent][TOC]

## Notices

May, 1993

Issued by:

IBM Corporation
Personal Software Products
11400 Burnet Road
Austin, Texas 78758

First Edition (May 1992)

Second Edition (May 1993)

The following paragraph does not apply to the United Kingdom or any country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.

This publication could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or program(s) described in this publication at any time.

It is possible that this publication may contain reference to, or information about, IBM products (machines and programs), programming, or services that are not announced in your country. Such references or information must not be construed to mean that IBM intends to announce such IBM products, programming, or services in your country.

[previous][next][parent][TOC]

### Copyright Notices

© Copyright International Business Machines Corporation 1992, 1993. All rights reserved.

Note to U.S. Government Users - Documentation related to restricted rights - Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp.

[previous][next][parent][TOC]

### Disclaimers

References in this publication to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM product, program, or service is not intended to state or imply that only IBM's product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any of IBM's intellectual property rights or other legally protectible rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, programs, or services, except those expressly designated by IBM, are the user's responsibility.

IBM may have patents or pending patent applications covering subject matter in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to the IBM Director of Commercial Relations, IBM Corporation, Purchase, NY 10577.

[previous][next][parent][TOC]

### Trademarks

The following terms, denoted by an asterisk (*) in this publication, are trademarks of the IBM Corporation in the United States and/or other countries:

OS/2 | IBM | Extended Services

The following terms, denoted by a double asterisk (**) in this publication, are trademarks of other companies as follows:

Microsoft | Microsoft Corporation
3Com | 3Com Corporation
CompuServe | CompuServe Incorporated

All other company, brand, and product names are trademarks or registered trademarks of their respective owners.