|
NAMElibngatm —
ATM signalling library
LIBRARYBegemot ATM signalling library (libngatm, -lngatm)SYNOPSIS#include
<netnatm/msg/unistruct.h>
#include
<netnatm/msg/unimsglib.h>
DESCRIPTIONThelibngatm library handles UNI 4.0 messages. For each
information element and message type the header files contain a structure
definition. Additionally there are a number of help structures and a global
context structure for some of the library functions. This document only
describes the common structures. For information element and message
structures see the header files.
LIBRARY CONFIGURATIONWhen the library is compiled a number of constants are define in the file uni_config.h. They define certain limits. Because of the use of these definitions a change in any of them requires a complete recompilation of all library code and all code that uses the library. The following constants are defined (they value behind the name is the default value):
INFORMATION ELEMENTSEach information element structure starts with a field of type:struct uni_iehdr { enum uni_coding coding; /* coding standard */ enum uni_ieact act; /* action indicator */ u_int pass:1; /* PNNI pass along request */ u_int present;/* which optional elements are present */ }; The coding field is the coding standard of
the information element and may be one of
For information elements in PNNI message the pass fields contains the pass along flag from the IE header. The present field is a bit field, which contains four common bits describing the current state of the information element. The rest of the bits are used by the information elements to indicate which of the optional fields of the IE are present. Most of the IE header files contain definitions for those bits. The common bits are: #define UNI_IE_EMPTY 0x80000000 #define UNI_IE_PRESENT 0x40000000 #define UNI_IE_ERROR 0x20000000 #define UNI_IE_XXX 0x10000000 The flag The following macros may be used to test or change these flags:
For each IE type there is an enum uni_ietype
definition of the form unistruct.h contains a union uni_ieall that is the union of all IE structures and a struct uni_ie { enum uni_ietype ietype; union uni_ieall u; }; MESSAGESEach message structure starts with astruct uni_msghdr { struct uni_cref cref; enum uni_msgact act; /* action indicator */ u_int pass:1; /* PNNI pass along request */ }; The cref is the call reference: struct uni_cref { u_int flag; u_int cref; }; There are two special call references:
The pass field is the pass along indicator in the case of PNNI messages. For each message type there is a enum
uni_msgtype definition of the form struct uni_all { enum uni_msgtype mtype; union uni_msgall u; }; CONTEXTSThe header file unimsglib.h contains a definition of a struct uni_context that is used to minimize the number of arguments passed to certain functions and to avoid the use of global variables. This structure has the following public fields (all other fields are used internally by the library):
SEE ALSOlibunimsg(3)STANDARDSThis implementation conforms to the applicable ITU-T recommendations and ATM Forum standards with the exception of some limitations (see the Configuration section).AUTHORSHartmut Brandt ⟨harti@FreeBSD.org⟩
Visit the GSP FreeBSD Man Page Interface. |