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.
This primitive is interpreted as in
tpi(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.
This primitive is interpreted as in
tpi(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).
This primitive is interpreted as in
tpi(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.
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.
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.
This primitive is interpreted as in
tpi(7).
This primitive is interpreted as in
tpi(7).
This primitive is interpreted as in
tpi(7).
This primitive is interpreted as in
tpi(7)
with options described under
OPTIONS ,
above.
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.
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.
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.
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:
|
| Code | Type | Value
|
|
| ICMP_DEST_UNREACH | ICMP_NET_UNREACH | 0x0300
|
| ICMP_HOST_UNREACH | 0x0301
|
| ICMP_PROT_UNREACH | 0x0302
|
| ICMP_PORT_UNREACH | 0x0303
|
| ICMP_FRAG_NEEDED | 0x0304
|
| ICMP_SR_FAILED | 0x0305
|
| ICMP_NET_UNKNOWN | 0x0306
|
| ICMP_HOST_UNKNOWN | 0x0307
|
| ICMP_HOST_ISOLATED | 0x0308
|
| ICMP_NET_ANO | 0x0309
|
| ICMP_HOST_ANO | 0x030a
|
| ICMP_NET_UNR_TOS | 0x030b
|
| ICMP_HOST_UNR_TOS | 0x030c
|
| ICMP_PKT_FILTERED | 0x030d
|
| ICMP_PREC_VIOLATION | 0x030e
|
| ICMP_PREC_CUTOFF | 0x030f
|
|
| ICMP_SOURCE_QUENCH | - | 0x0400
|
|
| ICMP_TIME_EXCEEDED | ICMP_EXC_TTL | 0x0b00
|
| ICMP_EXC_FRAGTIME | 0x0b01
|
|
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.
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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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:
|
| Code | Type | Value
|
|
| ICMP_DEST_UNREACH | ICMP_NET_UNREACH | 0x0300
|
| ICMP_HOST_UNREACH | 0x0301
|
| ICMP_PROT_UNREACH | 0x0302
|
| ICMP_PORT_UNREACH | 0x0303
|
| ICMP_FRAG_NEEDED | 0x0304
|
| ICMP_SR_FAILED | 0x0305
|
| ICMP_NET_UNKNOWN | 0x0306
|
| ICMP_HOST_UNKNOWN | 0x0307
|
| ICMP_HOST_ISOLATED | 0x0308
|
| ICMP_NET_ANO | 0x0309
|
| ICMP_HOST_ANO | 0x030a
|
| ICMP_NET_UNR_TOS | 0x030b
|
| ICMP_HOST_UNR_TOS | 0x030c
|
| ICMP_PKT_FILTERED | 0x030d
|
| ICMP_PREC_VIOLATION | 0x030e
|
| ICMP_PREC_CUTOFF | 0x030f
|
|
| ICMP_SOURCE_QUENCH | - | 0x0400
|
|
| ICMP_TIME_EXCEEDED | ICMP_EXC_TTL | 0x0b00
|
| ICMP_EXC_FRAGTIME | 0x0b01
|
|
- 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.
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.
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