OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Sat, 01 Nov 2008 10:42:39 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of TPI-IP
Quick Links

Download

SCTP

SIGTRAN

SS7

Hardware

STREAMS

Asterisk

Related

Package

Manual

FAQ

Man Pages

Applications

SS7 Stack

ISDN Stack

SIGTRAN Stack

VoIP Stack

MG Stack

SS7/ISDN Devices

IP Transport

Embedded Systems

OS

Documentation

FAQ

SIGTRAN

Design

Conformance

Performance

References

Man Pages

Manuals

Papers

Home

Overview

Status

Documentation

Resources

About

News

Manpage of TPI-IP

Description: Manual Page

Keywords: 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 compactpci


TPI-IP

Section: Transport Provider Interface (TPI) (7)
Updated: 2008-10-31
Index Return to Main Contents

NAME

tpi_ip - Transport Provider Interface (TPI) - Internet Protocol (IP) Corrigendum

SYNOPSIS

#include <sys/tihdr.h>
#include <sys/tpi_ip.h>

int ip_stream = open(``/dev/rawip'', flags);
int ip_stream = open(``/dev/rawip2'', flags);

DESCRIPTION

TPI-IP
provides a Stream supporting the Transport Provider Interface (TPI)[1], tpi(7), to the Internet Protocol (IP)[2..6], ip(7), protocol service interface using the T-primitives of the tpi(7). This interface is intended solely for use by user programs or protocol modules requiring the common tpi(7). interface, such as the xti(3) and sockets(3) library.

The difference between the /dev/rawip and /dev/rawip2 devices is that the later is the second generation STREAMS RAWIP driver fully implemented in STREAMS(4), where the former opens a socket internal to the kernel and simply provides a TPI service interface to that socket. Also, the /dev/rawip2 driver supports pseudo-connection-oriented modes whereas the /dev/rawip driver only supports pure connectionless mode.

ADDRESS FORMATS

The IP address format is structured as follows:

struct sockaddr_in {
    sa_family_t         sin_family;  /* Address family */
    unsigned short int  sin_port;    /* Port number */
    struct in_addr      sin_addr;    /* Internet address */
    /* padding */
};

The sockaddr_in structure contains the following members:

sin_family
The address family. Always set to AF_INET or AF_UNSPEC.
sin_port
The port number of the transport endpoint.
sin_addr
The IP address of the transport endpoint.
(padding)
Padding to pad the size of the sockaddr_in structure to the size of a sockaddr structure.

The structure is padded to the size of a sockaddr structure.

OPTIONS

Options are formatted according to the t_opthdr structure described in xti(3). A UDP transport provider compliant to this specification supports none, all or any subset of the options defined here. An implementation may restrict the use of any of these options by offering them only in a privileged or read-only mode.

TPI-UDP provides options at the XTI_GENERIC and T_INET_IP option levels as described in the subsections that follow. Of the T_INET_IP level protocol options, none of the options are of end-to-end significance.

XTI_GENERIC

Options at this level are specific to the X/Open Transport Interface (XTI/TLI) and are common to all transport providers. For more information, see xti(3).

The options defined with the option level XTI_GENERIC are as follows:

XTI_DEBUG
Sets debugging flags for the Stream. This option is formatted as an array of t_uscalar_t. Legal values are implementation defined. For more information, see xti(3).
XTI_LINGER
Sets whether, and the amount of time if, the Stream will linger waiting for unsent data to be delivered. This option is formatted as a t_linger structure as follows:

struct t_linger {
    t_scalar_t l_onoff;    /* option on/off */
    t_scalar_t l_linger;   /* linger time */
};

l_onoff
Specifies whether to linger (T_YES) or not (T_NO). Legal values are T_YES and T_NO.
l_linger
Specifies the amount of time (in seconds) to linger. Legal values are T_INFINITE, T_UNSPEC and all positive numbers including zero.
For more information, see xti(3).
XTI_RCVBUF
Specifies the size, in bytes, of the receive buffer. This option is formatted as a t_uscalar_t. Legal values are all positive, non-zero numbers. For more information, see xti(3).
XTI_RCVLOWAT
Specifies the low water mark above which received data will be indicated and delivered to the user. This option is formatted as t_uscalar_t. Legal values are all positive, non-zero numbers. For more information see xti(3).
XTI_SNDBUF
Specifies the size, in bytes, of the transmit buffer. This option is formatted as a t_uscalar_t. Legal values are all positive, non-zero numbers. For more information see xti(3).
XTI_SNDLOWAT
Specifies the low water mark above which queued data will be transmitted to the peer. This option is formatted as a t_uscalar_t. Legal values are all positive, non-zero numbers. For more information see xti(3).

T_INET_IP

T_IP_OPTIONS
This option is used to set (retrieve) the OPTIONS field of each outgoing (incoming) IP datagram. It value is a string of octets composed of a number of T_IP options, whose format matches those defined in the IP specification with one exception: the list of addresses for the source routing option must include the first-hop gateway at the beginning of the list of gateways. The first-hop gateway address will be extracted from the option list and the size adjusted accordingly before use.

The option is disabled if it is specified with ``no value''; that is, with an option header only.

The functions t_connect(3) (in synchronous mode), t_listen(3), t_rcvconnect(3) and t_rcvudata(3) return the OPTIONS field, if any, of the received IP datagram associated with this call. The function t_rcvuderr(3) returns the OPTIONS field of the data unit previously sent that produced the error. The function t_optmgmt() with T_CURRENT set retrieves the currently effective T_IP_OPTIONS that is sent with outgoing datagrams.

Common application never need this option. It is mainly used for network debugging and control purposes.

This option is formated as an array (maximum 40 elements) of unsigned char. This option is an absolute requirement. This option has end-to-end significance.

T_IP_TOS
This option is used to set (retrieve) the type-of-service filed of an outgoing (incoming) T_IP datagram. This field can be constructed by any OR'ed combination of one of the precedence flags and the type-of-service flags.

SET_TOS(prec, tos)

The option value is set using the macro SET_TOS(prec, tos), where prec is set to one of the precedence flags and tos to one or an OR'ed combination of the type-of-service flags. SET_TOS() returns the option value.

prec
The precedence flags specify datagram precedence, allowing senders to indicate the importance of each datagram. They are intended for Department of Defence applications. Applications using T_IP_TOS but not the precedence level should use the value of T_ROUTINE for precedence. prec can be one of the following values:
T_ROUTINE
routine.
T_PRIORITY
priority precedence.
T_IMMEDIATE
immediate precedence.
T_FLASH
flash precedence.
T_OVERRIDEFLASH
flash override precedence.
T_CRITIC_ECP
flash override override precedence.
T_INETCONTROL
internetwork control.
T_NETCONTROL
network control.
tos
The type-of-service flags specify the type of service the IP datagram desires. tos can be one of the following values:
T_NOTOS
no type of service.
T_LDELAY
low delay.
T_HITHRPT
high throughput.
T_HIREL
high reliability.
T_LOCOST
low cost.

The functions t_connect(3), t_listen(3), t_rcvconnect(3) and t_rcvudata(3) return the type-of-service

This option is formatted as an unsigned char. This option is an absolute requirement. This option has end-to-end significance.

T_IP_TTL
This option is used to set the time-to-live field in an outgoing IP datagram. It specifies how long, in seconds, the datagram is allowed to remain in the Internet. The time-to-live field of an incoming datagram is not returned by any function (since it is not an option with end-to-end significance).

This option is formatted as an unsigned char. It can take on values between 0 and 255. This option is an absolute requirement. This option has local significance.

T_IP_REUSEADDR
Many TCP implementations do not allow the user to bind more than one transport endpoint address with identical port numbers. If T_IP_REUSEADDR is set to T_YES this restriction is relaxed in the sense that it is now allowed to bind an transport endpoint to an address with a port number and an underspecified Internet address (``wild card'' address) and further endpoints to addresses with the same port number and (mutually exclusive) fully specified Internet addresses.

This option is formatted as an unsigned int. It can take on values T_YES or T_NO. This option is an absolute requirement. This option has local significance.

T_IP_DONTROUTE
This option indicates that outgoing messages should bypass the standard routing facilities. It is mainly used for testing and development.

This option is formatted as an unsigned int. It can take on values T_YES or T_NO. This option is an absolute requirement. This option has local significance.

T_IP_BROADCAST
This option requests permission to send broadcast datagrams. It was defined to make sure that broadcasts are not generated by mistake. The use of this option is often restricted to privileged users.

This option is formated as an unsigned int. It can take on values T_YES or T_NO. This option is an absolute requirement. This option has local significance.

LOCAL MANAGEMENT INTERFACE

Local management interface primitives apply to both the true connectionless mode and the pseudo-connection-oriented modes of operation. These primitives are used to query, control options of, and bind addresses to, the local transport service interface. See tpi(7) for more information on the local management service interface primitives.

T_INFO_REQ(7)

This primitive is interpreted as in tpi(7).

T_INFO_ACK(7)

This primitive is interpreted as in tpi(7).

TSDU_size
The TPI-IP provider supports a maximum payload size of 65535 bytes minus 40 bytes of IP header, or 65495 bytes.
ETSDU_size
The TPI-IP provider does not support the concept of expedited data. This field returns T_INVALID, and any attempt to send expedited data using the T_EXDATA_REQ(7) primitive will return [TNOTSUPPORT].
CDATA_size
The TPI-IP provider supports the concept of connection data in pseudo-connect-oriented mode only. In connectionless mode, this field returns T_INVALID. In pseudo-connection-oriented mode, this field returns 65495, as does the TSDU_size field, above.
DDATA_size
The TPI-IP provider supports the concept of disconnection data in pseudo-connect-oriented mode only. In connectionless mode, this field returns T_INVALID. In pseudo-connection-oriented mode, this field returns 65495, as does the TSDU_size field, above.
ADDR_size
The maximum size of an IP address. This field returns the size of a sockaddr_in structure. This field may return a larger number at a later date if TPI-IP ever supports multi-homing.
OPT_size
This is the maximum size of the OPT_length field in T-primitives which support options. This value returns 65535 in the current implementation.
TIDU_size
This is the maximum size of the interface data unit, which is the maximum size of data that can be transferred across the interface using a single getmsg(2) or putmsg(2) system call. This size is always less than or equal to the TSDU_size, above. In the current implementation, the size is 65495 as is the TSDU_size, above.
SERV_type
The service type is one of the following:
T_CLTS
Connectionless mode service. The TPI-IP provider supports connectionless mode service by default. When a Stream is first opened, T_CLTS will be returned. After a successful bind or connect operation, the value returned may be T_COTS, instead.
T_COTS
Connection-oriented mode service without orderly release. The TPI-IP provider supports a pseudo-connection-oriented mod service of this type.
T_COTS_ORD
Connection-oriented mode service with orderly release. The TPI-IP provider does not support orderly release and this service type will not be returned in the T_INFO_ACK(7).
CURRENT_state
The current state of the service interface as described in tpi(7).
PROVIDER_flag
Provider flags are a bitwise OR of zero or more of the following:
T_SNDZERO
When set, indicates that the transport user is permitted to send data with a message length of zero (0). The TPI-IP provider does not support the transmission of zero length TSDUs. This flag will be clear.
XPG4_1
Indicates that the transport provider conforms to XTI in XTP4 and supports the new primitives T_ADDR_REQ(7) and T_ADDR_ACK(7). This flag is normally set.

T_ADDR_REQ(7)

This primitive is interpreted as in tpi(7).

T_ADDR_ACK(7)

This primitive is interpreted as in tpi(7).

LOCADDR_length and LOCADDR_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structure that describes the TPI-IP addresses to which the Stream is bound. If the Stream is not in a bound state, then LOCADDR_length and LOCADDR_offset both return zero (0).
REMADDR_length and REMADDR_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structure that describes the TPI-IP addresses to which the Stream is connected. If the Stream is not in a connected or connecting state, then REMADDR_length and REMADDR_offset return zero (0).
Note that the TPI-IP provider is only in a connected or connecting state when operating in the pseudo-connection-oriented mode. The pseudo-connection-oriented mode is only supported by the second generation RAWIP driver, rawip2(4).

T_CAPABILITY_REQ(7)

This primitive is interpreted as in tpi(7).

T_CAPABILITY_ACK(7)

This primitive is interpreted as in tpi(7), and contains the T_info_ack(7) structure interpreted as described under T_INFO_ACK , above.

T_BIND_REQ(7)

This primitive is interpreted as in tpi(7).

ADDR_length and ADDR_offset
Specifies the length and offset from the beginning of the message block of the sockaddr_in structure that contains the TPI-IP address to bind. The TPI-IP provider supports missing bind addresses, wildcard addresses and the address INADDR_ANY. This field can currently only contain zero or one address.
CONIND_number
Specifies the number of connection indications. Specifying a non-zero number of connection indications will place the provider in the pseudo-connection-oriented mode. Any packet received from a unique source address will generate a connection indication accompanied by data. Connection indications can be accepted with or without data or refused with or without data. This number specifies the maximum number of outstanding connection indications (those that are neither accepted nor refused) that the provider will deliver.

T_BIND_ACK(7)

This primitive is interpreted as in tpi(7).

ADDR_length and ADDR_offset
Indicates the length and the offset from the beginning of the message block of the sockaddr_in structure that contains the TPI-IP address that was bound. This field can currently only contain one address.
The bound address, sin_addr, returned in this field may be INADDR_ANY if INADDR_ANY was requested, or no address was requested with the bind.
The sin_port component of the address will indicate the bound protocol number. If no address was provided on the bind, the bound protocol number will be that of UDP (protocol number 17).
CONIND_number
Indicates the negotiated number of connection indications. This is normally the same value as requested; however, if the user requests a number that is considered too large, the number might be a more conservative value.
Note that a non-zero number is returned in this field only if the provider is in the pseudo-connection-oriented mode.

T_UNBIND_REQ(7)

This primitive is interpreted as in tpi(7).

T_OK_ACK(7)

This primitive is interpreted as in tpi(7).

T_ERROR_ACK(7)

This primitive is interpreted as in tpi(7).

T_OPTMGMT_REQ(7)

This primitive is interpreted as in tpi(7) with options described under OPTIONS , above.

T_OPTMGMT_ACK(7)

This primitive is interpreted as in tpi(7) with options described under OPTIONS , above.

PROTOCOL SERVICE INTERFACE

Protocol service interface primitives apply to either the true connectionless mode or the pseudo-connection-oriented modes of operation. These primitives are used to form connections, control options, and exchange transport service data units between transport users. See tpi(7) for more information on the protocol service interface primitives.

Note that connection-oriented protocol service interface primitives are only supported by the second generation RAWIP driver, raqip2(4), and are only available when the interface has been placed into the pseudo-connection-oriented mode.

T_UNITDATA_REQ(7)

This primitive is interpreted as in tpi(7) in the connectionless mode.

DEST_length and DEST_offset
Specifies the length and offset from the beginning of the message block of the sockaddr_in structure containing the destination IP address to which the message is to be sent.
OPT_length and OPT_offset
Specifies the length and offset from the beginning of the message block of the options requested for the packet. See OPTIONS , above. The only options that have an affect of the IP packets send by the TPI-IP provider are as follows:
T_IP_OPTIONS
Specifying a value for this option will affect the IP options in the outgoing packet. The value specified will be used instead of the default for the Stream. (In the current implementation, this option is not supported.)
T_IP_TOS
Specifying a value for this option will affect the type of service field in the outgoing packet. The value specified will be used instead of the default for the Stream.
T_IP_TTL
Specifying a value for this option will affect the time to live field in the outgoing packet. The value specified will be used instead of the default for the Stream.
T_IP_ADDR
Specifying a value for this option will affect the source address of the associated outgoing packet. The value specified will be used instead of the default for the outgoing network interface.

T_UNITDATA_IND(7)

This primitive is interpreted as in tpi(7) in the connectionless mode.

SRC_length and SRC_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structure containing the source address from which the IP packet was sent.
OPT_length and OPT_offset
Indicates the length and offset from the beginning of the message block of the options present in the received packet. See OPTIONS , above. The only options that are indicated by the TPI-IP provider are as follows:
T_IP_OPTIONS
Indicates the IP options that were present in the received packet. If no IP options were present, this option value will not be indicated. This value does not affect the value used for outgoing packets. (In the current implementation, this option is not supported.)
T_IP_TOS
Indicates the value of the type of service field from the received packet. This value does not affect the value used for outgoing packets.
T_IP_TTL
Indicates the value of the time to live field from the received packet. This value does not affect the value used for outgoing packets.
T_IP_ADDR
Indicates the value of the IP destination (local) address from the received packet. This value does not affect the value used for outgoing packets.

T_UDERROR_IND(7)

This primitive is interpreted as in tpi(7) in the connectionless mode.

DEST_length and DEST_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structure that contains the TPI-IP address to which the unit data that encountered the error was sent.
OPT_length and ' OPT_offset
Indicates the length and offset from the beginning of the message block of the options associated with the unit data that encountered the error. See OPTIONS , above.
ERROR_type
Error types in connectionless mode are a combination of the ICMP error type in the second least significant byte combined with the ICMP error code in the least significant byte. Values are as follows:


CodeTypeValue

ICMP_DEST_UNREACHICMP_NET_UNREACH0x0300
ICMP_HOST_UNREACH0x0301
ICMP_PROT_UNREACH0x0302
ICMP_PORT_UNREACH0x0303
ICMP_FRAG_NEEDED0x0304
ICMP_SR_FAILED0x0305
ICMP_NET_UNKNOWN0x0306
ICMP_HOST_UNKNOWN0x0307
ICMP_HOST_ISOLATED0x0308
ICMP_NET_ANO0x0309
ICMP_HOST_ANO0x030a
ICMP_NET_UNR_TOS0x030b
ICMP_HOST_UNR_TOS0x030c
ICMP_PKT_FILTERED0x030d
ICMP_PREC_VIOLATION0x030e
ICMP_PREC_CUTOFF0x030f

ICMP_SOURCE_QUENCH-0x0400

ICMP_TIME_EXCEEDEDICMP_EXC_TTL0x0b00
ICMP_EXC_FRAGTIME0x0b01

T_CONN_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode, with the following exceptions:

1.
The primitive can be issued on a Stream that has not yet been bound; i.e. that is in the TS_UNBND state. The TPI-IP provider will autobind the Stream to an IP address of INADDR_ANY, and the specified IP protocol number. The resulting Stream will be a pseudo-connection-oriented mode Stream. This is primarily for compatibility with the sockets(3) library, but is also the only way that a protocol can be bound and then pseudo-connection-oriented mode entered. The TPI[1] specification indicates that the response in this situation should be an T_ERROR_ACK(7) primitive with either a [TNOTSUPPORT] or [TOUTSTATE] error.
2.
The primitive can be issued on a Stream that has been bound, but which reports a service type of T_CLTS in the T_INFO_ACK(7) primitive. This, again, is primarily for compatibility with the sockets(3) library. The TPI[1] specification indicates that the response in this situation should be an T_ERROR_ACK(7) primitive with a [TNOTSUPPORT] error.
DEST_length and DEST_offset
Specifies the length and offset from the beginning of the message block of the sockaddr_in structure containing the destination IP address and IP protocol number to which the connection is to be formed.
OPT_length and OPT_offset
Specifies the length and offset from the beginning of the message block of the options requested for the connection. See OPTIONS , above. The only options that have an effect on the IP packets sent by the TPI-IP provider are as follows:
T_IP_OPTIONS
Specifying a value for this option will affect the IP options in the associated outgoing packet and further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default value for the Stream. (In the current implementation, this options is not supported.)
T_IP_TOS
Specifying a value for this option will affect the type of service field in the associated outgoing packet and further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default value for the Stream.
T_IP_TTL
Specifying a value for this option will affect the time to live field in the associated outgoing packet and further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default value for the Stream.
T_IP_ADDR
Specifying a value for this option will affect the source address of the associated outgoing packet and further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default value for the Stream.
Other option values specified with the primitive will be ignored.

T_CONN_CON(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode, with the following exceptions:

1.
The TPI-IP provider does not provider true confirmation of a connection in pseudo-connection-oriented mode. The confirmation is issued automatically by the TPI-IP provider upon receipt of a proper T_CONN_REQ(7) primitive.
RES_length and RES_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structure that contains the responding address, which, in this case, is the same as the requested destination address.
OPT_length and OPT_offset
Indicates the length and offset from the beginning of the message block of the options present in the connection request, T_CONN_REQ(7). See OPTIONS , above. The option values represent negotiation with the local provider only and are not end-to-end. The only options that are indicated by the TPI-IP provider are as follows:
T_IP_OPTIONS
Indicates the IP options that were present in the connection request. If no IP options were present, this option value will not be indicated. This value reflects the value used for outgoing packets. (In the current implementation, this option is not supported.)
T_IP_TOS
Indicates the value of the type of service field from the connection request. This value reflects the value used for outgoing packets.
T_IP_TTL
Indicates the value of the time to live field from the connection request. This value reflects the value used for outgoing packets.
T_IP_ADDR
Indicates the value of the IP source (local) address from the connection request. This value reflects the value used for outgoing packets.
No other option values will be indicated.

T_CONN_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode, with the following exceptions:

1.
The TPI-IP provider does not provider true connection-oriented modes. In pseudo-connection-oriented mode, with a listening Stream, connection indications are synthesized from any received packet that matches the listening Stream and delivered as a connection indication (with data).
SRC_length and SRC_offset
Indicats the length and offset from the beginning of the message block of the sockaddr_in structure containing the source address and protocol number from which the indicated packet was sent.
OPT_length and OPT_offset
Indicates the length and offset from the beginning of the message block of the options present in the packet. See OPTIONS , above. The only options that are indicated by the TPI-IP provider are a follows:
T_IP_OPTIONS
Indicates the IP options that were present in the received packet. If no IP options were present, this option value will not be indicated. This value does not affect the value used for outgoing packets. (In the current implementation, this option is not supported.)
T_IP_TOS
Indicates the value of the type of service field from the received packet. This value does not affect the value used for outgoing packets.
T_IP_TTL
Indicates the value of the time to live field from the received packet. This value does not affect the value used fr outgoing packets.
T_IP_ADDR
Indicates the value of the IP destination (local) address from the received packet. This vlaue does not affect the value used for outgoing packets.
No other options values will be indicated.
SEQ_number
Indicates the sequence number for the connection indication to be used by the TS user in a subsequent T_DISCON_REQ(7) or T_CONN_RES(7) primitive.

T_CONN_RES(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode, with the following exceptions:

1.
The TPI-IP provider does not support true connection-oriented modes: only a pseudo-connection-oriented mode. Accepting a connection indication with this primitive will deliver queued and any further received packets with the same source and destination addresses and protocol number to the accepting Stream.
2.
Default options associated with the Stream are not negotiated end-to-end and are simply set as specified.
ACCEPTOR_id
Specifies the acceptor identifier of the Stream onto which the connection is to be accepted. If the connection is to be accepted on the same Stream upon which the corresponding T_CONN_IND(7) was received, this field should be zero (0). It is an error to accept a connection on the listening Stream if there is more than one connection indication outstanding.
OPT_length and OPT_offset
Specifies the length and offset from the beginning of the message block of the options requested for the connection. See OPTIONS , above. The only options that have an effect on the IP packets sent by the TPI-IP provider are as follows:
T_IP_OPTIONS
Specifying a value for this option will affect the IP options in the associated outgoing packet and for further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default value for the Stream. (In the current implementation, this options is not supported.)
T_IP_TOS
Specifying a value for this option will affect the type of service field in the associated outgoing packet and for further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default for the Stream.
T_IP_TTL
Specifying a value for this option will affect the time to live field in the associated outgoing packet and for further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default for the Stream.
T_IP_ADDR
Specifying a value for this option will affect the source address of the associated outgoing packet and for further packets sent using the T_DATA_REQ(7) primitive. The value specified will become the default for the Stream.
Other option values specified with the primitive will be ignored.
SEQ_number
Specifies the sequence number in the corresponding T_CONN_IND(7) primitive to which this primitive is responding.

T_DATA_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

MORE_flag
The TPI-IP provider does not support segmentation. If this flag is non-zero, an [EPROTO] fatal error will be issued.

T_DATA_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

MORE_flag
The TPI-IP provider does not support segmentation. This flag will always be indicated as zero (0).

T_EXDATA_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode. The TPI-IP provider does not support expedited data in the pseudo-connection-oriented mode. If this primitive is issued by the TS user, a [EPROTO] fatal error will be issued by the provider.

MORE_flag
The TPI-IP provider does not support segmentation. If this flag is non-zero, an [EPROTO] fatal error will be issued.

T_EXDATA_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode. The TPI-IP provider does not support expedited data and will not issue this primitive.

MORE_flag
The TPI-IP provider does not support segmentation. This flag will always be indicated as zero (0).

T_OPTDATA_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

DATA_flag
The TPI-IP provider does not support segmentation. Segmentation of IP packets is performed at a lower layer. Therefore, if the DATA_flag field contains a non-zero value, the provider will issue a fatal [EPROTO] error.
OPT_length and OPT_offset
Specifies the length and offset from the beginning of the message block of the options requested for the packet. See OPTIONS , above. The only options that have an effect on the IP packets sent by the TPI-IP provider are as follows:
T_IP_OPTIONS
Specifying a value for this option will affect the IP options in the associated outgoing packet. The value specified will be used instead of the default for the Stream. (In the current implementation, this option is not supported.)
T_IP_TOS
Specifying a value for this option will affect the type of service field in the associated outgoing packet. The value specified will be used instead of the default for the Stream.
T_IP_TTL
Specifying a value for this option will affect the time to live field in the associated outgoing packet. The value specified will be used instead of the default for the Stream.
T_IP_ADDR
Specifying a value for this option will affect the source addres of the associated outgoing packet. The value specified will be used instead of the default value for the outgoing network interface.
Other option values specified with the primitive will be ignored.

T_OPTDATA_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

DATA_flag
The TPI-IP provider performs reassembly of fragmented IP packets before delivery. Therefore, the DATA_flag will always contain zero (0).
OPT_length and OPT_offset
Indicates the length and offset from the beginning of the message block of the options present in the packet. See OPTIONS , above. The only options that are indicated by the TPI-IP provider are as follows:
T_IP_OPTIONS
Indicates the IP options that were present in the received packet. If no IP options were present, this option value will not be indicated. (In the current implementation, this option is not supported.)
T_IP_TOS
Indicates the value of the type of service field from the received packet.
T_IP_TTL
Indicates the time to live field from the received packet.
T_IP_ADDR
Indicates the value of the IP destination (local) address on which the packet was received.
No other option values will be indicated.

T_DISCON_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

SEQ_number
When used to reject a connection indication, specifies the sequence number from the corresponding T_CONN_IND(7) primitive; zero (0), otherwise.

T_DISCON_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode.

DISCON_reason
Disconnect reasons in pseudo-connection-oriented mode are a combination of the ICMP error type in the second least significant byte combined with the ICMP error code in the least significant byte. Values are as follows:


CodeTypeValue

ICMP_DEST_UNREACHICMP_NET_UNREACH0x0300
ICMP_HOST_UNREACH0x0301
ICMP_PROT_UNREACH0x0302
ICMP_PORT_UNREACH0x0303
ICMP_FRAG_NEEDED0x0304
ICMP_SR_FAILED0x0305
ICMP_NET_UNKNOWN0x0306
ICMP_HOST_UNKNOWN0x0307
ICMP_HOST_ISOLATED0x0308
ICMP_NET_ANO0x0309
ICMP_HOST_ANO0x030a
ICMP_NET_UNR_TOS0x030b
ICMP_HOST_UNR_TOS0x030c
ICMP_PKT_FILTERED0x030d
ICMP_PREC_VIOLATION0x030e
ICMP_PREC_CUTOFF0x030f

ICMP_SOURCE_QUENCH-0x0400

ICMP_TIME_EXCEEDEDICMP_EXC_TTL0x0b00
ICMP_EXC_FRAGTIME0x0b01

SEQ_number
The sequence number of a currently outstanding connection indication to which the disconnect corresponds. This value is non-zero only on a listening Stream for which an outstanding T_CONN_IND(7) primitive has been issued with no T_DISCON_REQ(7) or T_CONN_RES(7) having been issued by the TS user with the same sequence number.

T_ORDREL_REQ(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode; however, the TPI-IP provider does not support orderly release. If the TS user issues this primitive, the provider will negatively acknowledge the primitive with a fatal [EPROTO] error.

T_ORDREL_IND(7)

This primitive is interpreted as in tpi(7) in the pseudo-connection-oriented mode; however, the TPI-IP provider does not support orderly release. The provider will not issue this primitive.

IOCTLS

The TPI-IP provider does not support input-output controls. For a standard set of input-output controls supporting the xti(3) library functions, push the timod(4) module.

ERROR HANDLING

Error handling is in accordance with tpi(7).

ERRORS

Errors are in accordance with tpi(7). They are repeated here as follows:

Error Acknowledgement Codes

The following error codes can be present in the TLI_error field of the T_ERROR_ACK(7) primitive.

[TBADADDR]
Bad address format.
[TBADOPT]
Bad options format.
[TACCES]
Bad permissions.
[TBADF]
Bad file descriptor.
[TNOADDR]
Unable to allocate an address.
[TOUTSTATE]
Would place interface out of state.
[TBADSEQ]
Bad call sequence number.
[TSYSERR]
A system error occurred. The UNIX error code is present in the UNIX_error field of the primitive.
[TBADDATA]
Bad amount of data.
[TBADFLAG]
Bad flags.
[TNOTSUPPORT]
Not supported.
[TADDRBUSY]
Address already in use.
[TPROVMISMATCH]
Not same transport provider.
[TRESQLEN]
Connection acceptor has qlen > 0.
[TRESADDR]
Conn. acceptor bound to different address.

Unitdata Error and Disconnect Codes

The following error codes can be present in the ERROR_type field of a T_UDERROR_IND(7) primitive, or in the DISCON_reason field of a T_DISCON_IND(7) primitive.

[ICMP_DEST_UNREACH/ICMP_NET_UNREACH]
Network unreachable.
[ICMP_DEST_UNREACH/ICMP_HOST_UNREACH]
Host unreachable.
[ICMP_DEST_UNREACH/ICMP_PROT_UNREACH]
UDP protocol unreachable.
[ICMP_DEST_UNREACH/ICMP_PORT_UNREACH]
UDP port unreachable.
[ICMP_DEST_UNREACH/ICMP_FRAG_NEEDED]
Fragmentation needed and none requested.
[ICMP_DEST_UNREACH/ICMP_SR_FAILED]
Source route failed.
[ICMP_DEST_UNREACH/ICMP_NET_UNKNOWN]
Network unknown.
[ICMP_DEST_UNREACH/ICMP_HOST_UNKNOWN]
Host unknown.
[ICMP_DEST_UNREACH/ICMP_HOST_ISOLATED]
Host isolated.
[ICMP_DEST_UNREACH/ICMP_NET_ANO]
[ICMP_DEST_UNREACH/ICMP_HOST_ANO]
[ICMP_DEST_UNREACH/ICMP_NET_UNR_TOS]
Type of service unrecognized by network.
[ICMP_DEST_UNREACH/ICMP_HOST_UNR_TOS]
Type of service unrecognized by host.
[ICMP_DEST_UNREACH/ICMP_PKT_FILTERED]
Packet filtered.
[ICMP_DEST_UNREACH/ICMP_PREC_VIOLATION]
Precedence violation.
[ICMP_DEST_UNREACH/ICMP_PREC_CUTOFF]
Precedence cutoff.
[ICMP_SOURCE_QUENCH]
Source quench (congestion).
[ICMP_TIME_EXCEEDED/ICMP_EXC_TTL]
Time to live exceeded (too many hops).
[ICMP_TIME_EXCEEDED/ICMP_EXC_FRAGTIME]
Fragmentation time exceeded.

NOTICES

RAWIP has several implementations. This manpage is for the INET(4) implementation that provides tpi(7) access to the Linux NET4 version of RAWIP. For more information on the Linux NET4 version, see rawip(7).

SEE ALSO

ip(7), rawip(4), rawip2(4), tpi(7), xti(3), sockets(3).

COMPATIBILITY

The OpenSS7 INET Networking implementation of RAWIP for STREAMS is largely compatible with STREAMS-based implementations such as Lachman or Mentat TCP/IP stacks and Solaris® documentation[7].

CONFORMANCE

This interface conforms to TPI Version 2, Draft 2[1], except where indicated.

HISTORY

The Transport Provider Interface first appeared in SVR 4[8].

REFERENCES

[1]
TPI Revision 2.0.0, Open Group CAE Specification: Transport Provider Interface (TPI) Specification, Revision 2.0.0, Draft 2, 1999, (Berkshire, UK), OpenGroup, Open Group Publication. <http://www.opengroup.org/onlinepubs/>
[2]
RFC 791/STD 5, Internet Protocol --- DARPA Internet Program --- Protocol Specification, September 1981, J. Postel, ed., The Internet Society. (Also ST0005) (Status: STANDARD) (Updated by RFC 1349) <http://www.ietf.org/rfc/rfc0791.txt>
[3]
RFC 1349, Type of Service in the Internet Protocol Suite, July 1992, Philip Almquist, ed., The Internet Society. (Obsoleted by RFC 2474) (Updates RFC 1248, RFC 1247, RFC 1195, RFC 1123, RFC 1122, RFC 1060, RFC 0791) (Status: PROPOSED STANDARD) <http://www.ietf.org/rfc/rfc1349.txt>
[4]
RFC 2474, Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers, December 1998, K. Nichols, S. Blake, F. Baker and D. Black, The Internet Society. (Obsoletes RFC 1455, RFC 1349) (Updated by RFC 3168, RFC 3260) (Status: PROPOSED STANDARD) <http://www.ietf.org/rfc/rfc2474.txt>
[5]
RFC 3168, The Addition of Explicit Congestion Notification (ECN) to IP, September 2001, K. K. Ramakrishnan, ed., The Internet Society. (Obsoletes RFC 2481) (Updates RFC 2474, RFC 2401, RFC 793) (Status: PROPOSED STANDARD) <http://www.ietf.org/rfc/rfc3168.txt>
[6]
RFC 3260, New Terminology and Clarifications for Diffserv, April 2002, D. Grossman, ed., The Internet Society. (Updates RFC 2474, RFC 2475, RFC 2597) (Status: INFORMATIONAL) <http://www.ietf.org/rfc/rfc3260.txt>
[7]
Solaris® 8, Solaris 8 Docmentation, 2001, (Santa Clara, California), Sun Microsystems, Inc., Sun. <http://docs.sun.com/>
[8]
SVR 4, UNIX® System V Release 4 Programmer's Manual, 1990, (Englewood Cliffs, New Jersey), AT&T UNIX System Laboratories, Inc., Prentice Hall.
[9]
Magic Garden, The Magic Garden Explained: The Internals of UNIX® System V Release 4 / An Open Systems Design, 1994, (Australia), B. Goodheart, J. Cox, Prentice Hall. [ISBN 0-13-098138-9]
[10]
Advanced Programming in the UNIX®Environment, 15th edition, December 1997, (Reading, Massachusetts), W. R. Stevens, Addison Wesley. [ISBN 0-201-56317-7]

TRADEMARKS

OpenSS7tm
is a trademark of OpenSS7 Corporation.
Linux®
is a registered trademark of Linus Torvalds.
UNIX®
is a registered trademark of The Open Group.
Solaris®
is a registered trademark of Sun Microsystems.

Other trademarks are the property of their respective owners.

IDENTIFICATION


OpenSS7 INET Networking: Package strinet version 0.9.2.7 released 2008-10-31.

Copyright©1997-2008OpenSS7 Corp. All Rights Reserved.
(See roff source for permission notice.)



Index

NAME
SYNOPSIS
DESCRIPTION
ADDRESS FORMATS
OPTIONS
XTI_GENERIC
T_INET_IP
LOCAL MANAGEMENT INTERFACE
T_INFO_REQ(7)
T_INFO_ACK(7)
T_ADDR_REQ(7)
T_ADDR_ACK(7)
T_CAPABILITY_REQ(7)
T_CAPABILITY_ACK(7)
T_BIND_REQ(7)
T_BIND_ACK(7)
T_UNBIND_REQ(7)
T_OK_ACK(7)
T_ERROR_ACK(7)
T_OPTMGMT_REQ(7)
T_OPTMGMT_ACK(7)
PROTOCOL SERVICE INTERFACE
T_UNITDATA_REQ(7)
T_UNITDATA_IND(7)
T_UDERROR_IND(7)
T_CONN_REQ(7)
T_CONN_CON(7)
T_CONN_IND(7)
T_CONN_RES(7)
T_DATA_REQ(7)
T_DATA_IND(7)
T_EXDATA_REQ(7)
T_EXDATA_IND(7)
T_OPTDATA_REQ(7)
T_OPTDATA_IND(7)
T_DISCON_REQ(7)
T_DISCON_IND(7)
T_ORDREL_REQ(7)
T_ORDREL_IND(7)
IOCTLS
ERROR HANDLING
ERRORS
Error Acknowledgement Codes
Unitdata Error and Disconnect Codes
NOTICES
SEE ALSO
COMPATIBILITY
CONFORMANCE
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 10:37:05 GMT, May 22, 2013
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of TPI-IP
Last modified: Sat, 01 Nov 2008 10:42:39 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.