| OpenSS7 SS7 for the Common Man | © Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved. Last modified: Sat, 01 Nov 2008 10:42:33 GMT | ||||||||||||||||
| |||||||||||||||||
| Description: Manual PageKeywords: 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 compactpciTIMODSection: OpenSS7 XTI/TLI Networking Devices (4)Updated: 2008-10-31 Index Return to Main Contents NAMEtimod - a STREAMS XTI/TLI compatability interfaceSYNOPSIS#include <sys/stropts.h>
DESCRIPTIONtimod
The purpose of the timod module is provide thread-safe atomic operations in support fot he XTI/TLI library. timod does not alter any messages passed with putmsg(2) or putpmsg(2s), or received with getmsg(2) or getpmsg(2s). timod simply intercepts responses to its own primitives sent downstream as a result of an ioctl(2) command. Unlike the sockmod(4) module, timod makes no adjustments to the stream head for read(2) options (see I_SRDOPT under streamio(7)). IOCTLSThe following subsections detail the ioctl(2) commands that are made available by pushing the timod module. For additional information on the T_primitive structures, see tpi(7). timod only supports the I_STR version of the IO controls and does not support transparent IO controls. For more information, see the I_STR subsection of streamio(7). TI_GETINFO (('T' << 8) + 140)arg is a pointer to a strioctl structure passing in a T_info_req structure, formatted as follows:
struct T_info_req {
t_scalar_t PRIM_type; /* always T_INFO_REQ */
};
and returning a T_info_ack structure, formatted as follows:
struct T_info_ack {
t_scalar_t PRIM_type; /* always T_INFO_ACK */
t_scalar_t TSDU_size; /* max TSDU size */
t_scalar_t ETSDU_size; /* max ETSDU size */
t_scalar_t CDATA_size; /* Connect data size */
t_scalar_t DDATA_size; /* Discon data size */
t_scalar_t ADDR_size; /* TSAP size */
t_scalar_t OPT_size; /* options size */
t_scalar_t TIDU_size; /* TIDU size */
t_scalar_t SERV_type; /* service type */
t_scalar_t CURRENT_state; /* current state */
t_scalar_t PROVIDER_flag; /* provider flags */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_info_ack structure. TI_OPTMGMT (('T' << 8) + 141)arg is a pointer to a buffer passing in a T_optmgmt_req structure, formatted as follows:
struct T_optmgmt_req {
t_scalar_t PRIM_type; /* always T_OPTMGMT_REQ */
t_scalar_t OPT_length; /* options length */
t_scalar_t OPT_offset; /* options offset */
t_scalar_t MGMT_flags; /* flags */
};
and returning a T_optmgmt_ack structure, formatted as follows:
struct T_optmgmt_ack {
t_scalar_t PRIM_type; /* always T_OPTMGMT_ACK */
t_scalar_t OPT_length; /* options length */
t_scalar_t OPT_offset; /* options offset */
t_scalar_t MGMT_flags; /* flags */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_optmgmt_ack structure. TI_BIND (('T' << 8) + 142)arg is a pointer to a buffer passing in a T_bind_req structure, formatted as follows:
struct T_bind_req {
t_scalar_t PRIM_type; /* always T_BIND_REQ */
t_scalar_t ADDR_length; /* length of address */
t_scalar_t ADDR_offset; /* offset of address */
t_uscalar_t CONIND_number; /* requested number of connect
indications to be queued */
};
and returning a T_bind_ack structure, formatted as follows:
struct T_bind_ack {
t_scalar_t PRIM_type; /* always T_BIND_ACK */
t_scalar_t ADDR_length; /* length of address */
t_scalar_t ADDR_offset; /* offset of address */
t_uscalar_t CONIND_number; /* connect indications to be queued */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_bind_ack structure. TI_UNBIND (('T' << 8) + 143)arg is a pointer to a buffer passing in a T_unbind_req structure, formatted as follows:
struct T_unbind_req {
t_scalar_t PRIM_type; /* always T_UNBIND_REQ */
};
and returning a T_ok_ack structure, formatted as follows:
struct T_ok_ack {
t_scalar_t PRIM_type; /* always T_OK_ACK */
t_scalar_t CORRECT_prim; /* primitive */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_ok_ack structure. TI_GETMYNAME (('T' << 8) + 144)arg is a pointer to a buffer passing in a T_addr_req structure, formatted as follows:
struct T_addr_req {
t_scalar_t PRIM_type; /* always T_ADDR_REQ */
};
and returning a T_addr_ack structure, formatted as follows:
struct T_addr_ack {
t_scalar_t PRIM_type; /* always T_ADDR_ACK */
t_scalar_t LOCADDR_length; /* length of local address */
t_scalar_t LOCADDR_offset; /* offset of local address */
t_scalar_t REMADDR_length; /* length of remote address */
t_scalar_t REMADDR_offset; /* offset of remote address */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_addr_ack structure. TI_GETPEERNAME (('T' << 8) + 145)arg is a pointer to a buffer passing in a T_addr_req structure, formatted as follows:
struct T_addr_req {
t_scalar_t PRIM_type; /* always T_ADDR_REQ */
};
and returning a T_addr_ack structure, formatted as follows:
struct T_addr_ack {
t_scalar_t PRIM_type; /* always T_ADDR_ACK */
t_scalar_t LOCADDR_length; /* length of local address */
t_scalar_t LOCADDR_offset; /* offset of local address */
t_scalar_t REMADDR_length; /* length of remote address */
t_scalar_t REMADDR_offset; /* offset of remote address */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_addr_ack structure. TI_SETMYNAME (('T' << 8) + 146)arg is a pointer to a buffer passing in a T_conn_res structure, formatted as follows:
struct T_conn_res {
t_scalar_t PRIM_type; /* always T_CONN_RES */
t_scalar_t ACCEPTOR_id; /* reponse queue ptr */
t_scalar_t OPT_length; /* options length */
t_scalar_t OPT_offset; /* options offset */
t_scalar_t SEQ_number; /* sequence number */
};
following by any connection response data.
and returning a T_ok_ack structure, formatted as follows:
struct T_ok_ack {
t_scalar_t PRIM_type; /* always T_OK_ACK */
t_scalar_t CORRECT_prim; /* primitive */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_ok_ack structure. TI_SETPEERNAME (('T' << 8) + 147)arg is a pointer to a buffer passing in a T_conn_req structure, formatted as follows:
struct T_conn_req {
t_scalar_t PRIM_type; /* always T_CONN_REQ */
t_scalar_t DEST_length; /* dest addr length */
t_scalar_t DEST_offset; /* dest addr offset */
t_scalar_t OPT_length; /* options length */
t_scalar_t OPT_offset; /* options offset */
};
followed by any connection request data.
and returning a T_ok_ack structure, formatted as follows:
struct T_ok_ack {
t_scalar_t PRIM_type; /* always T_OK_ACK */
t_scalar_t CORRECT_prim; /* primitive */
};
or an error return value. See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_ok_ack structure. TI_SYNC (('T' << 8) + 148)arg is a pointer to a buffer passing in a ti_sync_req structure, formatted as follows:
struct ti_sync_req {
u_int32_t tsr_flags;
};
and returning a ti_sync_ack structure, formatted as follows:
struct ti_sync_ack {
t_scalar_t PRIM_type;
t_scalar_t TSDU_size;
t_scalar_t ETSDU_size;
t_scalar_t CDATA_size;
t_scalar_t DDATA_size;
t_scalar_t ADDR_size;
t_scalar_t OPT_size;
t_scalar_t TIDU_size;
t_scalar_t SERV_type;
t_scalar_t CURRENT_state;
t_scalar_t PROVIDER_flag;
t_uscalar_t tsa_qlen;
u_int32_t tsa_flags;
};
or an error return value. See ``RETURN VALUES,'' below. Field tsr_flags can contain zero or more of the following flags bitwise OR'ed together:
Field tsa_flags can contain zero or more of the following flags bitwise OR'ed together:
The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned ti_sync_ack structure. TI_GETADDRS (('T' << 8) + 149)arg is a pointer to a buffer passing in a T_addr_req structure, formatted as follows:
struct T_addr_req {
t_scalar_t PRIM_type; /* always T_ADDR_REQ */
};
and returning a T_addr_ack structure, formatted as follows:
struct T_addr_ack {
t_scalar_t PRIM_type; /* always T_ADDR_ACK */
t_scalar_t LOCADDR_length; /* length of local address */
t_scalar_t LOCADDR_offset; /* offset of local address */
t_scalar_t REMADDR_length; /* length of remote address */
t_scalar_t REMADDR_offset; /* offset of remote address */
};
or an error return value, See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_addr_ack structure. TI_CAPABILITY (('T' << 8) + 150)arg is a pointer to a buffer passing in a T_capability_req structure, formatted as follows:
struct T_capability_req {
t_scalar_t PRIM_type; /* T_CAPABILITY_REQ */
t_uscalar_t CAP_bits1; /* capability bits 1 */
};
and returning a T_capability_ack structure, formatted as follows:
struct T_capability_ack {
t_scalar_t PRIM_type; /* T_CAPABILITY_ACK */
t_uscalar_t CAP_bits1; /* capability bits #1 */
struct T_info_ack INFO_ack; /* info acknowledgement */
t_uscalar_t ACCEPTOR_id; /* accepting endpoint id */
};
or an error return value, See ``RETURN VALUES,'' below. The buffer passed in the strioctl structure (ic_dp) must be of sufficient size (ic_len) to hold the returned T_capability_ack structure. RETURN VALUESWhen timod ioctls succeed, they return zero and the returned TLI message in the area pointed to by the ic_dp member of the strioctl structure pointed to by arg. When timod ioctls fail due to a T_ERROR_ACK being returned from the underlying TLI driver, timod returns a concatentation of the UNIX_error and the TLI_error as follows: ((p->UNIX_error << 8) + p->TLI_error). When the ioctl fails, timod returns -1 and sets errno(3) to an appropriate error number. See streamio(7) for a list of error numbers returned by the I_STR command. ERRORSWhen timod ioctl calls fail, timod returns -1 and sets the errno(3) to an appropriate error number. See streamio(7) for a list of error numbers returned by the I_STR command. MODULESSEE ALSOioctl(2), streamio(7), tpi(7), sockmod(4), test-timod(8). BUGStimod has been tested with the test-timod(8) conformance test suite. COMPATIBILITYThis Linux Fast-STREAMS[1] implementation of timod was backported to LiS[2] to repair deficiencies in the previous LiS implementation. timod is compatible with XNS 5.2[3] and SVR 4.2[4], and descriptions for UnixWare7®[5], AIX®[6], DigitalUNIX®[7], HP-UX®[8], Solaris®[9], SUPER-UX®[10], with the following portability considerations:
Compatibility is tested using the test-timod(8) test case executable and the OpenSS7 XTI/TLI Networking autotest test suite. CONFORMANCESVID[11], XID[12], XNS 5.2[3], SUSv2[13], SUSv3/POSIX[14], Conformance is tested using the test-timod(8) test case executable and the OpenSS7 XTI/TLI Networking autotest test suite. HISTORYtimod first appeared in SVR 3[15] REFERENCES
TRADEMARKS
Other trademarks are the property of their respective owners. IDENTIFICATION
Copyright©1997-2008OpenSS7 Corp.
All Rights Reserved.
Index
This document was created by man2html, using the manual pages. Time: 00:30:43 GMT, May 19, 2013 | ||||||||||||||||
| OpenSS7 SS7 for the Common Man |
| ||||||||||||||||
| Last modified: Sat, 01 Nov 2008 10:42:33 GMT © Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved. |