To System Manual Page

Last update: 04.12.95 bos


DLPI

TABLE OF CONTENTS

INTRODUCTION

DLPI (Data Link Provider Interface) specifies an interface to the services of the data link layer. This interface is the boundary between the network and data link layers of the OSI model. The network layer entity is the Data Link Service user (DLS user), the data link layer entity is the DLS provider. The purpose of the specification is to enable the DLS user to access and use any of a variety of conforming DLS providers without specific knowlegde of the providers protocol.

The interface is a specification of a STREAMS kernel-level instantiation of the ISO Data Link Service Definitions and Logical Link Control (LLC). The DLPI primitives are defined in terms of STREAMS messages that are transferred between the user and the provider of the service. All DLPI messages are either M_PROTO or M_PCPROTO type. The data is sent in M_DATA messages. The primitives are usually issued in a request/acknowledge scenario where the user issues a request message and waits for an acknowlegde or error response message from the provider.

Concerning the project, the DLPI specification will be divided into five modules. These are Local Management, Connection Establishment, Connection Release, Data Transfer and Connectionless Data Transfer. The first of these will be implemented as in the TEI-management module in the kernel, the rest will be incorporated in the Q.921-implementation as a "DLPI module".

LOCAL MANAGEMENT

The Local Management module takes care of the initialization of a stream. It also includes services for information reporting about the DLS provider. This module can then be divided into three services: Information Reporting, Attaching and Binding.

Information reporting

To get operating information about the DLPI stream, the user can issue a DL_INFO_REQ-primitive. The information is returned in a DL_INFO_ACK-primitive.

Attaching

The attach service assigns a physical point of attachment (PPA) to a stream. A PPA is the point at which a system attaches itself to a physical communication medium (in our case the ISDN-card). A PPA may also be disassociated with a stream.

Binding

The bind service associates at Data Link Service Access Point (DLSAP) with a stream. The DLS users identity is established by associating it with a DLSAP. A DLSAP may also be disassociated with the stream.

DLPI MODULE

The DLPI-module will translate (map) the primitives of the DLS provider to DLPI primitives. These will then be sent as a STREAMS message to the DLS user. The user has a corresponding DLPI-module, which the translates the DLPI primitives to primitives that can be understood by the user. The primitives are then distributed to the proper module in the user. The process is the same the when sending primitives from the user to the provider. The DLPI-module can be seen as consisting of the modules Connection Establishment, Connection Release, Data Transfer and Connectionless Data Transfer from the DLPI specification.

Connection Establishment

The connection establishment service establishes a data link connection between a local DLS user and a remote DLS user for the purpose of sending data. The user issues a DL-ESTABLISH-request, which is mapped to the DLPI primitive DL_CONNECT_REQ. The provider issues a DL-ESTABLISH-confirm, which will be sent back as DL_CONNECT_CON.

Connection Release

The connection release service releases the data link connection between a local DLS user and a remote DLS user. The user issues a DL-RELEASE-request, which will be sent to the provider as a DL_DISCONNECT_REQ. The provider will send back a DL_OK_ACK.

Data Transfer

When the local DLS user wants to send data, it sends the data in a DL_DATA_REQ primitive. The data is contained in an M_DATA message. When the local DLS user is going to get some data it will get a DL_DATA_IND primitive. The data is contained in an M_DATA message.

Connectionless Data Transfer

This service is used when no connection is established between a remote DLS user and a local DLS user. If the remote user wants to make a connection to the local user, it will send a setup. The provider will then convey the data with the DL_UNITDATA_IND primitive up to the local user.


Comments please send Mail: