sctp_opt_info() 関数は、sock パラメータに記述されるソケットに関連付けられている SCTP レベルのオプションを返します。1 対多スタイルの SCTP ソケットの場合、id パラメータの値は特定の関連付けを指します。1 対 1 スタイルの SCTP ソケットの場合、id パラメータは無視されます。opt パラメータの値は、取得する SCTP ソケットオプションを指定します。arg パラメータの値は、呼び出し元プログラムによって割り当てられるオプション固有の構造体バッファーです。*len パラメータの値は、オプションの長さです。
opt パラメータは、次の値を取ることができます。
調整可能な再伝送タイムアウト(RTO) を初期化および設定するために使用されるプロトコルのパラメータを返します。プロトコルのパラメータは次の構造体を使用します。
struct sctp_rtoinfo {
    sctp_assoc_t    srto_assoc_id;
    uint32_t        srto_initial;
    uint32_t        srto_max; 
    uint32_t        srto_min;
};
対象になる関連付けを指定するこの値は、呼び出し元プログラムが提供します。
この値は初期 RTO 値です。
この値は最大 RTO 値です。
この値は最小 RTO 値です。
関連付け固有のパラメータを返します。パラメータは次の構造体を使用します。
struct sctp_assocparams {
    sctp_assoc_t    sasoc_assoc_id;
    uint16_t        sasoc_asocmaxrxt;
    uint16_t        sasoc_number_peer_destinations;
    uint32_t        sasoc_peer_rwnd;
    uint32_t        sasoc_local_rwnd;
    uint32_t        sasoc_cookie_life;
};
対象になる関連付けを指定するこの値は、呼び出し元プログラムが提供します。
この値は、関連付けに対する再伝送の最大数を指定します。
この値は、ピアが持つアドレスの数を指定します。
この値は、ピアの受信ウィンドウの現在値を指定します。
この値は、ピアの送信先の、最後に報告された受信ウィンドウを指定します。
この値は、関連付けの cookie の存続時間を指定し、cookie を発行する際に使用されます。
時間の値を使用するすべてのパラメータはミリ秒単位です。
sendto(3SOCKET) 関数の呼び出しが関連付けに関して使用するパラメータのデフォルトセットを返します。パラメータは次の構造体を使用します。
struct sctp_sndrcvinfo {
    uint16_t        sinfo_stream;
    uint16_t        sinfo_ssn;
    uint16_t        sinfo_flags;
    uint32_t        sinfo_ppid;
    uint32_t        sinfo_context;
    uint32_t        sinfo_timetolive;
    uint32_t        sinfo_tsn;
    uint32_t        sinfo_cumtsn;
    sctp_assoc_t    sinfo_assoc_id;
};
この値は、sendmsg() 呼び出しのデフォルトストリームを指定します。
この値は常に 0 です。
この値は、sendmsg() 呼び出しのデフォルトフラグです。フラグは次の値を取ることができます。
MSG_UNORDERED
MSG_ADDR_OVER
MSG_ABORT
MSG_EOF
MSG_PR_SCTP
この値は、sendmsg() 呼び出しのデフォルトのペイロードプロトコル識別子です。
この値は、sendmsg() 呼び出しのデフォルトコンテキストです。
この値は、ミリ秒単位で期間を指定します。この期間を経過すると、伝送が開始されていないメッセージは期限切れになります。値が 0 の場合は、メッセージが期限切れにならないことを示します。MSG_PR_SCTP フラグが設定されている場合、sinfo_timetolive に指定された期間内に伝送が正常に完了しないメッセージは期限切れになります。
この値は常に 0 です。
この値は常に 0 です。
この値は、呼び出し元アプリケーションによって設定され、対象になる関連付けを指定します。
指定されたピアのアドレスのパラメータを返します。パラメータは次の構造体を使用します。
struct sctp_paddrparams {
    sctp_assoc_t               spp_assoc_id;
    struct sockaddr_storage    spp_address;
    uint32_t                   spp_hbinterval;
    uint16_t                   spp_pathmaxrxt;
};
対象になる関連付けを指定するこの値は、呼び出し元プログラムが提供します。
この値は、対象になるピアのアドレスを指定します。
この値は、ミリ秒単位でハートビート間隔を指定します。
この値は、あるアドレスを到達不能と見なすまでの、再伝送を試みる最大回数を指定します。
関連付けに関する現在の状態情報を返します。パラメータは次の構造体を使用します。
struct sctp_status {
    sctp_assoc_t             sstat_assoc_id;
    int32_t                  sstat_state;
    uint32_t                 sstat_rwnd;
    uint16_t                 sstat_unackdata;
    uint16_t                 sstat_penddata;
    uint16_t                 sstat_instrms;
    uint16_t                 sstat_outstrms;
    uint32_t                 sstat_fragmentation_point;
    struct sctp_paddrinfo    sstat_primary;
};
対象になる関連付けを指定するこの値は、呼び出し元プログラムが提供します。
この値は、関連付けの現在の状態を示し、関連付けは次の状態を取ることができます。
SCTP 終端がいずれの関連付けとも関連付けられていません。socket() 関数が終端を開いた直後、または、終端が閉じられた直後、終端はこの状態になります。
bind() の呼び出しのあと、SCTP 終端が 1 つ以上のローカルアドレスにバインドされています。
リモート SCTP 終端からの関連付け要求を終端が待機しています。
SCTP 終端が INIT チャンクを送信し、INIT-ACK チャンクを待機しています。
SCTP 終端が、ピアの INIT-ACK チャンクから受信した cookie をピアにエコーバックしました。
SCTP 終端はピアとデータを交換できます。
SCTP 終端が上位層から SHUTDOWN プリミティブを受信しました。この終端は上位層からデータを受け入れません。
SCTP_SHUTDOWN_PENDING 状態にあった SCTP 終端が SHUTDOWN チャンクをピアに送信しました。SHUTDOWN チャンクが送信されるのは、終端からピアへの未処理データがすべて確認されたあとだけです。終端のピアが SHUTDOWN ACK チャンクを送信すると、終端は SHUTDOWN COMPLETE チャンクを送信し、関連付けが閉じられたと見なされます。
SCTP 終端がピアから SHUTDOWN チャンクを受信しました。この終端はそのユーザーから新しいデータを受け入れません。
SCTP_SHUTDOWN_RECEIVED 状態の SCTP 終端がピアに SHUTDOWN ACK チャンクを送信しました。終端が SHUTDOWN ACK チャンクを送信するのは、その終端からのすべての未処理データをピアが確認したあとだけです。終端のピアが SHUTDOWN COMPLETE チャンクを送信すると、関連付けは閉じられます。
この値は、関連付けピアの現在の受信ウィンドウです。
この値は、未確認 DATA チャンクの数です。
この値は、受信を待機している DATA チャンクの数です。
この値は、着信ストリームの数です。
この値は、発信ストリームの数です。
メッセージ、SCTP ヘッダー、および IP ヘッダーを含めたサイズが sstat_fragmentation_point の値を超える場合、メッセージは分割されます。この値は、パケットの着信先アドレスのパス最大伝送ユニット (P-MTU) と同じです。
この値は、プライマリピアのアドレスに関する情報です。この情報は次の構造体を使用します。
struct sctp_paddrinfo {
    sctp_assoc_t               spinfo_assoc_id;
    struct sockaddr_storage    spinfo_address;
    int32_t                    spinfo_state;
    uint32_t                   spinfo_cwnd;
    uint32_t                   spinfo_srtt;
    uint32_t                   spinfo_rto;
    uint32_t                   spinfo_mtu;
};
対象になる関連付けを指定するこの値は、呼び出し元プログラムが提供します。
この値は、プライマリピアのアドレスです。
この値は、SCTP_ACTIVE または SCTP_INACTIVE の 2 つの値のいずれかを取ります。
この値は、ピアアドレスの輻輳ウィンドウです。
この値は、ピアアドレスに関する現在の平滑化された RTT の計算値です。ミリ秒単位で示されます。
この値は、ピアアドレスに関する現在の伝送タイムアウト値です。ミリ秒単位で示されます。
この値は、ピアアドレスに関する P-MTU です。
sctp_opt_info() 関数は成功すると 0 を返します。失敗すると、sctp_opt_info() 関数は -1 を返し、errno の値を該当するエラーコードに設定します。sctp_opt_info() に渡される sock パラメータのファイル記述子が無効である場合、sctp_opt_info() 関数は失敗して EBADF を返します。sctp_opt_info() 関数に渡される sock パラメータのファイル記述子がソケットではない場合、sctp_opt_info() 関数は失敗して ENOTSOCK を返します。関連付け ID が 1 対多スタイル SCTP ソケットに対して無効である場合、sctp_opt_info() 関数は失敗して errno の値を EINVAL に設定します。指定されたオプションに対して入力バッファー長が短すぎる場合、sctp_opt_info() 関数は失敗して errno の値を EINVAL に設定します。ピアのアドレスのアドレス群が AF_INET または AF_INET6 ではない場合、sctp_opt_info() 関数は失敗して errno の値を EAFNOSUPPORT に設定します。