qcc_pack(9F)
NAME
qcc_pack, qcc_pack_setup, qcc_pack_call_proceeding, qcc_pack_connect, qcc_pack_connect_ack, qcc_pack_release, qcc_pack_release_complete, qcc_pack_status, qcc_pack_status_enq, qcc_pack_restart, qcc_pack_restart_ack, qcc_pack_add_party, qcc_pack_add_party_ack, qcc_pack_add_party_reject, qcc_pack_drop_party, qcc_pack_drop_party_ack − encode Q.2931 message structure information and pack into streams buffers
SYNOPSIS
cc -DKERNEL -D_KERNEL [ flag ... ] file ...
#include <atm/types.h>
#include <atm/qcc.h>
char _depends_on[] = "drv/qcc";
int qcc_pack_setup(qcc_setup_t ∗msgp);
int qcc_pack_call_proceeding(qcc_call_proc_t ∗msgp);
int qcc_pack_connect(qcc_connect_t ∗msgp);
int qcc_pack_connect_ack(qcc_connect_ack_t ∗msgp);
int qcc_pack_release(qcc_release_t ∗msgp);
int qcc_pack_release_complete(qcc_release_complete_t ∗msgp);
int qcc_pack_status_enq(qcc_status_enq_t ∗msgp);
int qcc_pack_status(qcc_status_t ∗msgp);
int qcc_pack_restart(qcc_restart_t ∗msgp);
int qcc_pack_restart_ack(qcc_restart_ack_t ∗msgp);
int qcc_pack_add_party(qcc_add_party_t ∗msgp);
int qcc_pack_add_party_ack(qcc_add_party_ack_t ∗msgp);
int qcc_pack_add_party_reject(qcc_add_party_reject_t ∗msgp);
int qcc_pack_drop_party(qcc_drop_party_t ∗msgp);
int qcc_pack_drop_party_ack(qcc_drop_party_ack_t ∗msgp);
MT-LEVEL
Safe.
AVAILABILITY
The functionality described in this man page is available in the SUNWatma package included with the SunATM adapter board. The -DKERNEL and -D_KERNEL flags must be included to indicate that the application should run in kernel space, and the qcc driver must be loaded (this requirement is expressed in the code using the "depends_on" line shown in the synopsis).
DESCRIPTION
These functions take message structures as input and encode the information contained in the structure to create a Q.2931 message, which is then packed into mblk_t structures. The Q.2931 protocol is used for ATM signalling; a full description of the message format and use can be found in the ATM Forum’s User Network Interface Specification, V3.0 or V3.1. The encoded messages will conform to the version of the UNI Specification which is configured on the indicated interface. The functions may be used by processes which are running in kernel space.
Message structures should be filled using the qcc_create(9F) and qcc_set_ie(9F) functions before calling qcc_pack functions.
In general, no error checking is performed on the data that is passed in. Whatever data is contained in the message structure will be placed in the encoded message without examination.
Each function requires 1 parameter: msgp, which is a pointer to the appropriate message structure.
Two mblk_t structures are allocated and linked by each of the functions (their format is shown in the following diagram). The pointer that is returned points to the M_PROTO block, and may then be passed downstream with the putq(9F) command.
M_PROTO M_DATA
_____________ ___________________________
--->| |--->| | | |
| IF_Name | | Q.2931 Message | |
| Call_ID | | | | |
| Type | | | | |
| Error | | | Information | |
| Call_Tag | | (9) | Elements | (16)|
|_____________| |_____|_______________|_____|
The information in the message structure passed in to each function is used to fill in the data portions of these two mblks.
RETURN VALUES
All functions return a pointer to an mblk_t. If the function is not successful, the pointer will be NULL.
EXAMPLES
For an example using qcc_pack_setup, see the example in the qcc_create(9F) man page.
SEE ALSO
qcc_util(3), qcc_create(9F), qcc_set_ie(9F), q93b(7)
"ATM User-Network Interface Specification, V3.0," ATM Forum.
NOTES
This API is an interim solution until the ATM Forum has standardized an API. At that time, Sun will implement that API, and support for the Q.2931 Call Control library may not be continued.
SunOS ATM_2.0 — Last change: 30 Nov 1995