beautypg.com

Figurec2 message format, Tablec2 fields in the m_proto mblock – Sun Microsystems 3U User Manual

Page 113

background image

Appendix C

Application Programmer’s Interface

91

The Q.93B driver is an M-to-N mux STREAMS driver. Multiple application programs
can be plumbed above the driver, and multiple physical interfaces can be connected
below Q.93B. Applications can access any or all of the physical interfaces, and
messages received on the physical interfaces can be directed to any of the
applications. To direct messages through the Q.93B driver, messages from
applications must include a physical interface name to identify the outgoing
interface and an SAP to identify the application to which the message should be
directed on the receiving host.

Send messages to Q.93B by applications according to the format illustrated in

FIGURE C-1

; kernel applications use

putnext(9f)

to send the mblocks shown, and

user applications send two corresponding

strbufs

using

putmsg(2)

.

FIGURE C-2

Message Format

The structure included in the M_PROTO mblock is defined as the

qcc_hdr_t

structure in the

header file. In the second mblock, the Q.2931

header portion (9 bytes) of the Q.2931 message is blank and is later filled in by the

TABLE C-2

Fields in the M_PROTO mblock

Message

Explanation

Ifname

Null-terminated string containing the device name

Call_ID

Unique number from Q.93B for each interface.

Type

Same as the Q.2931 message type except there is a local non-Q.2931
message type

SETUP_ACK

. The

SETUP_ACK

message is used to provide

the

Call_ID

to the user.

Error_Code

Error returned from Q.93B when an erroneous message is received from
the user. The same mblock chain is returned to the user with the

Error_Code

field set. The user must always clear this field

Call_Tag

Number assigned by the calling application layer to a

SETUP

message.

When a

SETUP_ACK

is received from Q.93B, the

Call_ID

has been set;

use the

Call_Tag

field to identify the acknowledgment (ack) with the

original request. From that point on, use the

Call_ID

value to identify

the call.

Ifname

Call_ID

Type

Error_Code

M_PROTO

M_DATA

mp

Q.2931 Message

(9)

(16)

Information
Elements (IEs)

Call_Tag

R

S

V