libngatm uni_decode uni_decode_head uni_decode_body uni_decode_ie_hdr uni_decode_ie_body uni_encode uni_encode_msg_hdr uni_encode_ie uni_encode_ie_hdr uni_check_ie uni_print_cref uni_print_msghdr uni_print uni_print_ie uni_initcx uni_print_cx - ATM signalling library - message handling functions
Begemot ATM signalling library (libngatm, -lngatm)
The function
uni_decode ();
takes a message buffer, interprets it as a UNI message and fills in the
structure pointed to by
Fa msg .
It also takes a context argument and may fill the error array in the context.
It returns -1 if there is an error decoding the message header and
-2 if there is an error decoding the message body.
The function returns 0 on success.
The process of decoding a message can be split up by calling
uni_decode_head ();
and
uni_decode_body (.);
The first of these functions decodes only the message header and the second
one decodes only the information elements.
uni_decode_head ();
returns 0 if it could decode the message header
and -1 if the message could not be decoded (bad protocol
identifier, bad length or broken call reference).
uni_decode_body ();
return 0 on success and -1 for unknown message types or if any
IE had an error.
The function
uni_decode_ie_hdr ();
decodes the next information element header.
It returns the IE type and its length
in the variables pointed to by
type
and
ielen
and stores the decoded header in the structure pointed to by
hdr
The function returns 0 on success and -1 if there were not enough bytes
in the buffer left for a complete IE header.
The function
uni_decode_ie_body ();
decodes the body of an information element.
It is passed the buffer with the message
Fa buf ,
the information element type
Fa type
and length
Fa ielen .
The IE is stored in the union pointed to by
Fa ie .
The function returns -1 on errors and 0 on success.
In any case the most correct
number of bytes is consumed from the input buffer.
The function
uni_encode ();
encodes a UNI message.
It returns -1 if the message type is out of bounds, -3
if the message type is unknown.
The encoding functions for the message types
can return their own error codes.
The function returns 0 on success.
The function
uni_encode_msg_hdr ();
encodes a message header.
The variable pointed to by
Fa mlen
is set to the offset of the message length field from the begin of the
byte stream.
This is needed because the length of the message body will
be known only after all the IEs have been encoded.
Then the length
has to be inserted into this place.
The function returns -1 if the call reference
was bad and 0 on success.
The function
uni_encode_ie ();
encodes one information element.
The function returns 0 on success or -1
on errors.
The function
uni_encode_ie_hdr ();
encodes the four byte IE header.
The argument
Fa len
is the maximum expected length of the information element, not the real length.
The function inserts a 0 in the real length field.
This must be
fixed up by the caller after encoding the IE contents.
The function
return -1 if an empty IE is to be encoded (in this case the length field will
have been set to 4) or 0 otherwise.
The function
uni_check_ie ();
check an information element for consistency.
It returns 0 if the IE seems
ok, -1 otherwise.
The function
uni_print_cref ();
formats a call reference taking into account special call references.
The function
uni_print_msg_hdr ();
formats a message header.
The functions
uni_print ();
and
uni_print_ie ();
print messages and information elements.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |