OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Sun, 06 Jul 2008 14:58:18 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of DLPI
Quick Links

Download

SCTP

SIGTRAN

SS7

Hardware

STREAMS

Asterisk

Related

Package

Manual

FAQ

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Manpage of DLPI

Description: Manual Page

Keywords: ss7 ss7/ip ss7 over ip ss7 mtp ss7 sccp ss7 tcap sigtran mtp sccp tcap openss7 acb56 linux telephony pstn linux telephony linux nebs linux compactpci


DLPI

Section: OpenSS7 DLPI Library (3)
Updated: Tue, 27 Jun 2017 13:58:37 GMT
Index Return to Main Contents

NAME

DLPI, dlpi, libdlpi - Data Link Provider Interface (DLPI) Subroutines

INTERFACE

DLPI[1] Library.
Solaris®-specific and proprietary.

LIBRARY

libdlpi(3), the DLPI Library.

SYNOPSIS

#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/stropts.h>
#include <sys/dlpi.h>
#include <dlpi.h>

uintdlpi_arptype(uintmactype);
intdlpi_bind(dlpi_handle_tdh, uintsap, uint*boundsap);
voiddlpi_close(dlpi_handle_tdh);
intdlpi_disabmulti(dlpi_handle_tdh, constvoid*maddr_ptr, size_tmaddr_len);
intdlpi_disabnotify(dlpi_handle_tdh, dlpi_notifyid_tid, void**argp);
intdlpi_enabmulti(dlpi_handle_tdh, constvoid*maddr_ptr, size_tmaddr_len);
intdlpi_enabnotify(dlpi_handle_tdh, uintnotes, dlpi_notifyfunc_t*funcp, void*arg, dlpi_notifyid_t*idp);
intdlpi_fd(dlpi_handle_tdh);
intdlpi_get_physaddr(dlpi_handle_tdh, uinttype, void*paddr_ptr, size_t*paddr_len);
uintdlpi_iftype(uintmactype);
intdlpi_info(dlpi_handle_tdh, dlpi_info_t*infop, uintoptions);
constchar*dlpi_linkname(dlpi_handle_tdh);
constchar*dlpi_mactype(uintmactype);
intdlpi_open(constchar*linkname, dlpi_handle_t*dhp, uintflags);
intdlpi_promiscoff(dlpi_handle_tdh, uintlevel);
intdlpi_promiscon(dlpi_handle_tdh, uintlevel);
intdlpi_recv(dlpi_handle_tdh, void*saddr_ptr, size_t*saddr_len, void*data_ptr, size_t*data_len, intmsec, dlpi_recvinfo_t*recvp);
intdlpi_send(dlpi_handle_tdh, constvoid*daddr_ptr, size_tdaddr_len, constvoid*data_ptr, size_tdata_len, constdlpi_sendinfo_t*sendp);
intdlpi_set_physaddr(dlpi_handle_tdh, uinttype, constvoid*paddr_ptr, size_tpaddr_len);
intdlpi_set_timeout(dlpi_handle_tdh, intmsec);
constchar*dlpi_strerror(interror);
intdlpi_unbind(dlpi_handle_tdh);
voiddlpi_walk(dlpi_walkfunc_t*funcp, void*arg, uintflags);

OVERVIEW

libdlpi
is an OpenSS7 implementation of the Solaris® DLPI Library[2] for Linux.

DESCRIPTION

The DLPI Library is a library of DLPI helper and utility functions designed for use with the Data Link Provider Interface (DLPI)[1], dlpi(7). The original library was designed by Sun Microsystems, Inc., <http://www.sun.com/>, and first documented[3] in Solaris® 10.

The DLPI Library documented here is the OpenSS7 implementation of a library intended on being a work-alike with the Solaris® library in accordance with the Sun Microsystems documentation[2].

The Solaris®-compatible DLPI Library should not be confused with the GCOM-compatible DLPI API Library, libdlpiapi(3). The two libraries are incompatible and have namespace conflicts (primarily on dlpi_open(3) and dlpi_close(3)).

The Solaris® DLPI Library only supports connectionless mode data link service, DL_CLDLS and does not invoke automatic response to XID and TEST, even when the DLS provider advertises that it is capable of automatic response. However, the Solaris® DLPI Library does support native, passive and raw modes. Nevertheless, the Solaris® DLPI Library is useful in only limited cases. In contrast, the GCOM DLPI API Library[4], dlpiapi(3), supports both connectionless mode and connection-oriented mode data link service, DL_CLDLS and DL_CODLS, and is still capable of native, passive and raw modes.

FUNCTIONS

libdlpi implements the following DLPI library functions:

dlpi_arptype(3)-convert MAC Type to RFC 826 ARP Hardware Type.
dlpi_bind(3)-bind a DLPI Stream to a DLSAP.
dlpi_close(3)-close a DLPI Stream.
dlpi_disabmulti(3)-disable a multicast address.
dlpi_disabnotify(3)-disable notifications.
dlpi_enabmulti(3)-enable a multicast address.
dlpi_enabnotify(3)-enable notifications.
dlpi_fd(3)-obtain file descriptor for Stream.
dlpi_get_physaddr(3)-get physical address.
dlpi_iftype(3)-convert MAC Type to RFC 2863 IANA ifType.
dlpi_info(3)-obtain information for a DLPI Stream.
dlpi_linkname(3)-get linkname for DLPI Stream.
dlpi_mactype(3)-get description for DLPI MAC Type.
dlpi_open(3)-open a new DLPI Stream.
dlpi_promiscoff(3)-set promiscuous mode off.
dlpi_promiscon(3)-set promiscuous mode on.
dlpi_recv(3)-received data.
dlpi_send(3)-transmit data.
dlpi_set_physaddr(3)-set physical address.
dlpi_set_timeout(3)-set a timeout.
dlpi_strerror(3)-obtain error string.
dlpi_unbind(3)-unbind a DLPI Stream.
dlpi_walk(3)-walk the available DLPI PPAs.

USAGE

To user the DLPI Library, include <sys/dlpi.h> and <dlpi.h> header files in C language programs. Add the `-ldlpi' flag to the linker command when linking C language programs that use this library, or add @libdir@/libdlpi.a to the objects linked.

Establishing Streams

The following functions establish and destroy DLPI Streams:

dlpi_open(3)
Opens and attaches (when necessary) a DLPI Stream in the native, raw or passive mode.
dlpi_bind(3)
Binds the stream to a DLSAP.
dlpi_info(3)
Request information about the DL provider.
dlpi_unbind(3)
Unbind the stream from a DLSAP.
dlpi_close(3)
Detaches (when necessary) and closes a DLPI Stream.

Manipulating Addresses

The following functions manipulate addresses associated with the data link:

dlpi_enablmulti(3)
Enable a multicast address.
dlpi_disabmulti(3)
Disable a multicast address.
dlpi_get_physaddr(3)
Get various types of physical address.
dlpi_set_physaddr(3)
Set various types of physical address.
dlpi_promiscon(3)
Enter promiscous mode.
dlpi_promiscoff(3)
Leave promiscous mode.

Notifications

The following functions request notifications:

dlpi_enabnotify(3)
Enable notifications and callback functions.
dlpi_disabnotify(3)
Disable notifications and callback functions.

Data Transfer

The following functions are responsible for data transfer:

dlpi_send(3)
Send data.
dlpi_recv(3)
Receive data.

Management

The following functions perform management operations:

dlpi_fd(3)
Obtain the file descriptor for a DLPI handle.
dlpi_walk(3)
Walk the available Physical Points of Appearance.
dlpi_set_timeout(3)
Set a timeout (to be notified on expiry).

MAC Type Conversions

The following functions perform DLPI MAC Type conversions:

dlpi_arptype(3)
Converts the DLPI MAC Type to an RFC 826[5] ARP Hardware Type.
dlpi_iftype(3)
Converts the DLPI MAC Type to an RFC 2863[6] IANA ifType.

Strings

The following functions perform string reporting:
dlpi_mactype(3)
Converts the DLPI MAC Type to a DLPI[1] descriptive string.
dlpi_strerror(3)
Returns the error string that corresponds to the passed in error code, and possibly from the errno(3) global variable. This error string corresponds to DLPI errors, DLPI Library errors, and UNIX errors.
dlpi_linkname(3)
Returns the link name that was used to open the DLPI device or pseudo-device driver, and as was passed to dlpi_open(3).

MT CONTEXT

The The OpenSS7 Project implementation of the DLPI Library is fully thread-safe. The variables documented as global are instead contained in thread-specific data. When static buffers are returned, these buffers are instead thread-specific.

RETURN

Most function call return zero (0) on success and minus one (-1) on error.

ERRORS

When most functions fail, they return minus one (-1) and set the global errno(3) variable to an appropriate error code.

NOTICES

The DLPI API Library is Solaris®-specific[2]. It may be necessary to define the `C' preprocessor symbol, _SUN_SOURCE, before including the <sys/dlpi.h> header file to expose the symbolic constants, data structures and declarations necessary for the use of these functions. It may be necessary to include the <dlpi.h> header file to expose the symbolic constants, data structures and declarations necessary for the user of these functions.

FILES

@includedir@/OpenSS7/sys/dlpi.h
the standard DLPI[1] header file.
@includedir@/OpenSS7/dlpi.h
the Solaris®-specific header file.
@libdir@/libdlpi.a
the static library version of the DLPI Library.
@libdir@/libdlpi.so
the shared object library version of the DLPI Library.

BUGS

The DLPI Library has no known bugs.

SEE ALSO

dlpi(7), dlpiapi(3), STREAMS(9).

COMPATIBILITY

The OpenSS7 DLPI library is compatible with documentation of the Solaris® DLPI library[2] and applications based on the DLPI, with the following compatibility considerations:

---
Application programming interfaces for devices and modules that implement the Data Link Provider Interface (DLPI)[1], dlpi(7), have not been subjected to standardization and are, therefore, inherently non-portable. Portable STREAMS applications, drivers and modules will utilize the service primitive interface directly using putmsg(2s), getmsg(2s), write(2s), read(2s) and ioctl(2s) system calls and the definitions provided in the <sys/dlpi.h> header file.
---
DLPI Library functions are Solaris®-specific[2], and are provided only for porting Solaris® applications, drivers and modules to Linux. They are inherently non-portable. These functions will be avoided by portable DLPI application programs, drivers and modules.
---
Binary compatibility is not attempted, only source compatibility: any binary compatibility experienced is coincidental and may change on a future release.

It may be necessary to recompile all applications programs, and STREAMS drivers and modules, that share definitions with the DLPI library through the <dlpi.h> header file, using The OpenSS7 Project supplied header files.

---
The The OpenSS7 Project implementation of the DLPI Library is designed to be fully thread-safe. When used in a POSIX threads environment, the implementation is not expected to be bug-for-bug compatible with the Solaris® implementation, which does not document interactions with multi-threaded programs.

For further compatibility information, see dlpi(7) and STREAMS(9).

CONFORMANCE

DLPI[1], DLPI documentation[2].

HISTORY

DLPI first appeared in SVR 4[7].

DLPI documentation[3] was first issued by Sun Microsystems for Solaris® 10.

VERSIONS

This manual page was written for the The OpenSS7 Project version of the DLPI Library.

REFERENCES

[1]
DLPI, Data Link Provider Interface (DLPI) Specification, Revision 2.0.0, Draft 2, August 20, 1991, (Parsippany, New Jersey), UNIX. International,Inc., UNIX International Press. <http://www.openss7.org/doc/dlpi.pdf>
[2]
Solaris® 11, Solaris 11 Docmentation, 2008, (Santa Clara, California), Sun Microsystems, Inc., Sun. <http://docs.sun.com/>
[3]
Solaris® 10, Solaris 10 Docmentation, 2007, (Santa Clara, California), Sun Microsystems, Inc., Sun. <http://docs.sun.com/>
[4]
DLPI-API, DLPI --- Application Program Inteface Guide, Original Edition, 1995, April 2003, (Savoy, IL), D. J. Schweiger, D. Healy and D. Grothe, GCOM. <http://www.gcom.com/>
[5]
RFC 826, An Ethernet Address Resolution Protocol or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware, November 1982, D. C. Plummer, The Internet Society. <http://www.ietf.org/rfc/rfc0826.txt>
[6]
RFC 2863, The Interfaces Group MIB, June 2000, K. McCloghrie, F. Kastenholz, The Internet Society. <http://www.ietf.org/rfc/rfc2863.txt>
[7]
SVR 4, UNIX® System V Release 4 Programmer's Manual, 1990, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.

TRADEMARKS

OpenSS7tm
is a trademark of OpenSS7 Corporation.
Linux®
is a registered trademark of Linus Torvalds.
UNIX®
is a registered trademark of The Open Group.
Solaris®
is a registered trademark of Sun Microsystems.

Other trademarks are the property of their respective owners.

IDENTIFICATION

The OpenSS7 Project: Package OpenSS7 version 0.9.2 released Tue, 27 Jun 2017 13:58:37 GMT.

Copyright©1992UNIX International, Inc.

Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
(See roff source for permission notice.)



Index

NAME
INTERFACE
LIBRARY
SYNOPSIS
OVERVIEW
DESCRIPTION
FUNCTIONS
USAGE
Establishing Streams
Manipulating Addresses
Notifications
Data Transfer
Management
MAC Type Conversions
Strings
MT CONTEXT
RETURN
ERRORS
NOTICES
FILES
BUGS
SEE ALSO
COMPATIBILITY
CONFORMANCE
HISTORY
VERSIONS
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 13:58:37 GMT, June 27, 2017
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of DLPI
Last modified: Sun, 06 Jul 2008 14:58:18 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.