OpenSS7
SS7 for the
Common Man
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.
Last modified: Mon, 28 Apr 2008 23:13:21 GMT
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of NPI_SCTP
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 NPI_SCTP

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


NPI_SCTP

Section: NPI Corrigendum for SCTP (7)
Updated: Thu, 14 Dec 2017 15:15:12 GMT
Index Return to Main Contents

NAME

npi_sctp - Network Provider Interace (NPI) --- Corrigendum for SCTP Conformance

SYNOPSIS

#include <sys/npi.h>
#include <sys/npi_ip.h>
#include <sys/npi_sctp.h>

int sctp_stream =open( /dev/sctp_t , oflags );

DESCRIPTION

NPI-SCTP
provides a Stream supporting the Network Provider Interface (NPI)[1], npi(7), to the Stream Control Transmission Protocol (SCTP)[2..4] driver, sctp(4).

INTERFACE

This STREAMS(4) interface provides the sctp(4) protocol service interface using the N-primitives of the npi(7). This interface is intended solely for use by user programs or protocol modules requiring the common npi(7) service interface. In particular, the npi(7) interface to sctp(4) is often used by SIGTRAN and other telecommunications protocols such as TI-SCCP internal to the kernel. This is because the NPI-SCTP interface provides some richer control that is not available in the tpi_sctp(7) interface or the xti_sctp(3) library.

ADDRESS FORMATS

The SCTP 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 in network byte order.
sin_addr
The IP address of the transport endpoint in network byte order.
(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.

SCTP adresses can also be formed as an array of sockaddr_in structure to represent multiple addresses for multi-homed hosts.

OPTIONS

Quality of service parameters are formatted according to the format defined for each network provider.

typedef union N_qos_sctp {
    ulong n_qos_type;
    N_qos_sel_conn_sctp_t n_qos_conn;
    N_qos_sel_data_sctp_t n_qos_data;
    N_qos_sel_info_sctp_t n_qos_info;
    N_qos_range_info_sctp_t n_qos_range;
} N_qos_sctp_t;

NPI-SCTP defines the following quality of service structures for SCTP:
N_QOS_SEL_CONN_SCTP
Identifies a structure containing QOS parameters for connection selection for SCTP. This structure is normally used in the N_CONN_REQ(7), N_CONN_IND(7), N_CONN_RES(7) and N_CONN_CON(7) primitives. It may also be used in the N_OPTMGMT_REQ(7) primitive. This structure type identifies a N_qos_sel_conn_sctp_t structure, formatted as follows:

typedef struct {
    ulong n_qos_type;
    ulong i_streams;
    ulong o_streams;
} N_qos_sel_conn_sctp_t;

n_qos_type
always N_QOS_SEL_CONN_SCTP.
i_streams
the maximum number of input streams accepted.
o_streams
the number of output streams requested.
N_QOS_SEL_DATA_SCTP
Identifies a structure containing QOS parameters for data selection for SCTP. This structure is normally used in the N_DATA_REQ(7), N_DATA_IND(7), N_EXDATA_REQ(7) and N_EXDATA_IND(7) primitives. It may also be used in the N_OPTMGMT_REQ(7) primitive. This structure type identifies a N_qos_sel_data_sctp_t structure, formated as follows:

typedef struct {
    ulong n_qos_type;
    ulong ppi;
    ulong sid;
    ulong ssn;
    ulong tsn;
    ulong more;
} N_qos_sel_data_sctp_t;

n_qos_type
always N_QOS_SEL_DATA_SCTP.
ppi
the SCTP protocol payload identifier.
sid
the SCTP stream sequence identifier.
ssn
the SCTP stream sequence number.
tsn
the SCTP transmit sequence number.
more
the SCTP segmentation flag (B and E).
N_QOS_SEL_INFO_SCTP
Identifies a structure containing QOS parameters for information selection for SCTP. This structure is normally returned in the N_INFO_ACK(7) primitive. It may also be used in the N_OPTMGMT_REQ(7) primitive. This structure type identifies a N_qos_sel_info_sctp_t structure, formatted as follows:

typedef struct {
    ulong n_qos_type;
    ulong i_streams;
    ulong o_streams;
    ulong ppi;
    ulong sid;
    ulong max_inits;
    ulong max_retrans;
    ulong ck_life;
    ulong ck_inc;
    ulong hmac;
    ulong throttle;
    ulong max_sack;
    ulong rto_ini;
    ulong rto_min;
    ulong rto_max;
    ulong rtx_path;
    ulong hb_itvl;
    ulong options;
} N_qos_sel_info_sctp_t;

n_qos_type
always N_QOS_SEL_INFO_SCTP.
i_streams
current number of input streams.
o_streams
current number of output streams.
ppi
default payload protocol identifier.
sid
default stream identifier.
max_inits
maximum number of INIT retries.
max_retrans
maximum number of retransmissions per association.
ck_life
cookie lifetime.
ck_inc
cookie preservative increment.
hmac
HMAC algorithm used to sign cookies. Curent values for this field are:
SCTP_HMAC_NONE
no HMAC algorithm, fill signature with all 1's.
SCTP_HMAC_SHA_1
SHA-1 checksum signature.
SCTP_HMAC_MD5
MD5 checksum signature.
throttle
INIT and COOKIE-ECHO throttling interval.
max_sack
maximum SACK delay.
rto_ini
initial retransmission time out.
rto_min
minimum retransmission time out.
rto_max
maximum retransmission time out.
rtx_path
maximum number of retransmissions per path (destination).
hb_itvl
hearbeat interval.
options
additional local (flag) options. Currently supported flag options include:
SCTP_OPTION_DROPPING
the stream will drop packets.
SCTP_OPTION_BREAK
the stream will break first path (tx).
SCTP_OPTION_DBREAK
the stream will break first path (rx and tx).
SCTP_OPTION_RANDOM
the stream will drop packets at random.
N_QOS_SEL_RANGE_INFO_SCTP
Identifies a structure containing QOS parameters for information selection ranges for SCTP. This structure is normally returned in the N_INFO_ACK(7) primitive. The structure type identifies a N_qos_sel_range_info_sctp_t structure, formatted as follows:

typedef struct {
        ulong n_qos_type;
} N_qos_range_info_sctp_t;

n_qos_type
always N_QOS_SEL_RANGE_INFO_SCTP.

EXPEDITED DATA

NPI-SCTP does not support an expedited data option end-to-end; however, expedited data is handled locally and is always available. In support of expedited data, NPI-SCTP uses the N_EXDATA_REQ(7) and N_EXDATA_IND(7) primitives. Expedited data sent with these primitives is always sent "unordered" by SCTP.

SCTP expedites "unordered" data over "ordered" data because "unordered" data is not subject to ordering constraints. Also, this The OpenSS7 Project implementation of SCTP will expedite unordered data from lower number stream identification number over higher numbers. Unordered data from stream identifier zero (0) is given the highest priority. The OpenSS7 Project SCTP also gives priority to new "unordered" data over any retransmissions of data. This ensures that unordered data is expedited to the wire.

RECEIPT CONFIRMATION

NPI-SCTP does not support receipt confirmation option negotiation end-to-end; however, receipt confirmation can optionally be invoked locally and is always available to the NS user. Receipt confirmation makes use of the N_DATACK_REQ(7) and N_DATACK_IND(7) primitive.

When an N_DATA_REQ(7) primitive is issued with the N_RC_FLAG set in the DATA_xfer_flags, The OpenSS7 Project will perform receipt confirmation. When the TSN containing the last segment of the NSDU associated with the N_DATA_REQ(7) with the N_RC_FLAG flag set is cummulatively acknoweldged by the SCTP peer, the NS provider will issue a N_DATACK_IND(7) primitive to the NS user to indicate that the data was successfully received by the SCTP peer. Note that this does not ensure that the data was received by the remote NS user (as in the case of OSI protocols), but, however, that the data was received by the remote NS provider.

This receipt confirmation capability has the effect that NSDUs that have been confirmed received by the remote SCTP NS provider will be confirmed to the local NS user. At one time, this was a necessary capability for M2PA, but this is no longer the case. Use this option with care. It has not been thourougly tested and has performance impacts on both the local NS provider and local NS user.

LOCAL MANAGEMENT INTERFACE

NPI-SCTP provides a local management through the service interface as described in npi(7), using the following primitives:

N_INFO_REQ(7)

This primitivie is interpreted as in npi(7).

N_INFO_ACK(7)

This primitivie is interpreted as in npi(7).

NSDU_size
The NPI-SCTP provider has an unlimited NSDU size and returns T_INFINITE in this field in accordace with the npi(7).
ENSDU_size
The NPI-SCTP provider supports the concept of expedited data. Expedited data is data that is sent unordered. This field should alwasy return the same value as the NSDU_size above.
CDATA_size
The NPI-SCTP provider supports the concept of connection data. This field will be the maximum amount of connection data that will fit in a COOKIE-ECHO or COOKIE-ACK message.
DDATA_size
The NPI-SCTP provider does not support the concept of disconnection data and, therefore, returns T_INVALID in this field.
ADDR_size
The maximum size of the SCTP address. This field will aways return an integer multiple of the sockaddr_in structure size as described under ADDRESSFORMAT , above.
OPTIONS_flags
The options flags may be one of the following values:
REC_CONF_OPT
Receipt confirmation selection and support. Receipt confirmation is supported and, if in the connected state, was requested and negotiated. NPI-SCTP does not provide true negotiation of receipt confirmation support, however, the SCTP protocol does support receipt confirmation.
EX_DATA_OPT
Expedited data selection and support. Expedited data is supported and, if in the connected state, was requested and negotiated.
DEFAULT_RC_SEL
Indicates if default receipt confirmaiton is selected. When this option is set using the N_CONN_REQ(7), N_CONN_RES(7) or N_OPTMGMT_REQ(7) primitive, it requests that messages sent using the write(2s) system call (i.e, message not containing an M_PROTO(9) message block), request receipt confirmation by default. When this flag is clear, receipt confirmation will not be requested for write(2s) operations.
If REC_CONF_OPT is not also set (using the N_CONN_REQ(7) or N_CONN_RES(7) primitives), then the DEFAULT_RC_SEL flag is ignored.
NIDU_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 ina single getmsg(2) or putmsg(2) system call. This size is always less than or equal to the NISDU_size above.
SERV_type
The service type is one of the following:
N_CONS
Connection-oriented network service. NPI-SCTP supports connection-oriented network service. This value is always returned by NPI-SCTP.
N_CLNS
Connectionless network service. NPI-SCTP does not support connectionless service. This value is never returned by NPI-SCTP.
CURRENT_state
The current state of the service interface as described in npi(7).
PROVIDER_type
The provider type is one of the following:
N_SNICFP
The provider is a subnetwork independent convergence function provider. This value is always returned by NPI-SCTP.
N_SUBNET
The provider is a subnetwork provider. This value is never returned by NPI-SCTP.
NODU_size
Indicates the optimal NIDU size. NPI-SCTP always returns half of the association MTU as the optimal NIDU size.
NPI_version
NPI-SCTP always returns N_VERSION_2 in this field.

N_OPTMGMT_REQ(7)

This primitive is interpreted as in npi(7), with the Quality of Service parameters described under OPTIONS , above.

N_BIND_REQ(7)

This primitive is interpreted as in npi(7).

ADDR_length, ADDR_offset
Specifies the length and offset from the beginning of the message block of the sockaddr_in structures that contain the NPI-SCTP addresses to bind. The NPI-SCTP provider supports wildcard addresses and the address INADDR_NAY. This sfield can contain an integer number of addresses.
CONIND_number
Specifies the number of connection indications. Specifying a non-zero number of connection indications will place the Stream in listening mode. Any COOKIE-ECHO packet receives from a unique source address will generate a connection indication. Connection indications can be accepted or refused (without data). This number specifies the maximum number of outstanding ocnnection indications (those that have neither been accepted nor refused) that the provider will deliver. Because this limit is reached does not mean that the provider discards additional connection indications, but may queue them internally until the number of outstanding connection indications drops beneath the number specified. See npi(7) for more information.
BIND_flags
This field can contain the bitwize OR of zero or more of the following flags:
TOKEN_REQUEST
Requests that the NS provider provide a connection acceptance token in the corresponding N_BIND_ACK(7) primitive.
DEFAULT_DEST
This flag is for CLNS service only and is not supported by the NPI-SCTP provider. If this flag is set a [NNOTSUPPORT] error will be returned in a N_ERROR_ACK(7) primitive.
DEFAULT_LISTENER
A default listener Stream is one that will accept connection indications when no other Stream is associated with the incoming connection. NPI-SCTP does not currently support the concept of a default listener and sill return [NNOTSUPPORT] in a N_ERROR_ACK(7) primitive if this flag is set.
PROTOID_length, PROTOID_offset
Specifies the length and offset from the beginning of the message block of the protocol identifiers to which the endpoint is bound. NPI-SCTP currently ignores these fields. At a later date it is possible that this field could be used for additional protocol identification such as the Application Layer Information.)

N_BIND_ACK(7)

This primitive is interpreted as in npi(7).

ADDR_length, ADDR_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structures that contain the NPI-SCTP addresses that were bound. This filed can contain an integer number of addresses.
The bound address, sin_addr, returns in this field may be INADDR_ANY (if INADDR_ANY was requested, or no address was provided to the bind). However, the sin_port component of the address will be allocated dynamically and set to a non-zero port number if zero (indicating any port) was specified on bind, or no address was provided to the bind. If a non-zero port number could not be dynamically allocated, [NNOADDR] is returned in accordance with npi(7).
CONIND_number
Indicates the negotiated number of connection indications. This is normally the same value as was requested; however, if the user requests number that is considered too large, this number might be a more conservative value.
TOKEN_value
A handle associated with the bound Stream to be used in a subsequent N_CONN_RES(7) primitive to accept a connection indication from a N_CONN_IND(7) primitive on this Stream.
PROTOID_length, PROTOID_offset
Indicates the length and offset from the beginning of the message block of the protocol identifiers that were bound to the Stream. NPI-SCTP does not bind protocol identifiers and these fields will always be indicated by the NPI-SCTP NS provider as zero (0).

N_UNBIND_REQ(7)

This primitive is interpreted as in npi(7).

N_ERROR_ACK(7)

This primitive is interpreted as in npi(7).

N_OK_ACK(7)

This primitive is interpreted as in npi(7).

PROTOCOL SERVICE INTERFACE

The /dev/sctp_n driver providers a single interface type: connection-oriented network service. Note, however, that some connectionless network service primitives are supported.

N_UNITDATA_REQ(7)

This primitive is interpreted as in npi(7). The NPI-SCTP provider does not support connectionless mode service and any attempt to issue this primitive willnormally result in an N_ERROR_ACK(7) primitive with the error number [NNOTSUPPORT].

N_UNITDATA_IND(7)

This primitive is interpreted as in npi(7). The NPI-SCTP provider does not support connectionless mode service provider will not issue this primitive.

N_UDERROR_IND(7)

This primitive is interpreted as in npi(7). The NPI-SCTP provider does not support connectionless mode service and will not issue this primitive.

N_CONN_REQ(7)

This primitive is interpreted as in npi(7), with the quality of service parameters described under OPTIONS , above and the following considerations:

DEST_length, DEST_offset
Specifies the length and offset from the beginning of the message block of the sockaddr_in structures that contains the NPI-SCTP IP addresses to which to connect the Stream. For connection to multi-homed NPI-SCTP hosts, this address may contain mutliple sockaddr_in structures.
CONN_flags
The connection flags can be a bitwise OR of zero or more of the following flags:
REC_CONF_OPT
Receipt confirmation selection and support. NPI-SCTP uses this flag on connection to determine whether the SCTP association will support receipt confirmation in either direction.
EX_DATA_OPT
Expedited data selection and support. NPI-SCTP provides expedited data support regardless of whether this flag is set on connection or not.
QOS_length, QOS_offset
Specifies the length and offset from the beginning of the message block of the quality of service parameters to use when forming an association with the peer. The structure is a N_qos_sel_conn_sctp_t structure of type N_QOS_SEL_CONN_SCTP. These quality of service parameter value can be changed with the N_OPTMGMT_REQ(7) primitive, or overridden for a specific message with the N_DATA_REQ(7) or N_EXDATA_REQ(7) primitive.
Quality of service parameters that have end-to-end significance are: i_streams and o_streams. Quality of service parameters that have significance at connection are: ppi, sid, max_inits, max_retrans, max_sack, rto_init, rto_min, rto_max, rtx_path, hb_itvl.

N_CONN_CON(7)

This primitive is interpreted as in npi(7), with the quality of service parameters described under OPTIONS , above, and the following considerations:

The primitive is issued by the NS provider when confirming a connection. NPI-SCTP confirms a connection when a COOKIE-ACK is received for the SCTP association.

RES_length, RES_offset
Indicates the length and offset from the beginning of the message block of the sockaddr_in structures that contain the NPI-SCTP addresses to which the Stream is confirmed connected. For responding multi-homed NPI-SCTP hosts, this addres may contain multiple sockaddr_in structures.
Unlike TPI, NPI does not have the ability to query the addresses associated with an established connection. The responding address contained in this field contains the address(es) associated with the remote peer. It is the responsibility of the NS user to store this address for later use.
CONN_flags
The connection flags may be a bitwize OR of zero or more of the following flags:
REC_CONF_OPT
Receipt confirmation selection and support. NPI-SCTP confirms this flag if it was requested in the N_CONN_REQ(7) primitive. This flag is of local significance.
EX_DATA_OPT
Expedited data selection and support. NPI-SCTP always confirms this flag, regardless of whether it was requested in the N_CONN_REQ(7) primitive. This flag is of local significance.
QOS_length, QOS_offset
Indicates the length and offset from the beginning fo the message block of the options present in the connection request and options that are negotiated end-to-end. See OPTIONS , above. The option values represent the negotiation with the local provdier as well as end-to-end negotiation with the SCTP peer. The structure is a N_qos_sel_conn_sctp_t structure of type N_QOS_SEL_CONN_SCTP.

N_CONN_IND(7)

This primitive is interpreted as in npi(7), with the quality of service parameters described under OPTIONS , above, and the following considerations:

The primitive is issued by the NS provider when indicating an incoming connection request. NPI-SCTP issues this primitive indicating an incoming connection request when a COOKIE-ECHO is received initiating an SCTP connection.

DEST_length, DEST_offset
Indicates the length and offset from the beginning of the message block of the destination address associated with the local endpoint. When the local host is multi-homed, this address can contain multiple sockaddr_in structures. These addresses may differ from the addresses to which the local endpoint was bound (i.e, in the N_BIND_ACK(7) primitive), particularly when the local NS provider was bound to a wildcard address. Unlike TPI, NPI does not have an address information primitive and it is the responsibility of the NS user to store these addresses for later use.
SRC_length, SRC_offset
Indicates the length and offset from the beginning of the message block of the source addresses associated with the remote endpoint. When the remote host is multi-homed, this address can contain multiple sockaddr_in structures. Unlike TPI, NPI has not address information service and it is the responsibility of the NS user to store these addresses for later use.
SEQ_number
Provides a unique sequence number that identifies this connection indication for use by the NS user in a subsesuent N_CONN_RES(7) or N_DISCON_REQ(7) primitive.
CONN_flags
The connection flags may be one of the following values:
REC_CONF_OPT
Receipt confirmation selection and support. NPI-SCTP always supports receipt confirmation locally and this flag will be set in all connection indications. It is up to the NS user to decide whether this association should support receipt confirmation and to set or clear the flag in the N_CONN_RES(7) primitive.
EX_DATA_OPT
Expedited data selection and support. NPI-SCTP always supports expedited data locally and this flag will be set in all connection indications.
QOS_length, QOS_offset
Indicates the length and offset from the beginning of the message block of the options present locally and provided from the remote end. The structure is a N_qos_sel_conn_sctp_t structure of type N_QOS_SEL_CONN_SCTP. Of end-to-end significance are the i_streams and o_streams members of the structure. See OPTIONS , above.

N_CONN_RES(7)

This primitive is interpreted as in npi(7), with the quality of service parameters described under OPTIONS , above, and the following considerations:

When it receives this primitive, the NPI-SCTP NS provider will send a COOKIE-ACK to complete the establishment of an SCTP association.

TOKEN_value
Specifies the acceptor identifier of the Stream onto which the connection is to be accepted. Any value specified here should be the value of the TOKEN_value field that was returned in the N_BIND_ACK(7) primitive for the associated accepting Stream.
If the connection is to be accepted on the same Stream upon which the corresponding N_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 that one connection indication outstanding.
RES_length, RES_offset
Specifies the length and offset from the beginning of the message block of the responding addresses. NPI-SCTP does not have the ability to provide responding addresses that differ from the addresses that appeared in the DEST_length and DEST_offset fields of the associated N_CONN_IND(7) primitive.
SEQ_number
Specifies the sequence number in the corresponding N_CONN_IND(7) primitive to which this primitive is responding.
CONN_flags
The connection flags may be one of the following values:
REC_CONF_OPT
Receipt confirmation selection and support. This flag is set by the NS user if receipt confirmation is to be used on the accepting Stream.
EX_DATA_OPT
Expedited data selection and support. This flag is set by the NS user if expedited data is to be used on the accepting Stream; however, this flag is ignored by the NPI-SCTP NS provider and expedited data is always supported locally.
QOS_length, QOS_offset
Specifies the length and offset from the beginning of the message block of the quality of service parameters requested to the connection. See OPTIONS , above. Quality of service parameters of local significance are negotiated locally. Quality of service parameters of end-to-end significance are negotiated with the peer. The structure is a N_qos_sel_conn_sctp_t structure of type N_QOS_SEL_CONN_SCTP. Of end-to-end significance are the i_streams and o_streams members of the structure. See OPTIONS , above.

N_DATA_REQ(7), M_DATA(9)

This primitive is interpreted as in npi(7).

Data will be sent ordered on the Stream.

DATA_xfer_flags
This field contains option flags for the NIDU. They can be a bitwise OR of zero or more of the following flags:
N_MORE_DATA_FLAG
Specifies that a subsequent N_DATA_REQ contains data continuing the same NSDU. For M_DATA(9) message blocks, the MSGDELIM flag is used in the same fashion. M_DATA(9) messages that result from a write(2s) system call, will have their MSGDELIM flag checked. (MSGDELIM flags will be set on full write(2s) operations.) When set, the data marks the end of a record.
N_RC_FLAG
Specifies that receipt confirmation is requested for the NSDU. This flag is only valid for the last NIDU of an NSDU (i.e. one that has the N_MORE_DATA_FLAG clear). When receipt confirmation is requested and the SCTP cummulative acknowledgement point passes over the TSN assigned to the last segment of the NSDU, a N_DATACK_IND(7) message will be issued to the NS User. For M_DATA (9) message blocks, the DEFAULT_RC_SEL option flag is used in the same fashion. M_DATA(9) message blocks will be sent with receipt confirmation requested if the DEFAULT_RC_SEL options flag is set for the connection, either via the N_CONN_REQ(7), N_CONN_RES(7) or N_OPTMGMT_REQ(7) primitives.

NPI-SCTP supports an extension of the N_DATA_REQ(7) primitive format. The M_PROTO (7) message block may contain a N_qos_sel_data_sctp_t structure immediately following the N_data_req_t primitive structure, with the following additional fields:

n_qos_type
always N_QOS_SEL_DATA_SCTP.
ppi
the protocol payload identifier to be placed in the SCTP DATA chunk.
sid
the stream identifier to be placed in the SCTP DATA chunk.
ssn
the stream sequence number contained in the SCTP DATA chunk. (Ignored in the N_DATA_REQ(7) primitive, this value will be overwritten with the next sequential stream sequence number for the identified stream.)
tsn
the transmission sequence number contained in the SCTP DATA chunk. (Ignored in the N_DATA_REQ(7) primitive, this value will be overwritten with the next sequential transmission sequence number for the corresponding association.)
more
a flag indicating whether additional N_DATA_REQ(7) primitives contain additional data belonging to the same NSDU. (Ignored in the N_DATA_REQ(7) primitive, this value will be overwritten by the calculated B and E bits for the SCTP DATA chunk.)

N_DATA_IND(7)

This primitive is interpreted as in npi(7).

Data was sent ordered on the Stream.

NPI-SCTP supports an extension of the N_DATA_IND(7) primitive format. The M_PROTO (7) message block may contain a N_qos_sel_data_sctp_t structure immediately following the N_data_req_t primitive structure, with the following additional fields:

n_qos_type
always N_QOS_SEL_DATA_SCTP.
ppi
the protocol payload identifier from the SCTP DATA chunk.
sid
the stream identifier from the SCTP DATA chunk.
ssn
the stream sequence number from the SCTP DATA chunk.
tsn
the transmission sequence number from the SCTP DATA chunk.
more
the B and E bits from the SCTP DATA chunk. (This is in fact the entire flags field from the DATA chunk. This permits definitions of additional flags and passing of those flags to the user.)

N_EXDATA_REQ(7)

This primitive is interpreted as in npi(7).

Data will be sent unordered on the Stream.

NPI-SCTP supports an extension of the N_EXDATA_REQ(7) primitive format. The M_PROTO (7) message block may contain a N_qos_sel_data_sctp_t structure immediately following the N_data_req_t primitive structure, with the following additional fields:

n_qos_type
always N_QOS_SEL_DATA_SCTP.
ppi
the protocol payload identifier to be placed in the SCTP DATA chunk.
sid
the stream identifier to be placed in the SCTP DATA chunk.
ssn
the stream sequence number to be placed in the SCTP DATA chunk. (This would normally be zero for unordered data, however, some applications may pass data in this field.)
tsn
the transmission sequence number contained in the SCTP DATA chunk. (Ignored in the N_EXDATA_REQ(7) primitive, this value will be overwritten with the next sequential transmission sequence number for the corresponding association.)
more
a flag indicating whether additional N_EXDATA_REQ(7) primitives contain additional data belonging to the same ENSDU. (Ignored in the N_EXDATA_REQ(7) primitive, this value will be overwritten by the calculated B and E bits for the SCTP DATA chunk.)

N_EXDATA_IND(7)

This primitive is interpreted as in npi(7).

Data was sent unordered on the Stream.

NPI-SCTP supports an extension of the N_DATA_IND(7) primitive format. The M_PROTO (7) message block may contain a N_qos_sel_data_sctp_t structure immediately following the N_data_req_t primitive structure, with the following additional fields:

n_qos_type
always N_QOS_SEL_DATA_SCTP.
ppi
the protocol payload identifier from the SCTP DATA chunk.
sid
the stream identifier from the SCTP DATA chunk.
ssn
the stream sequence number from the SCTP DATA chunk.
tsn
the transmission sequence number from the SCTP DATA chunk.
more
the B and E bits from the SCTP DATA chunk. (This is in fact the entire flags field from the DATA chunk. This permits definitions of additional flags and passing of those flags to the user.)

N_DATACK_REQ(7)

This primitive is interpreted as in npi(7).

The previous primitive indicating reception of data that indicated receipt confirmation (i.e, N_DATA_IND(7)) is confirmed received by the user.

N_DATACK_IND(7)

This primitive is interpreted as in npi(7).

The previous primitive requesting transmission of data that requested receipt confirmation (i.e, N_DATA_REQ(7)) is confirmed received by the peer.

N_RESET_REQ(7)

This primitive is interpreted as in npi(7). NPI-SCTP does not support a remote reset procedure; however, this primitive is supported locally. Issuing this primitive will cause the NS provider to respond with a N_RESET_CON(7) primitive once it receives the primitive. This permits the NS user to determine when all N_DATA_REQ(7) and N_EXDATA_REQ(7) primitives preceding the N_RESET_REQ(7) have been received by the NS provider. (At a later date it may be possible to use this to reset the stream sequence number or transmission sequence number.)

N_RESET_IND(7)

This primitive is interpreted as in npi(7). NPI-SCTP does not support a remote reset procedure and will not issue this primitive. (At a later date it may be possible to use this to indicate that the stream sequence number or transmission sequence number has been reset.)

N_RESET_RES(7)

This primitive is interpreted as in npi(7). NPI-SCTP does not issue an N_RESET_IND(7) primitive and the NS user should not, therefore, issue this primitive in response. (At a later date it may be possible to use this to allow the NS user to respond to a stream sequence number or transmission sequence number reset.)

N_RESET_CON(7)

This primitive is interpreted as in npi(7). NPI-SCTP does not support a remote reset procedure. Therefore, this primitive is only issued in confirmation of the receipt of a N_RESET_REQ(7) primitive.

N_DISCON_REQ(7)

This primitive is interpreted as in npi(7). This will result in the refusal of any outstanding NPI-SCTP connection indication or an abortive release of an existing NPI-SCTP association.

DISCON_reason
Specifies the reason for disconnect and may be one of the following values:

SEQ_numberDISCON_reasonTypeDescription

ZeroN_DISC_NORMALDiscon Normal condition.
N_DISC_ABNORMALDiscon Abnormal condition.

Non-zeroN_REJ_PReject Permanent condition.
N_REJ_TReject Temporary condition.
N_REJ_INCOMPAT_INFOReject Incompatible information in NS-User-Data.
N_REJ_QOS_UNAVAIL_PReject QOS unavailable (permanent condition).
N_REJ_QOS_UNAVAIL_TReject QOS unavailable (temporary condition).
N_REJ_UNSPECIFIEDReject Reason unspecified.

The DISCON_reason is currently ignored by NPI-SCTP, which simply sends an ABORT with the SCTP_CAUSE_USER_INITIATED cause under SCTP. That is, all DISCON_reason codes form the N_DISCON_REQ(7) primitive map into SCTP_CAUSE_USER_INITIATED.

RES_length, RES_offset
Specifies the length and offset from the beginning of the message block of the responding addresses. NPI-SCTP does not have the ability to provide responding addresses that differ from the addresses that appeared in the DEST_length and DEST_offset fields of the associated N_CONN_IND(7) primitive.
SEQ_number
When rejecting an incoming connection on a listening Stream, this field is set to the SEQ_number that was present in the corresponding N_CONN_IND(7) primitive representing the incoming connection that is being rejected. In all other cases (i.e, disconnecting an established association), this field should be set to zero (0) by the NS user.

N_DISCON_IND(7)

This primitive is interpreted as in npi(7). This indicates the refusal of an outstanding NPI-SCTP outgoing connection request, or the abortive release of an existing NPI-SCTP association.

DISCON_orig, DISCON_reason
The disconnect origin and reason may be one of the following values:

DISCON_orgDISCON_reasonTypeDescription

N_PROVIDERN_DISC_PDiscon Permanent condition.
N_DISC_TDiscon Temporary condition.
N_REJ_NSAP_UNKNOWNReject NSAP address unknown (permanent condition).
N_REJ_NSAP_UNREACH_PReject NSAP address ureachable (permanent condition).
N_REJ_NSAP_UNREACH_TReject NSAP address unreachable (temporary condition).

N_USERN_DISC_NORMALDiscon Normal condition.
N_DISC_ABNORMALDiscon Abnormal condition.
N_REJ_PReject Permanent condition.
N_REJ_TReject Temporary condition.
N_REJ_INCOMPAT_INFOReject Incompatible information in NS-User-Data.

EitherN_REJ_QOS_UNAVAIL_PReject QOS unavailable (permanent condition).
N_REJ_QOS_UNAVAIL_TReject QOS unavailable (temporary condition).
N_REJ_UNSPECIFIEDReject Reason unspecified.

RES_length, RES_offset
Indicates the length and offset from the beginning of the message block of the responding addresses. NPI-SCTP does not have to ability to have responding addresses that are different from those indicated in the SRC_length and SRC_offset fields of the corresponding N_CONN_IND(7) primitive. NPI-SCTP will always set these fields to zero (0).
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 N_CONN_IND(7) primmitive has been issued with not N_DISCON_REQ(7) or N_CONN_RES(7) primitive having been issued by the NS user with the same sequence number.

USAGE

The NPI-SCTP interface has a cleaner and simpler interface to SCTP than the tpi_sctp(7) interface, yet has some richer features such as receipt confirmation. It is more suitable for use as an internal service interface by STREAMS(9) pushable modules and multiplexing drivers. It is therefore the service interface of choice for SIGTRAN(4) modules and drivers.

In constrast, the TPI-SCTP interface, tpi_sctp(7) is more suitable for user-space programs and supports the libxnet(3) XTI/TLI library.

IOCTLS

The NPI-SCTP provider does not supoprt input-output controls.

ERROR HANDLING

Error handling is in accordance with npi(7).

ERRORS

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

Error Acknowledgement Codes

The following error codes can be present in the NPI_error field of the N_ERROR_ACK(7) primitive:

[NBADADDR]
The network address as specified in the primitive was in an incorrect format, or the address contained illegal information.
[NBADOPT]
The options values as specified in the primitive were in an incorrect format, or they contained illegal information.
[NBADQOSPARAM]
The QOS values specified are outside the range supported by the NS provider. illegal.
[NBADQOSTYPE]
The QOS structure type is not supported by the NS provider.
[NBADTOKEN]
Token used is not associated with an open stream.
[NNOADDR]
The NS provider could not allocate an address.
[NACCESS]
The user did not have proper permissions.
[NOUTSTATE]
The primitive was issued from an invalid state.
[NBADSEQ]
The sequence number specified in the primitive was incorrect or illegal.
[NBADFLAG]
The flags specified in the primitive were incorrect or illegal.
[NBADDATA]
The amount of user data specified was outside the range supported by the NS provider.
[NSYSERR]
A system error has occurred and the Linux system error is indicated in the primitive.
[NNOTSUPPORT]
Specified primitive type is not known to the NS provider.

Disconnect Codes

The following error codes can be present in the DISCON_reason field of the N_DISCON_IND(7) primitive:

[ETIMEDOUT]
connection timed out.
[ECONNRESET]
connection reset by peer.
[ECONNABORTED]
connection aborted.
[EPROTO]
protocol violation.
[EINVAL]
invalid SCTP parameter.
[EMSGSIZE]
invalid message size.

NOTICES

SCTP has several implementations. This manpage is for the sctp_n(4) implementation that provides npi(7) access to the Linux Fast-STREAMS version of SCTP. For more information on the OpenSS7 Linux NET4 version, see sctp(7).

The use of the N_qos_sel_data_sctp_t structure of type N_QOS_SEL_DATA_SCTP immediately following the N_DATA_REQ(7) or N_EXDATA_REQ(7) primitive does not strictly follow the npi(7). Applications wishing to strictly follow the npi(7) will not include these structures and will, instead, issue a (non-priority) N_OPTMGMT_REQ(7) primitive ahead of the N_DATA_REQ(7) or N_EXDATA_REQ(7) primitive to set the default QOS parameters as required for the issued packet.

EXAMPLES

None.

DEVICES

/dev/sctp_n
the npi(7) device for sctp(4)

SEE ALSO

sctp(7), sctp(4), sctp_n(4), npi(7), npi_ip(7).

BUGS

NPI-TPI has no known bugs.

COMPATIBILITY

Network Provider Interface (NPI) Revision 2.0.0[1].

CONFORMANCE

NPI[1], this Corrigendum.

HISTORY

New for @PACAKAGE_TITLE@.

REFERENCES

[1]
NPI, Open Group CAE Specification: Network Provider Interface (NPI) Specification, Revision 2.0.0, Draft 2, August 17, 1992, (Parsippany, New Jersey), UNIXInternational,Inc., UNIX International Press. <http://www.openss7.org/docs/npi.pdf>
[2]
RFC 2960, Stream Control Transmission Protocol (SCTP), October 2000, Randall R. Stewart, ed., The Internet Society. (Obsoleted by RFC 4960) (Updated by RFC 3309) (Status: PROPOSED STANDARD) <http://www.ietf.org/rfc/rfc2960.txt>
[3]
RFC 3309, Stream Control Transmission Protocol (SCTP) Checksum Change, September 2002, Jonathan Stone, ed., The Internet Society. (Obsoleted by RFC 4960) (Updates RFC 2960) (Status: PROPOSED STANDARD) <http://www.ietf.org/rfc/rfc3309.txt>
[4]
RFC 4460, Stream Control Transmission Protocol (SCTP) Specification Errata and Issues, April 2006, R. Stewart, I. Aria-Rodriguez, K. Poon, A. Caro and M. Tuexen, The Internet Society. (Status: INFORMATIONAL) <http://www.ietf.org/rfc/rfc4460.txt>

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

The OpenSS7 Project: Package OpenSS7 version 0.9.2 released Thu, 14 Dec 2017 15:15:12 GMT.

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



Index

NAME
SYNOPSIS
DESCRIPTION
INTERFACE
ADDRESS FORMATS
OPTIONS
EXPEDITED DATA
RECEIPT CONFIRMATION
LOCAL MANAGEMENT INTERFACE
N_INFO_REQ(7)
N_INFO_ACK(7)
N_OPTMGMT_REQ(7)
N_BIND_REQ(7)
N_BIND_ACK(7)
N_UNBIND_REQ(7)
N_ERROR_ACK(7)
N_OK_ACK(7)
PROTOCOL SERVICE INTERFACE
N_UNITDATA_REQ(7)
N_UNITDATA_IND(7)
N_UDERROR_IND(7)
N_CONN_REQ(7)
N_CONN_CON(7)
N_CONN_IND(7)
N_CONN_RES(7)
N_DATA_REQ(7), M_DATA(9)
N_DATA_IND(7)
N_EXDATA_REQ(7)
N_EXDATA_IND(7)
N_DATACK_REQ(7)
N_DATACK_IND(7)
N_RESET_REQ(7)
N_RESET_IND(7)
N_RESET_RES(7)
N_RESET_CON(7)
N_DISCON_REQ(7)
N_DISCON_IND(7)
USAGE
IOCTLS
ERROR HANDLING
ERRORS
Error Acknowledgement Codes
Disconnect Codes
NOTICES
EXAMPLES
DEVICES
SEE ALSO
BUGS
COMPATIBILITY
CONFORMANCE
HISTORY
REFERENCES
TRADEMARKS
IDENTIFICATION

This document was created by man2html, using the manual pages.
Time: 15:15:12 GMT, December 14, 2017
OpenSS7
SS7 for the
Common Man
Home TopIndex FirstPrev Next LastMore Download Info FAQ Mail  Home -> Documentation -> Man Pages -> Manpage of NPI_SCTP
Last modified: Mon, 28 Apr 2008 23:13:21 GMT
© Copyright 1997-2007 OpenSS7 Corporation All Rights Reserved.