AIX

通信管理

XNF/AS　プログラマーズガイド　OSI編

解説・文法書

3000-3-B44-10

目　　次

前書き

変更内容

はじめに

第1編　解説

1.　通信管理概説

1.1　OSI通信機能とは

2.　アプリケーションインタフェース

2.1　OSAS/API

2.2　通信エンティティとアソシエーション

2.3　OSASサービスとPLサービス

2.3.1　OSASサービス

2.3.2　PLサービス

2.4　同期型要求と非同期型要求

3.　アソシエーションの確立と解放

3.1　アソシエーションの確立

3.2　アソシエーションの解放

3.3　ACSEのユーザデータ

3.3.1　アソシエーション確立時のユーザデータ

3.3.2　アソシエーション解放時のユーザデータ

3.3.3　ユーザデータ長の制限

3.3.4　PL，ACSEパラメタ長の制限

4.　データ送受信

4.1　データの送信

4.2　データの受信

4.3　ROSEのユーザデータ

4.4　PLのユーザデータ

5.　通信相手の指定

5.1　通信相手の指定

6.　捕捉するシグナル

6.1　捕捉するシグナル

7.　プログラムの作成

7.1　ヘッダファイル

7.2　ライブラリ

7.3　アプリケーションプログラム作成上の注意事項

第2編　文法

8.　ライブラリ関数

8.1　ライブラリ関数一覧

8.2　インタフェース

8.3　記述形式

9.　通信記述部

9.1　通信記述部の形式

9.2　通信記述部の説明

9.3　通信記述部の設定項目

10.　関数仕様

10.1　ENABLE

10.2　SEND

10.3　RECEIVE

10.4　DISABLE

10.5　EVENTS

10.6　CHECK

10.7　RETRYCK

10.8　CLOSE

10.9　OPTION

11.　詳細エラー情報

11.1　詳細エラー情報

12.　詳細エラーコード

12.1　詳細エラーコード

13.　切断理由コード

13.1　切断理由コード

付録

付録A　データ形式

付録A.1　ACSE（アソシエーション制御サービス）のユーザデータ

付録A.2　ROSE（リモートオペレーションサービス）のユーザデータ

付録A.3　PL（プレゼンテーションサービス）のユーザデータ

付録B　マルチネットワーク情報設定方法

付録B.1　プロフィルタイプの指定/参照

付録B.2　アダプタ番号（ビットマップ）の設定/参照

付録B.3　従量課金（INS-P）/時間課金（INS-C）の種別，およびINS-Cの回線速度の指定/参照

付録C　OSIの関連資料

付録D　HI-UX/WE2上で動作するXNF/S-E2との差異

付録E　AIX 5L V5.2以前との差異

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2002, 2009, Hitachi, Ltd.

前書き

■ 対象製品

適用OS：AIX 5L

P-1M14-511　 XNF/AS/BASE　 01-11

適用OS：AIX

P-1M14-5121　 XNF/AS/BASE　 02-03

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

AIXは，米国におけるInternational Business Machines Corporationの登録商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
INS-Cは，日本電信電話(株)のサービス名称です。
INS-Pは，日本電信電話(株)のサービス名称です。

■ 発行

2002年3月（第1版）3000-3-B44
2009年12月（第2版）3000-3-B44-10

■ 著作権

All Rights Reserved. Copyright (C) 2002, 2009, Hitachi, Ltd.

変更内容

変更内容（3000-3-B44-10）　XNF/AS/BASE 01-11（適用OS：AIX 5L），XNF/AS/BASE 02-03（適用OS：AIX）

追加・変更内容 | 変更個所
64ビットカーネルで動作できるようにしました。 | －
CHECK非同期動作オプションを追加しました。 | 2.4(2)，8.1，10.9，11.1，付録E

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，EP8000シリーズの通信管理XNF/ASのOSI通信機能と，その使用方法について説明したものです。

このマニュアルの対象となるプログラムプロダクトを次に示します。

適用OS：AIX 5L

P-1M14-511　XNF/AS/BASE

適用OS：AIX

P-1M14-5121　XNF/AS/BASE

なお，このマニュアルでは，EP8000シリーズを略してWSと表記しています。

対象読者

OSI通信機能を使用して上位プログラムの設計や製作をする方を対象としています。

このマニュアルは，OSI（開放型システム間相互接続）に関する知識があることを前提に説明しています。

また，上位プログラムの設計をする方は，OSIの第7層の機能であるACSE（アソシエーション制御サービス）とROSE（リモートオペレーションサービス），第6層の機能であるプレゼンテーションサービス，および第5層の機能であるセションサービスについての知識が必要です。

マニュアルの構成

このマニュアルは，次に示す編，章と付録から構成されています。

第1編　解説

第1章　通信管理概説

OSI通信機能の目的について説明しています。

第2章　アプリケーションインタフェース

OSI通信機能で提供しているアプリケーションインタフェースについて説明しています。

第3章　アソシエーションの確立と解放

アソシエーションの確立と解放について説明しています。

第4章　データ送受信

データの送受信について説明しています。

第5章　通信相手の指定

通信相手の指定方法について説明しています。

第6章　捕捉するシグナル

OSI通信機能が捕捉するシグナルについて説明しています。

第7章　プログラムの作成

プログラムを作成するときの留意事項について説明しています。

第2編　文法

第8章　ライブラリ関数

ライブラリ関数について説明しています。

第9章　通信記述部

通信記述部について説明しています。

第10章　関数仕様

関数仕様について説明しています。

第11章　詳細エラー情報

詳細エラー情報について説明しています。

第12章　詳細エラーコード

詳細エラーコードについて説明しています。

第13章　切断理由コード

切断理由コードについて説明しています。

付録A　データ形式

ユーザデータ形式について説明しています。

付録B　マルチネットワーク情報設定方法

マルチネットワーク情報の設定方法について説明しています。

付録C　OSIの関連資料

OSIの関連資料について説明しています。

付録D　HI-UX/WE2上で動作するXNF/S-E2との差異

HI-UX/WE2上で動作するXNF/S-E2との差異について説明しています。

付録E　AIX 5L V5.2以前との差異

AIX 5L V5.2以前とAIX 5L V5.3以降との差異について説明しています。

関連マニュアル

このマニュアルの関連マニュアルを次に示します。必要に応じてお読みください。

通信管理　XNF/AS　解説・運用編（3000-3-B41）（AIX 5L用）

通信管理　XNF/AS　構成定義編（3000-3-B42）（AIX 5L用）

通信管理　XNF/AS　NSAPアドレス概説編（3000-3-B43）

通信管理　XNF/AS　解説・運用編（3000-3-B61）（AIX用）

通信管理　XNF/AS　構成定義編（3000-3-B62）（AIX用）

AIXマニュアル（AIXに付属するCD-ROMマニュアルなど）

読書手順

このマニュアルは，次の表に従ってお読みいただくことをお勧めします。

目的 | 記載個所
OSI通信機能の仕組みについて知りたい | 1章，2章，3章，4章，5章，6章
プログラムを作成するときの留意事項について知りたい | 7章
OSI通信機能で提供されているライブラリ関数について知りたい | 8章，9章，10章
XNF/ASが出力するエラー情報について知りたい | 11章，12章，13章
ユーザデータ形式について知りたい | 付録A
マルチネットワーク情報の設定方法について知りたい | 付録B
OSIの関連資料について知りたい | 付録C
従来製品との差異について知りたい | 付録D，付録E

このマニュアルでの表記

このマニュアルでは，製品名称を次に示す略称で表記しています。

製品名称 | 略称
AIX 5L V5.1 | AIX 5L | AIX
AIX 5L V5.2
AIX 5L V5.3
AIX V6.1
Extended HNA based Communication Networking Facility/for Advanced Server | XNF/AS

図中で使用する記号

このマニュアルの図中で使用する記号を，次のように定義します。

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ）　伝播（でんぱ）　必須（ひっす）　閉塞（へいそく）　捕捉（ほそく）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

1.　通信管理概説

この章では，OSI通信機能の目的について説明します。

＜この章の構成＞

1.1　OSI通信機能とは

1.1　OSI通信機能とは

OSI通信機能は，WSの通信管理であり，OSIに準拠した拡張HNA（HNA/EX）ネットワークの通信基盤となる製品です。

OSI通信機能は，多様化するネットワーク形態への対応を可能とするため，次のことを目的としています。

＜この節の構成＞

(1)　 ネットワークを中心とした対等な相互通信

(2)　 異機種間での相互接続

(3)　高速通信網および大量データ転送への対応

(1)　 ネットワークを中心とした対等な相互通信

ネットワークを中心にホストおよびWSなどの実システム間で対等に通信できる機能を提供します。

(2)　 異機種間での相互接続

オープンなネットワークアーキテクチャ（OSIに準拠）を採用すると，他社システムなどの異機種との接続性を高めます。

(3)　高速通信網および大量データ転送への対応

高速通信網への対応やイメージデータなどの大量データを扱うアプリケーションに対応できます。

参考

OSI通信機能の概要については，マニュアル「通信管理　XNF/AS　解説・運用編」を参照してください。

このマニュアルでは，OSIに関する用語は説明していません。OSIの用語については，OSIの関連資料を参照してください。OSIの関連資料については，「付録C　OSIの関連資料」を参照してください。

2.　アプリケーションインタフェース

この章では，OSI通信機能で提供しているアプリケーションインタフェースについて説明します。

＜この章の構成＞

2.1　OSAS/API

2.2　通信エンティティとアソシエーション

2.3　OSASサービスとPLサービス

2.4　同期型要求と非同期型要求

2.1　OSAS/API

OSI通信機能では，各種アプリケーション間通信を実現するOSAS（OSIアプリケーション共通機能：OSI Application Support Common Facility）をサポートしています。各システムのネットワークソフトウェアは，このOSASを使用することによって，お互いに通信ができます。

OSI通信機能では，図2-1に示すようなACSE（アソシエーション制御サービス），ROSE（リモートオペレーションサービス）およびプレゼンテーションサービスを切り口としたAPI（アプリケーションプログラムインタフェース）を提供します。このOSASインタフェースは，「C言語」のライブラリ関数として提供します。この章の例では，ライブラリ関数名を一般名で使用します。

図2-1　OSAS/API

2.2　通信エンティティとアソシエーション

＜この節の構成＞

(1)　通信エンティティとAP識別子

(2)　自ステーションのPSAPアドレス

(3)　アソシエーション

(1)　通信エンティティとAP識別子

OSI通信機能を使用して，データを送受信する上位プログラムをユーザ通信エンティティといいます。各ユーザ通信エンティティは，一つ一つが独立したアプリケーションプロセスであり，ユーザ通信エンティティを識別するために「AP識別子」，または「自ステーションのPSAPアドレス」を使用します。AP識別子は，最大14文字のIA5文字列であり，あらかじめ構成定義時に定義しておく必要があります。

なお，ユーザ通信エンティティの識別として「AP識別子」を使用した場合，「自ステーションのPSAPアドレス」は，構成定義時に指定する必要があります。

「AP識別子」，「自ステーションのPSAPアドレス」のどちらを使用するかは，通信を開始する際に指定します。詳細については，「9.2　通信記述部の説明」を参照してください。

(2)　自ステーションのPSAPアドレス

上位プログラムが使用するTセレクタ（最大32バイト，バイナリ），Sセレクタ（最大16バイト，バイナリ），およびPセレクタ（最大16バイト，バイナリ）を指定します。OSI通信機能は，この情報でTSAP，SSAP，およびPSAPと，上位プログラムの関連づけを行います。詳細については，「5.　通信相手の指定」を参照してください。

これらの関係を図2-2に示します。OSI通信機能では，TSAPとユーザ通信エンティティの対応づけを行います。PSAPおよびSSAPの指定は，必須ではありません。

一つのTSAPを別々のプロセスで共用し，SSAPを別々に定義することもできます。

図2-2　ユーザ通信エンティティの定義

(3)　アソシエーション

ユーザ通信エンティティ間でデータ伝送をするための論理的な結合を「アソシエーション」といいます。このアソシエーションは，一つのユーザ通信エンティティで複数本持つことができ，同時に複数のユーザ通信エンティティとの間でデータ伝送ができます。

OSI通信機能は，上位プログラムからの要求によってアソシエーションを確立します。このとき，OSI通信機能は，システム内でアソシエーションを一意に識別する情報として「アソシエーション端点識別子」を上位プログラムに知らせます。これ以降，上位プログラムは，アソシエーション端点識別子を指定してデータ伝送を行います。このアソシエーション端点識別子は，アソシエーションを解放するまで有効です。

OSI通信機能の上位プログラムは，プロトコル上で上位プロセスを識別するAP名称として発呼側，着呼側，または応答側ステーションのAEタイトル（APタイトルAE修飾子）およびインボケーション識別子をアソシエーション設定時に指定できます（任意）。

詳細については，「9.2　通信記述部の説明」を参照してください。

2.3　OSASサービスとPLサービス

OSI通信機能が提供するAPIのサービス種別には，OSASサービスとPLサービスの2種類があります。このサービス種別は，アソシエーションごとにどちらか一方だけを指定でき，アソシエーションを設定し解放するまでの間，サービス種別を変更することはできません。

＜この節の構成＞

2.3.1　OSASサービス

2.3.2　PLサービス

2.3.1　OSASサービス

OSI通信機能のACSEとROSE（リモートオペレーションサービス）を使用してデータを送受信する場合にOSASサービスを指定します。ユーザ通信エンティティはROPM（リモートオペレーションプロトコルマシン）を実装してください。

リモートオペレーションは分散アプリケーションを実現するための問い合わせ応答型の会話機能です。アソシエーションクラス（ROSE起動クラス）およびオペレーションクラス（モードと応答のクラス）の定義はROSEユーザが決定します。

ROSEは，ROSEサービスをP-DATAにマッピングする機能を持ちます。

ユーザ通信エンティティは，抽象構文表記法1（ASN.1）の基本符号化規則によって変換した転送構文を使用します。

リモートオペレーションサービスを表2-1に示します。

表2-1　リモートオペレーションサービス

サービス名 | 機能概要 | 要求種別
SEND | RECEIVE
RO-INVOKE | ROSEデータを送受信します。 | O_RIVRQ | O_RIVID
RO-RESULT | ROSEデータ受信結果を送受信します。 | O_RRSRQ | O_RRSID
RO-ERROR | ROSEオペレーションの報告を送受信します。 | O_RERRQ | O_RERID
RO-REJECT-U | ROSEオペレーション拒否通知を送受信します。 | O_RRJURQ | O_RRJUID
RO-REJECT-P | 相手ROSEが起動したオペレーション拒否通知を受信します。 | － | O_RRJPID

（凡例）

－：該当しません。

（例）OSASサービスを使用する場合の応用コンテキスト

2.3.2　PLサービス

OSI通信機能のACSEとプレゼンテーションサービスとを使用してデータを送受信する場合にPLサービスを指定します。ユーザ通信エンティティは抽象構文表記法1（ASN.1）の基本符号化規則によって変換した転送構文を使用します。

また，オプションサービスとして，セションサービスに直接マッピングされる次のサービスを提供します。

トークン制御

小同期点転送

再同期点制御

大同期点転送

制御データ転送

プレゼンテーションサービスを表2-2に示します。

表2-2　プレゼンテーションサービス

PLサービス | 機能概要 | 要求種別
SEND | RECEIVE
P-DATA | PLデータを送受信します。 | O_PDTRQ | O_PDTID
P-TOKEN-GIVE | トークン譲渡を送受信します。 | O_PGTRQ | O_PGTID
P-TOKEN-PLEASE | トークン要求を送受信します。 | O_PPTRQ | O_PPTID
P-SYNC-MINOR | 小同期要求を送受信します。 | O_PSMNRQ | O_PSMNID
O_PSMNRS | O_PSMNCF
P-RESYNCHRONIZE | 再同期点要求を送受信します。 | O_PRSRQ | O_PRSID
O_PRSRS | O_PRSCF
P-SYNC-MAJOR | 大同期点要求を送受信します。 | O_PSMJRQ | O_PSMJID
O_PSMJRS | O_PSMJCF
P-TYPED-DATA | 制御データ転送要求を送受信します。 | O_PTDTRQ | O_PTDTID

（例）PLサービスを使用する場合の応用コンテキスト

2.4　同期型要求と非同期型要求

OSI通信機能が提供するAPIは，同期型要求と非同期型要求の2種類があります。ここでいう要求とは，上位プログラムがデータの送受信などをするために，OSI通信機能のライブラリ関数を呼び出すことを意味しています。

＜この節の構成＞

(1)　同期型要求

(2)　非同期型要求

(1)　同期型要求

OSI通信機能のライブラリ関数の呼び出し後，上位プログラムに制御が戻るのは，OSI通信機能側の処理がすべて完了した時点（例えば，送信データをすべて網側に出力した時点）です。

同期型要求の処理概要を図2-3に示します。

図2-3　同期型要求の処理概要

(2)　非同期型要求

OSI通信機能のライブラリ関数の呼び出し後，すぐに上位プログラムに制御が戻ります。上位プログラムは，そこで何らかの処理ができます。上位プログラムは，OSI通信機能側の処理の完了をEVENTS関数で待ちます。さらに，処理結果を得るためにCHECK関数を発行します。

非同期型要求をする場合，その要求から完了事象取得までの一連の処理は同一プロセス内で行ってください。例えば，非同期関数発行後，fork，execを実行し，子プロセスで完了事象を取得することはできません。

AIX 5L V5.3以降を使用している場合は，ENABLE（獲得型）関数またはENABLE（受け入れ指示型）関数を発行したあとに，CHECK非同期動作オプション（O_OPT_EVTAGAIN）を指定したOPTION関数を発行してください。

EVENTS関数が「イベント有り」でリターンしても，CHECK関数が「処理未完了(errno=EAGAIN)」となる場合があります。この場合は，処理結果が得られるまでEVENTS関数およびCHECK関数を発行してください。

非同期型要求の処理概要を図2-4に示します。

図2-4　非同期型要求の処理概要

3.　アソシエーションの確立と解放

この章では，アソシエーションの確立と解放について説明します。

＜この章の構成＞

3.1　アソシエーションの確立

3.2　アソシエーションの解放

3.3　ACSEのユーザデータ

3.1　アソシエーションの確立

上位プログラムは，通信開始をアソシエーション確立によって行います。上位プログラムがACSEのユーザデータを送受信することによって，アソシエーションが確立します。上位プログラムがアソシエーションを確立（活性化）するには，二つの方法があります。

＜この節の構成＞

(1)　獲得型

(2)　受け入れ型

(1)　獲得型

この方法では，自分から相手のユーザ通信エンティティにアソシエーションの確立要求を行います。

上位プログラムは，相手のユーザ通信エンティティを指定してアソシエーションの確立要求（ENABLE）を行います。その後，相手のユーザ通信エンティティからの受諾応答を受け取り（RECEIVE），アソシエーションの確立が完了します。

また，相手のユーザ通信エンティティがアソシエーション確立要求を拒否した場合は，拒否応答を受け取ります（RECEIVE）。

この場合，非活性化（DISABLE）要求でアソシエーションが解放状態であることをOSI通信機能に知らせます。

(2)　受け入れ型

この方法では，相手のユーザ通信エンティティからのアソシエーション確立要求を待ち，確立要求があれば，それを受け取ります（ENABLE）。

上位プログラムが，相手のユーザ通信エンティティからのアソシエーション確立要求に対して受諾応答を返す（ENABLE）ことによって，アソシエーションの確立が完了します。また，アソシエーション確立要求を拒否する場合は，拒否応答を返します（DISABLE）。

なお，上位プログラムのアソシエーション受け入れ準備が完了していない場合，またはPSAPアドレスが一致しない場合は，OSI通信機能が拒否応答を返します。

アソシエーションの確立手順（同期型の場合）を図3-1に，アソシエーションの確立手順（非同期型の場合）を図3-2に示します。

図3-1　アソシエーションの確立手順（同期型の場合）

図3-2　アソシエーションの確立手順（非同期型の場合）

3.2　アソシエーションの解放

上位プログラムは，相手のユーザ通信エンティティとの間でのデータ転送の完了に伴い，アソシエーションを解放（非活性化）します。上位プログラムがACSEのユーザデータを送受信することによって，アソシエーションを解放します。

アソシエーションを解放するには，正常解放と強制解放の二つの方法があります。

＜この節の構成＞

(1)　正常解放

(2)　強制解放

(1)　正常解放

正常解放では，両方のユーザ通信エンティティが合意した場合にアソシエーションを解放します。通常は，この方式でアソシエーションの解放を行います。

上位プログラムは，自分からアソシエーションを解放する場合，相手のユーザ通信エンティティに対して解放要求（DISABLE）を行います。その後，相手のユーザ通信エンティティから受諾応答を受け取り，アソシエーションの解放が完了します。

相手のユーザ通信エンティティから解放する場合は，アソシエーションの解放要求を受けた（RECEIVEで受信）時点で，受諾応答（DISABLE）を返します。そこでアソシエーションの解放が完了します。

(2)　強制解放

強制解放では，どちらかのユーザ通信エンティティがアソシエーションを強制的に解放（アボート）します。上位プログラムが自分からアソシエーションを強制的に解放する場合は，相手のユーザ通信エンティティに対して強制解放要求（DISABLE）を行います。この方式の場合は，相手のユーザ通信エンティティから受諾応答を待つ必要はありません。相手のユーザ通信エンティティからの強制解放の場合は，強制解放要求を受けた（RECEIVEで受信）時点でアソシエーションは解放されています。

この場合は，非活性化（DISABLE）要求でアソシエーションが解放状態であることをOSI通信機能に知らせます。

なお，アソシエーション強制解放は，上位プログラムのほかに，OSI通信機能がする場合もあります。これを「提供者アボート」といい，上位プログラムのアボート「利用者アボート」と区別しています。

OSI通信機能がする場合も，アソシエーション強制解放を受けた（RECEIVEで受信）時点でアソシエーションは解放されています。非活性化（DISABLE）要求でアソシエーションが解放状態であることをOSI通信機能に知らせます。

アソシエーションの解放手順（同期型の場合）を図3-3に，アソシエーションの解放手順（非同期型の場合）を図3-4に示します。

図3-3　アソシエーションの解放手順（同期型の場合）

図3-4　アソシエーションの解放手順（非同期型の場合）

3.3　ACSEのユーザデータ

送受信するユーザデータには，ユーザバッファで指定するデータとそれぞれのパラメタフィールドで指定するデータがあります。各データの領域と長さは，通信記述部というインタフェース領域で指定します。

＜この節の構成＞

3.3.1　アソシエーション確立時のユーザデータ

3.3.2　アソシエーション解放時のユーザデータ

3.3.3　ユーザデータ長の制限

3.3.4　PL，ACSEパラメタ長の制限

3.3.1　アソシエーション確立時のユーザデータ

＜この項の構成＞

(1)　CP-AARQ-APDU（ENABLE獲得型，受け入れ型）

(2)　CPA-AARE-APDU（ENABLE応答型，RECEIVE確立確認）

(3)　CPR-AARE-APDU（DISABLE確立拒否，RECEIVE確立確認）

(1)　CP-AARQ-APDU（ENABLE獲得型，受け入れ型）

CP-AARQ-APDU形式を図3-5に示します。

図3-5　CP-AARQ-APDU形式

説明

発呼側Pセレクタと着呼側Pセレクタの二つのパラメタから構成されます。オプションパラメタです。
データ長：0～44バイト

ENABLE | 発呼側Pセレクタ | 着呼側Pセレクタ
獲得型 | 構成定義またはO_spsapのPセレクタ | O_psapのPセレクタ
受け入れ型 | O_psapのPセレクタ | 構成定義またはO_spsapのPセレクタ

ユーザ通信エンティティが使用するプレゼンテーションコンテキスト識別子と抽象構文および複数の転送構文から成り，複数のコンテキストを定義できます。必須パラメタです。
データ長：15～nバイト（O_pctxdのデータ長＋1）

ユーザ通信エンティティのサービス要素名称です。必須パラメタです。
データ長：5～nバイト（O_apctxのデータ長＋1）

ACSEを使用するユーザ通信エンティティのAP名称です。発呼側AP名称と着呼側AP名称の二つのパラメタから構成されます。各AP名称は，APタイトル，AE修飾子，APインボケーションID，およびAEインボケーションIDの四つのパートから構成されます。すべてオプションパラメタです。
データ長：0～nバイト（O_mapti，O_yapti，O_maequ，O_yaequ，O_mapid，O_yapid，O_maeid，O_yaeidのデータ長＋1～28）

ACSEのEXTERNALというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

(2)　CPA-AARE-APDU（ENABLE応答型，RECEIVE確立確認）

CPA-AARE-APDU形式を図3-6に示します。

図3-6　CPA-AARE-APDU形式

説明

応答側Pセレクタであり，オプションパラメタです。
データ長：0～22バイト（O_psapのPセレクタのデータ長＋1）

ユーザ通信エンティティが指定したプレゼンテーションコンテキスト定義に対する受諾，拒否の結果を示します。必須パラメタです。
データ長：7～nバイト（O_pctxrのデータ長＋1）

ユーザ通信エンティティのサービス要素名称です。必須パラメタです。
データ長：5～nバイト（O_apctxのデータ長＋1）

ACSEの受諾，拒否の結果を示します。O_efcdに結果の内容を反映します。必須パラメタです。
データ長：5～13バイト

ACSEの確立受諾の診断を示します。

ACSEを使用するユーザ通信エンティティの応答側AP名称を示します。APタイトル，AE修飾子，APインボケーションID，AEインボケーションIDの四つのパートから構成されます。すべてオプションパラメタです。
データ長：0～nバイト（O_rapti，O_raequ，O_rapid，O_raeidのデータ長＋1～14）

ACSEのEXTERNAというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

(3)　CPR-AARE-APDU（DISABLE確立拒否，RECEIVE確立確認）

CPR-AARE-APDU形式を図3-7に示します。

図3-7　CPR-AARE-APDU形式

注

セション層が拒否した場合は，1～7のパラメタは存在しません。
O_efcd，O_intrpに結果の内容を反映します。

プレゼンテーション層が拒否した場合は，2～7のパラメタは存在しません。
O_efcd，O_intrpに結果の内容を反映します。

説明

応答側Pセレクタであり，オプションパラメタです。
データ長：0～22バイト（O_psapのPセレクタのデータ長＋1）

ユーザ通信エンティティが指定したプレゼンテーションコンテキスト定義に対する受諾，拒否の結果を示します。必須パラメタです。
データ長：7～nバイト（O_pctxrのデータ長＋1）

ユーザ通信エンティティのサービス要素名称です。必須パラメタです。
データ長：5～nバイト（O_apctxのデータ長＋1）

ACSEの受諾，拒否の結果を示します。
O_efcdに結果の内容を反映します。必須パラメタです。
データ長：5～13バイト

ACSEの確立拒否の理由診断を示します。
O_recodに理由診断の内容を反映します。必須パラメタです。
データ長：0～19バイト

ACSEを使用するユーザ通信エンティティの応答側AP名称を示します。
APタイトル，AE修飾子，APインボケーションID，AEインボケーションIDの四つのパートから構成されます。すべてオプションパラメタです。
データ長：0～nバイト（O_rapti，O_raequ，O_rapid，O_raeidのデータ長＋1～14）

ACSEのEXTERNALというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

3.3.2　アソシエーション解放時のユーザデータ

＜この項の構成＞

(1)　RLRQ-APDU（DISABLE正常解放，RECEIVE解放指示）

(2)　RLRE-APDU（DISABLE正常解放応答，解放確認）

(3)　ARU-ABRT-APDU（DISABLE異常解放要求，RECEIVE異常解放指示）

(4)　ARP-PPDU（DISABLE異常解放要求，RECEIVE異常解放指示）

(1)　RLRQ-APDU（DISABLE正常解放，RECEIVE解放指示）

RLRQ-APDU形式を図3-8に示します。

図3-8　RLRQ-APDU形式

説明

ACSEのEXTERNALというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

(2)　RLRE-APDU（DISABLE正常解放応答，解放確認）

RLRE-APDU形式を図3-9に示します。

図3-9　RLRE-APDU形式

説明

ACSEのEXTERNALというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

(3)　ARU-ABRT-APDU（DISABLE異常解放要求，RECEIVE異常解放指示）

ARU-ABRT-APDU形式を図3-10に示します。

図3-10　ARU-ABRT-APDU形式

説明

ユーザ通信エンティティが使用するプレゼンテーションコンテキスト識別子と転送構文から成り，複数のリストを指定できます。必須パラメタです。このパラメタはバージョン2のときだけ存在します。
データ長：10～nバイト（O_ctxltのデータ長＋1）

ACSEの異常解放の中断元を示します。
O_intrpに中断元の内容を反映します。必須パラメタです。このパラメタは，バージョン2のときだけ存在します。
データ長：3～7バイト

ACSEのEXTERNALというデータ構造を持つACSEデータです。ユーザバッファを使用します。オプションパラメタです。このパラメタは，バージョン2のときだけ存在します。ユーザAPDUが存在するときは必須です。
データ長：0～nバイト（O_rdtlen，O_sdtlenで示す長さ）

(4)　ARP-PPDU（DISABLE異常解放要求，RECEIVE異常解放指示）

プレゼンテーション層が異常解放した場合，ユーザデータは存在しません。O_intrpに中断元を反映します。

ARP-PPDU形式を図3-11に示します。

図3-11　ARP-PPDU形式

3.3.3　ユーザデータ長の制限

「図3-5　CP-AARQ-APDU形式」～「図3-10　ARU-ABRT-APDU形式」に示すPPDU全体をSSDUといいます。SSDU長には次に示す制限があります。

バージョン1を指定する場合：SSDU長を512バイト以下にする必要があります。

バージョン2を指定する場合：SSDU長を10,240バイト以下にする必要があります。

バージョン1とバージョン2を指定する場合：SSDU長を512バイト以下にする必要があります。

ユーザデータ以外のPPDUのパラメタ長を表3-1に示します。

表3-1　PPDUのパラメタ長（単位：バイト）

項番 | PPDUのパラメタ | PPDU
CP-AARQ | CPA-AARE | CPR-AARE | RLRQ | RLRE | ARU-ABRT
1 | PL-PCI 1 | 13～21 | 13～21 | 6～14 | 2～6 | 2～6 | 2～6
2 | PL-PCI 2 | 2～23 | 2～23 | 2～13 | なし | なし | 2～6
3 | ACSE PDVリスト | 11～19 | 7～15 | 7～15 | 7～15 | 7～15 | 7～15
4 | ACSE PCI 1 | 6～10 | 6～10 | 6～10 | 7～19 | 7～19 | 2～6
5 | ACSE PCI 2 | 2～13 | 2～13 | 2～13 | なし | なし | 2～6
合計 | 34～86 | 30～82 | 23～65 | 16～40 | 16～40 | 15～39

SSDU長は，表3-1に示す合計値とユーザパラメタ長との合計値です。

PPDUのパラメタは参考です。詳細については，ISO規格（8823，8650）を参照してください。

3.3.4　PL，ACSEパラメタ長の制限

「図3-5　CP-AARQ-APDU形式」～「図3-10　ARU-ABRT-APDU形式」に示すPPDUのユーザのうち，ユーザバッファを使用するユーザAPDU（EXTERNALを含む）以外のユーザデータのトータル長は，472バイト以下にする必要があります。

PL，ACSEユーザデータを表3-2に示します。

表3-2　PL，ACSEユーザデータ

項番 | PPDU | PL，ACSEユーザデータ（図3-5～図3-10）
1※ | 2※ | 3※ | 4※ | 5※ | 6※
1 | CP-AARQ | PL Pセレクタ | コンテキスト定義 | 応用コンテキスト | AP名称 | － | －
2 | CPA-AARE | PL Pセレクタ | コンテキスト定義 | 応用コンテキスト | ACSE結果 | ACSE理由 | AP名称
3 | CPR-AARE | PL Pセレクタ | コンテキスト定義 | 応用コンテキスト | ACSE結果 | ACSE理由 | AP名称
4 | RLRQ | － | － | － | － | － | －
5 | RLRE | － | － | － | － | － | －
6 | ARU-ABRT | コンテキスト識別 | ACSE中断元 | － | － | － | －

（凡例）

－：該当しません。

注※

「図3-5　CP-AARQ-APDU形式」～「図3-10　ARU-ABRT-APDU形式」の図中の数字に対応しています。

4.　データ送受信

この章では，データの送受信について説明します。

＜この章の構成＞

4.1　データの送信

4.2　データの受信

4.3　ROSEのユーザデータ

4.4　PLのユーザデータ

4.1　データの送信

上位プログラムは，アソシエーション単位にデータの送信（SEND）を要求できます。どのアソシエーションを使用するかは，アソシエーション確立時にOSI通信機能から渡されたアソシエーション端点識別子で指定します。

上位プログラムは，最大64キロバイトのユーザデータを一度に送信要求できます。

このマニュアルでユーザデータという場合は，プレゼンテーションデータPDU（TD-PPDU），すなわち，セションサービスデータ（SSDU）を示します。

この最大ユーザデータ長はシステムの性能を保証するための目安であり，64キロバイトを超えるユーザデータを指定しても，OSI通信機能はエラーとしません。

これは，SSDU長がアプリケーションによって決定されるため，OSI通信機能の制限にできないためです。各アプリケーションで最大ユーザデータ長を決定してください。OSI通信機能はその送信要求を受けて，それぞれのレイヤが決められた大きさに分割して送信します。

4.2　データの受信

上位プログラムは，アソシエーション単位にデータの受信（RECEIVE）を要求できます。どのアソシエーションに対する受信要求かは，アソシエーション端点識別子で指定します。

上位プログラムは，アソシエーション単位に受信バッファを用意して，最大64キロバイトのデータを一度に受信要求できます。この最大ユーザデータ長はシステムの性能を保証するための目安であり，64キロバイトを超える受信バッファ長を指定しても，OSI通信機能はエラーとしません。

OSI通信機能では，それぞれのレイヤで決められた大きさに分割されている受信データを組み立てて上位プログラムに渡します。受信データが大き過ぎて，上位プログラムが指定した受信バッファに入りきらない場合は，データの後ろを切り捨てます。この場合，OSI通信機能は，リターン情報で報告します。

なお，受信データの到着と受信要求とは同期していません。上位プログラムがデータの受信を要求したときにそのアソシエーション上にデータが到着していない場合は，データが到着するまで要求を保留します。

したがって，上位プログラムは，同期型の要求をすると，データが到着するまでその後の動作ができなくなります。

また，次に示す状況下では受信ビジーが発生します。これを防ぐために，上位プログラムは，通信時は常に非同期の受信要求を行い，完了事象を速やかに取得してください。

到着した受信データがある程度溜まっているとき

完了事象がある場合に，さらに受信データが到着したとき

注意

受信ビジー状態が続くと，受信リソースが枯渇することがあります。受信ビジー状態が相手に伝播すると，相手局はデータを送信できなくなります。したがって，上位プログラムは，受信ビジーを発生させないように，十分注意してください。

データの送受信手順（同期型の場合）を図4-1に，データの送受信手順（非同期型の場合）を図4-2に示します。

図4-1　データの送受信手順（同期型の場合）

図4-2　データの送受信手順（非同期型の場合）

4.3　ROSEのユーザデータ

送受信するユーザデータは，ユーザバッファで指定します。データの領域と長さは，通信記述部というインタフェース領域で指定します。

ROSEデータ転送時にユーザが指定する必要があるデータは，次の二つのパートから成ります。

＜この節の構成＞

(1)　PLのuser-dataというデータ構造を持つPDVリスト

(2)　ROSEのAPDU

(1)　PLのuser-dataというデータ構造を持つPDVリスト

PDVリスト部は，コンテキスト識別子と転送構文名を指定するパートです。

転送構文名は，転送構文を識別したり，符号化規則を識別したりするのに使用します。PDVリスト部のデータ形式については，「付録A.2　ROSE（リモートオペレーションサービス）のユーザデータ」を参照してください。転送構文名を一つしか使用しない場合は，PDVリストの転送構文名を省略できます。複数の転送構文名を使用する場合は省略できません。PDVリスト部に続けてROSEのAPDUを表現します。

(2)　ROSEのAPDU

ROSEのAPDUはROSEオペレーションの種類によって内容が異なります。

インボークIDはROSEのAPDUに共通のデータであり，起動するオペレーションの識別子です。詳細については，「付録A　データ形式」を参照してください。

ROSEのユーザデータの形式を図4-3に示します。

図4-3　ROSEのユーザデータの形式

4.4　PLのユーザデータ

送受信するユーザデータは，ユーザバッファで指定します。各データの領域と長さは，通信記述部というインタフェース領域で指定します。

PLデータ転送時にユーザが指定する必要があるデータは，次の二つのパートから成ります。

＜この節の構成＞

(1)　PLのuser-dataというデータ構造を持つPDVリスト

(2)　PLのPPDU

(1)　PLのuser-dataというデータ構造を持つPDVリスト

PDVリスト部は，コンテキスト識別子と転送構文名を指定するパートです。転送構文名は，転送構文を識別したり，符号化規則を識別したりするのに使用します。PDVリスト部のデータ形式については，「付録A.3　PL（プレゼンテーションサービス）のユーザデータ」を参照してください。転送構文名を一つしか使用しない場合は，PDVリストの転送構文名を省略できます。複数の転送構文名を使用する場合は省略できません。PDVリスト部に続けてPLのPPDUを表現します。P-DATAのユーザデータは必ず指定してください。

(2)　PLのPPDU

PLのPPDUはPLサービスの種類によって内容が異なります。詳細については，「付録A　データ形式」を参照してください。

PLのユーザデータの形式を図4-4に示します。

図4-4　PLのユーザデータの形式

5.　通信相手の指定

この章では，通信相手の指定方法について説明します。

＜この章の構成＞

5.1　通信相手の指定

5.1　通信相手の指定

上位プログラムは，アソシエーションの確立要求時に，相手のユーザ通信エンティティを識別するアドレスを通信記述部に指定する必要があります。

このアドレスは，相手のユーザ通信エンティティの「PSAPアドレス」であり，次の情報が含まれています。

Pセレクタ（省略する場合もある）：最大16バイト

Sセレクタ（省略する場合もある）：最大16バイト

Tセレクタ（省略する場合もある）：最大32バイト

NSAPアドレス：最大20バイト

OSI通信機能は，アソシエーションの確立受け入れ時に，相手のユーザ通信エンティティを識別するアドレスを通信記述部に指定します。上位プログラムは，相手のユーザ通信エンティティの「PSAPアドレス」を受信する必要があります。

相手PSAPアドレス形式を図5-1に示します。アドレス形式の詳細については，「第2編　文法」で説明しています。

図5-1　相手PSAPアドレス形式

6.　捕捉するシグナル

この章では，OSI通信機能が捕捉するシグナルについて説明します。

＜この章の構成＞

6.1　捕捉するシグナル

6.1　捕捉するシグナル

OSI通信機能は，表6-1に示すシグナルを捕捉します。シグナルを捕捉すると，関数の詳細エラー情報にEINTRがセットされ，エラーリターンします。

この場合，ユーザは，DISABLE関数またはCLOSE関数を発行して，当該アソシエーションを非活性化してください。

表6-1　捕捉するシグナル

項番 | シグナル名 | 番号 | 意味
1 | SIGKILL | 9 | 強制終了
2 | SIGTERM | 15 | ソフトウェア終了シグナル

7.　プログラムの作成

この章では，プログラムを作成するときの留意事項について説明します。

＜この章の構成＞

7.1　ヘッダファイル

7.2　ライブラリ

7.3　アプリケーションプログラム作成上の注意事項

7.1　ヘッダファイル

OSI通信機能を使用する上位プログラムは，表7-1に示すヘッダファイルを取り込む必要があります。

表7-1　OSI通信機能に関係するヘッダファイル

項番 | ファイル名 | 書き方 | 説明
1 | xnf.h | #include <xnfw/xnf.h> | OSI通信機能の通信記述部の定義情報です。
2 | errno.h | #include <errno.h> | グローバル変数errnoを参照する際に使用します。

7.2　ライブラリ

OSI通信機能を使用する上位プログラムは，リンケージ実行時に，OSI通信機能用のライブラリ関数のオブジェクトモジュールを取り込む必要があります。このため，コンパイルまたはリンクを実行するときには，表7-2に示すライブラリを指定する必要があります。

共用ライブラリを使用すると，OSI通信機能のバージョンアップでライブラリが変更された場合でも，上位プログラムを再リンケージする必要がなくなります。

表7-2　OSI通信機能が提供するライブラリファイル

項番 | ライブラリ種別 | 説明
1 | 共用ライブラリ（/lib/libxOSI.so） | ライブラリ関数は，実行時に上位プログラムと結合されます。

OSI通信機能使用時のライブラリファイルとのリンク方法を表7-3に示します。

表7-3　OSI通信機能使用時のライブラリファイルとのリンク方法

項番 | リンク対象ライブラリ種別 | リンク方法
1 | 共用ライブラリ（/lib/libxOSI.so） | xlc ファイル名 -brtl -lxOSI

注

コンパイルオプションの詳細については，各種コンパイラのマニュアルを参照してください。

7.3　アプリケーションプログラム作成上の注意事項

OSI通信機能を使用して通信するアプリケーションプログラムを作成する場合の注意事項について説明します。

＜この節の構成＞

(1)　RECEIVE関数の先出しについて

(2)　通信中の停止処理について

(1)　RECEIVE関数の先出しについて

OSI通信機能では，相手からのデータを受信すると，RECEIVE関数で受信するまでシステム内のバッファにデータを保存します。そのため，RECEIVE関数が発行されないと，システム資源が消費され，フロー制御などによって通信ができなくなることがあります。

これを防止するためには，アプリケーションプログラムは相手から受信したデータをできるだけ速やかにRECEIVE関数で受け取る必要があります。

ENABLE関数の発行後は，RECEIVE関数を常に発行し，データを受け取るようにしてください。

システム資源の消費を防止するために，アプリケーションプログラムは，次に示すどちらかの方法で作成してください。

ENABLE関数の発行後は非同期のRECEIVE関数を常に発行し，EVENTS関数で受信完了事象を検知したあとは，速やかにCHECK関数を発行してデータを受け取ってください。

SEND関数とRECEIVE関数を別プロセスで発行し，SEND中もRECEIVE関数が発行されるようにしてください。

(2)　通信中の停止処理について

XNF/ASでは，通信中にもxnfstopコマンドでOSI通信機能の停止処理ができます。OSI通信機能が停止すると，発行された関数はerrno=ENXIOでエラーリターンし，以降の処理は行えません。このような場合，アプリケーションプログラムは，CLOSE関数を発行して通信を速やかに終了させるようにしてください。

8.　ライブラリ関数

この章では，ライブラリ関数について説明します。

＜この章の構成＞

8.1　ライブラリ関数一覧

8.2　インタフェース

8.3　記述形式

8.1　ライブラリ関数一覧

OSI通信機能の提供するライブラリ関数の一覧を表8-1に示します。また，インクルードファイルは，<xnfw/xnf.h>となります。

表8-1　ライブラリ関数一覧

項番 | 機能名称 | 関数名 | 機能概要
1 | ENABLE | xnf_enb | アソシエーションの活性化（確立）要求を行います。
2 | SEND | xnf_snd | データの送信要求を行います。
3 | RECEIVE | xnf_rcv | アソシエーション確立応答の受信，解放指示の受信，およびデータの受信を行います。
4 | DISABLE | xnf_dis | アソシエーションの非活性化（解放）要求，およびアソシエーション確立要求に対する拒否応答を行います。
5 | EVENTS | xnf_evt | OSI通信機能に対する非同期要求が完了するのを監視します。
6 | CHECK | xnf_chk | 非同期要求の完了を受信します。
7 | RETRYCK | xnf_rty | OSI通信機能で障害を検出したときに，リトライできるかどうかの判定を行います。
8 | CLOSE | xnf_cls | アソシエーション端点識別子を非活性化します。
9 | OPTION | xnf_option | オプションコードで指定したコードの処理を行います。

8.2　インタフェース

OSI通信機能のAPI（アプリケーションプログラムインタフェース）は，次に示す二つの部分から構成されます。

通信記述部

ライブラリ関数

通信記述部は，通信管理と上位プログラムとの間のインタフェース情報を受け渡しするための領域の定義であり，あらかじめ型枠を決めた構造体です。上位プログラムは，ライブラリ関数を呼び出す前に，その関数で必要な情報を通信記述部に設定しておきます。全二重で通信する場合，送信と受信側とで通信記述部の領域を分けてください。

OSI通信機能からのリターン情報は，関数から戻ったときに通信記述部に書き込まれています。

8.3　記述形式

このマニュアルでは，原則，次に示す形式でライブラリ関数の説明をしています。

機能概要
通信管理が提供するライブラリ関数の機能概要を説明しています。

書き方
ライブラリ関数の呼び出し方を，C言語を使用してコーディングレベルで記述しています。

リターン情報
通信管理がアプリケーションに報告する内容を説明しています。リターン情報には次の三つがあります。

リターンコード：リターンコードの種類とその説明

詳細エラー情報：発生したエラーの詳細説明

詳細エラーコード：通信記述部のO_statusに設定する詳細のエラーコード

特記事項
ライブラリ関数についての特記事項を説明しています。

9.　通信記述部

この章では，通信記述部について説明します。

＜この章の構成＞

9.1　通信記述部の形式

9.2　通信記述部の説明

9.3　通信記述部の設定項目

9.1　通信記述部の形式

通信記述部は，通信管理とアプリケーションプログラムとの間のインタフェース情報を受け渡しするための領域の定義であり，あらかじめ型枠を決めた構造体です。

この構造体は，ヘッダファイル<xnfw/xnf.h>に定義されています。

struct cd_s{                  /* 通信記述項目 */
  struct cd_part1 O_vpart1;  /* 共通部の構造体メンバ */
  struct cd_part2 O_vpart2;  /* 個別部の構造体メンバ */
  struct cd_part3 O_vpart3;  /* 個別部の構造体メンバ */
};

struct cd_part1{              /* 共通部の構造体 */
  O_ulng_t     O_ascid;      /* アソシエーション端点識別子 */
  O_ulng_t     O_status;     /* 詳細エラーコード */
  O_ulng_t     O_fncode;     /* 非同期要求に対する完了通知 */
                             /* O_SENABL:ENABLE完了 */
                             /* O_SSEND :SEND完了 */
                             /* O_SRECIV:RECEIVE完了 */
                             /* O_SDISAB:DISABLE完了 */
  O_ulng_t     O_mode;       /* 動作モード */
                             /* O_SYN   :同期型要求 */
                             /* O_ASYN  :非同期型要求 */
};

struct cd_part2{              /* 個別部の構造体 */
  O_vidp_t     O_apid;       /* AP識別子 */
  O_ulng_t     O_for;        /* サービス種別 */
                             /* O_OSASSV:OSASサービス */
                             /* O_PLSV  :PLサービス */
  O_ulng_t     O_versn;      /* バージョン番号 */
                             /* O_VERSN1:バージョン1 */
                             /* O_VERSN2:バージョン2 */
                             /* O_VERSN3:バージョン1またはバージョン2 */
  O_ulng_t     O_reqid;      /* 要求種別 */
/* ENABLEの場合  */
/*  O_ACTR  :確立要求（AP識別子）*/ /* O_PASI:受け入れ指示（AP識別子）*/
/*  O_EXACTR:確立要求（自局PSAP）*/ /* O_EXPASI:受け入れ指示（自局PSAP）*/
/*  O_PASR  :受け入れ応答 */
/* DISABLEの場合 */
/*  O_RLSR  :正常解放要求 */ /* O_RLS_CF:正常解放確認 */
/*  O_ABR_ID:ユーザ強制解放受信 */ /* O_PAR_ID:OSI通信機能強制解放通知 */
/*  O_RLSRN :正常解放応答 */ /* O_ABORT :強制解放要求 */
/*  O_ASCRN :確立拒否応答 */
/* SENDの場合    */
/*  O_RIVRQ :RO-INVOKE要求 */ /* O_RRSRQ :RO-RESULT要求 */
/*  O_RERRQ :RO-ERROR要求 */ /* O_RRJURQ:RO-REJECT-U要求 */
/*  O_PDTRQ :P-DATA要求 */ /* O_PSMNRQ:P-SYNC-MINOR要求 */
/*  O_PSMNRS:P-SYNC-MINOR応答 */ /* O_PRSRQ :P-RESYNCHRONIZE要求 */
/*  O_PRSRS :P-RESYNCHRONIZE応答 */ /* O_PGTRQ :P-TOKEN-GIVE要求 */
/*  O_PPTRQ :P-TOKEN-PLEASE要求 */ /* O_PSMJRQ:P-SYNC-MAJOR要求 */
/*  O_PSMJRS:P-SYNC-MAJOR応答 */ /* O_PTDTRQ:P-TYPED-DATA要求 */
/* RECEIVEの場合 */
/*  O_ASC_CF:確立確認/拒否 */ /* O_RLS_ID:正常解放指示 */
/*  O_ABR_ID:強制解放通知 */ /* O_PAR_ID:OSI通信機能強制解放通知 */
/*  O_RIVID :RO-INVOKE指示 */ /* O_RRSID :RO-RESULT指示 */
/*  O_RERID :RO-ERROR指示 */ /* O_RRJUID:RO-REJECT-U指示 */
/*  O_RRJPID:RO-REJECT-P指示 */ /* O_PDTID :P-DATA指示 */
/*  O_PSMNID:P-SYNC-MINOR指示 */ /* O_PSMNCF:P-SYNC-MINOR確認 */
/*  O_PRSID :P-RESYNCHRONIZE指示 */ /* O_PRSCF :P-RESYNCHRONIZE確認 */
/*  O_PGTID :P-TOKEN-GIVE指示 */ /* O_PPTID :P-TOKEN-PLEASE指示 */
/*  O_PSMJID:P-SYNC-MAJOR指示 */ /* O_PSMJCF:P-SYNC-MAJOR確認 */
/*  O_PTDTID:P-TYPED-DATA指示 */

  O_ulng_t     O_datid;      /* データ識別 */
                             /* O_ACSE:ACSEデータ */
                             /* O_ROS :ROSEデータ */
                             /* O_PL  :PLデータ */
  O_vidp_t     O_psap;       /* 相手PSAPアドレス格納領域アドレス */
  O_ulng_t     O_apflg;      /* AP名称指定オプションフラグ */
  O_vidp_t     O_mapti;      /* 発呼側APタイトル格納領域アドレス */
  O_vidp_t     O_maequ;      /* 発呼側AE修飾子格納領域アドレス */
  O_vidp_t     O_mapid;      /* 発呼側APインボケーションID格納領域アドレス */
  O_vidp_t     O_maeid;      /* 発呼側AEインボケーションID格納領域アドレス */
  O_vidp_t     O_yapti;      /* 着呼側APタイトル格納領域アドレス */
  O_vidp_t     O_yaequ;      /* 着呼側AE修飾子格納領域アドレス */
  O_vidp_t     O_yapid;      /* 着呼側APインボケーションID格納領域アドレス */
  O_vidp_t     O_yaeid;      /* 着呼側AEインボケーションID格納領域アドレス */
  O_vidp_t     O_rapti;      /* 応答側APタイトル格納領域アドレス */
  O_vidp_t     O_raequ;      /* 応答側AE修飾子格納領域アドレス */
  O_vidp_t     O_rapid;      /* 応答側APインボケーションID格納領域アドレス */
  O_vidp_t     O_raeid;      /* 応答側AEインボケーションID格納領域アドレス */
  O_vidp_t     O_apctx;      /* 応用コンテキスト名格納領域アドレス */
  O_ulng_t     O_prqcd;      /* 将来の拡張フィールド */
  O_ulng_t     O_propf;      /* プレゼンテーションオプションフラグ */
  O_vidp_t     O_pctxd;      /* コンテキスト定義リスト格納領域アドレス */
  O_vidp_t     O_pctxr;      /* コンテキスト定義結果リスト格納領域アドレス */
  O_vidp_t     O_ctxlt;      /* コンテキスト識別子リスト格納領域アドレス */
  O_ulng_t     O_srqcd;      /* セション要求機能 */
  O_ulng_t     O_sropf;      /* セションオプションフラグ */
  O_vidp_t     O_isqno;      /* セションパラメタ部アドレス */
  O_ulng_t     O_token;      /* トークン項目 */
  O_ulng_t     O_tkset;      /* トークン設定項目 */
  O_ulng_t     O_asref;      /* 予備 */
  O_vidp_t     O_with;       /* 送信ユーザバッファアドレス */
  O_ulng_t     O_sdtlen;     /* 送信ユーザデータ長 */
  O_vidp_t     O_into;       /* 受信ユーザバッファアドレス */
  O_ulng_t     O_bflen;      /* 受信ユーザバッファ長 */
  O_ulng_t     O_rdtlen;     /* 受信ユーザデータ長 */
  O_ulng_t     O_efcd;       /* アソシエーション確立結果 */
  O_ulng_t     O_recod;      /* アソシエーション確立理由診断 */
  O_ulng_t     O_intrp;      /* 中断元 */
  O_ulng-t     O_abcod;      /* 切断理由コード */
  O_vidp_t     O_usrid;      /* 将来の拡張フィールド */
  O_vidp_t     O_pswrd;      /* 将来の拡張フィールド */
};

struct cd_part3{              /* 個別部の構造体 */
  O_vidp_t     O_spsap;      /* 自局PSAPアドレス格納領域アドレス */
  O_vidp_t     O_mninf;      /* マルチネットワーク情報格納領域アドレス */
  O_vidp_t     O_msel;       /* 将来の拡張フィールド */
  O_vidp_t     O_sorce;      /* アソシエーション確立結果発行元パラメタ */
  O_vidp_t     O_qos;        /* 将来の拡張フィールド */
  O_vidp_t     O_exptr1;     /* 将来の拡張フィールド */
  O_vidp_t     O_exptr2;     /* 将来の拡張フィールド */
  O_vidp_t     O_exptr3;     /* 将来の拡張フィールド */
};

属性の説明

O_ulng_t：マシンに依存しないロング型の符号なし整数

O_vidp_t：マシンに依存しないポインタ

9.2　通信記述部の説明

プログラムの中で各フィールドの内容を設定したり，参照したりする場合は，ここで説明しているシンボリック名を使用します。

通信記述部からポイントしているパラメタ領域の説明は，図9-1の形式で行います。使用が任意となっているパラメタを使用しない場合は，ポインタをNULLクリアしてください。

図9-1　通信記述部の各フィールドの説明

注※1

データの長さが1～127バイトの場合は短形式（1バイト），128バイト以上の場合は長形式（2バイト以上）となります。

短形式，長形式のフォーマットを次に示します。

d．の形式を使用しないでください。このような長いデータでの通信を保証しません。

注※2

パラメタ値のエンコーディングです。このマニュアルでは次に示す形式で数値を表現しています。

92：10進数値で表現する場合

(81)₁₆：16進数値で表現する場合

(01)₂：2進数値で表現する場合

また，パラメタ値がISO規格で決定しているものについては，パラメタ値を名称で指定します。この名称は，ヘッダファイル<xnfw/xnf.h>に定義されています。

注※3

受け入れ型で相手から受信したパラメタが不定長型式の場合，このフィールドのLI値は(80)₁₆となり，パラメタの最後に(0000)₁₆が付加されます。

＜この節の構成＞

(1)　O_ascid

(2)　O_status

(3)　O_fncode

(4)　O_mode

(5)　O_apid

(6)　O_for

(7)　O_versn

(8)　O_reqid

(9)　O_datid

(10)　O_psap

(11)　O_apflg

(12)　O_mapti，O_yapti，O_rapti

(13)　O_maequ，O_yaequ，O_raequ

(14)　O_mapid，O_yapid，O_rapid

(15)　O_maeid，O_yaeid，O_raeid

(16)　O_apctx

(17)　O_propf

(18)　O_pctxd

(19)　O_pctxr

(20)　O_ctxlt

(21)　O_srqcd

(22)　O_sropf

(23)　O_isqno

(24)　O_token

(25)　O_tkset

(26)　O_with

(27)　O_sdtlen

(28)　O_into

(29)　O_bflen

(30)　O_rdtlen

(31)　O_efcd

(32)　O_recod

(33)　O_intrp

(34)　O_abcod

(35)　O_spsap

(36)　O_mninf

(37)　O_sorce

(1)　O_ascid

アソシエーション端点識別子を格納する領域です。アソシエーション端点識別子は，ユーザがENABLE獲得型または受け入れ指示型発行時に通信管理が割り当て，リターン情報で通知します。

(2)　O_status

リターンコードが異常終了でerrno=EINVALのときに，通信管理が詳細エラーコードを返す領域です。

詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(3)　O_fncode

非同期要求が完了したときにその関数の種別を格納する領域です。

O_SENABL：ENABLE

O_SSEND：SEND

O_SRECIV：RECEIVE

O_SDISAB：DISABLE

(4)　O_mode

動作モードを指定します。

O_SYN：同期型要求

O_ASYN：非同期型要求

(5)　O_apid

AP識別子が格納されている領域を指定します。AP識別子の形式を表9-1に示します。

表9-1　AP識別子の形式

フィールド名
パラメタ値
指定

AP識別子
英数字
（1～14文字）
ENABLEの獲得型（O_ACTR）または受け入れ指示型（O_PASI）を指定したときに必須となります。

(6)　O_for

サービス種別を指定します。

O_OSASSV：OSASサービス

O_PLSV：PLサービス

(7)　O_versn

セション層のプロトコルバージョン番号を指定します。

O_VERSN1：バージョン1

O_VERSN2：バージョン2

O_VERSN3：バージョン1，またはバージョン2

または，O_VER（n）：n=1のときバージョン1，n=2のときバージョン2です。両者を論理和形式でも指定できます。

(8)　O_reqid

要求種別を格納する領域です。

■ENABLEの場合

O_ACTR：獲得型でアソシエーションを確立します（AP識別子の指定必須）。

O_EXACTR：獲得型でアソシエーションを確立します（自局PSAPアドレスの指定必須）。

O_PASI：受け入れ指示型で相手からのアソシエーション確立を待ちます（AP識別子の指定必須）。

O_EXPASI：受け入れ指示型で相手からのアソシエーション確立を待ちます（自局PSAPアドレスの指定必須）。

O_PASR：受け入れ応答型でアソシエーション確立肯定応答をします。

■DISABLEの場合

O_ASCRN：相手からのアソシエーション確立要求拒否応答

O_RLSR：
・確立済みのとき，アソシエーション正常解放要求
・RECEIVEで相手解放済みのとき，アソシエーション非活性化要求

O_RLSRN：相手からのアソシエーション正常解放要求の応答

O_RLS_CF：アソシエーション正常解放確認

O_ABR_ID：正常解放要求に対し，相手強制解放

O_PAR_ID：正常解放要求に対し，OSI通信機能強制解放

O_ABORT：アソシエーション強制解放要求

■SENDの場合

送信するデータのプリミティブコードを設定します。SEND関数の要求種別を表9-2に示します。

表9-2　SEND関数の要求種別

項番 | 名称 | 内容
1 | O_RIVRQ | RO-INVOKE要求
2 | O_RRSRQ | RO-RESULT要求
3 | O_RERRQ | RO-ERROR要求
4 | O_RRJURQ | RO-REJECT-U要求
5 | O_PDTRQ | P-DATA要求
6 | O_PSMNRQ | P-SYNC-MINOR要求
7 | O_PSMNRS | P-SYNC-MINOR応答
8 | O_PRSRQ | P-RESYNCHRONIZE要求
9 | O_PRSRS | P-RESYNCHRONIZE応答
10 | O_PGTRQ | P-TOKEN-GIVE要求
11 | O_PPTRQ | P-TOKEN-PLEASE要求
12 | O_PSMJRQ | P-SYNC-MAJOR要求
13 | O_PSMJRS | P-SYNC-MAJOR応答
14 | O_PTDTRQ | P-TYPED-DATA要求

■RECEIVEの場合

受信したデータのプリミティブコードを示します。RECEIVE関数の要求種別を表9-3に示します。

表9-3　RECEIVE関数の要求種別

項番 | 種別 | 内容
1 | O_ASC_CF | A-ASC確認の受諾と拒否
2 | O_RLS_ID | A-RELEASE指示
3 | O_ABR_ID | A-ABORT指示
4 | O_PAR_ID | A-PABORT指示
5 | O_RIVID | RO_INVOKE指示
6 | O_RRSID | RO_RESULT指示
7 | O_RERID | RO_ERROR指示
8 | O_RRJUID | RO_REJECT-U指示
9 | O_RRJPID | RO_REJECT-P指示
10 | O_PDTID | P-DATA指示
11 | O_PSMNID | P-SYNC-MINOR指示
12 | O_PSMNCF | P-SYNC-MINOR確認
13 | O_PRSID | P-RESYNCHRONIZE指示
14 | O_PRSCF | P-RESYNCHRONIZE確認
15 | O_PGTID | P-TOKEN-GIVE指示
16 | O_PPTID | P-TOKEN-PLEASE指示
17 | O_PSMJID | P-SYNC-MAJOR指示
18 | O_PSMJCF | P-SYNC-MAJOR確認
19 | O_PTDTID | P-TYPED-DATA指示

(9)　O_datid

送受信データの種別を格納する領域です。

O_ACSE：ACSEデータ

O_ROS：ROSEデータ

O_PL：PLデータ

(10)　O_psap

ENABLEの獲得型発行時，相手PSAPアドレス格納領域のアドレスを指定します。

ENABLEの受け入れ指示型発行時と，RECEIVEでO_ASC_CFの受信時，相手PSAPアドレス格納領域長は最小93バイト，最大128バイト（LI値は92バイト～127バイト）を確保し，1バイトの領域にLIを設定してください。格納領域のLI値が92より小さいかまたは127より大きい場合，もしくは格納領域のアドレスがNULLの場合は，ENABLEがエラーリターンします。

相手PSAPアドレスの形式を図9-2に示します。

図9-2　相手PSAPアドレスの形式

(11)　O_apflg

アソシエーション受け入れ指示または確立応答を受信したとき，相手側がAP名称を指定しているかどうかを示すフラグ（ビット）です。

O_NAPNM：発呼側/着呼側/応答側のAP名称の指定なし（全ビット0）

O_MAPTI：発呼側APタイトル指定あり

O_MAEQU：発呼側AE修飾子指定あり

O_MAPID：発呼側APインボケーションID指定あり

O_MAEID：発呼側AEインボケーションID指定あり

O_YAPTI：着呼側APタイトルあり

O_YAEQU：着呼側AE修飾子指定あり

O_YAPID：着呼側APインボケーションID指定あり

O_YAEID：着呼側AEインボケーションID指定あり

O_RAPTI：応答側APタイトル指定あり

O_RAEQU：応答側AE修飾子指定あり

O_RAPID：応答側APインボケーションID指定あり

O_RAEID：応答側AEインボケーションID指定あり

O_NAPNM以外の項目は，論理積を取得し，指定の有無を判断してください。

(12)以降の説明では，m：発呼側，y：着呼側，r：応答側のパラメタを示しています。

発呼側，着呼側はENABLEの獲得型または受け入れ指示型で指定します。応答側はENABLEの受け入れ応答型またはRECEIVEでO_ASC_CFを受信した場合に指定します。

(12)　O_mapti，O_yapti，O_rapti

APタイトル格納領域のアドレスを指定します。

AP-title::=ANY (ISO 8650:1988)

(13)　O_maequ，O_yaequ，O_raequ

AE修飾子格納領域のアドレスを指定します。

AE-qualifier::=ANY (ISO 8650:1988)

(14)　O_mapid，O_yapid，O_rapid

APインボケーションID格納領域のアドレスを指定します。

AP-invocation-identifier::=INTEGER (ISO 8650:1988）

(15)　O_maeid，O_yaeid，O_raeid

AEインボケーションID格納領域のアドレスを指定します。

AE-invocation-identifier::=INTEGER (ISO 8650:1988)

AP名称の形式を図9-3に示します。

図9-3　AP名称の形式

(16)　O_apctx

応用コンテキスト名格納領域のアドレスを指定します。

Application-context-name::=OBJECT IDENTIFIER(ISO 8650:1988)

応用コンテキスト名の形式を図9-4に示します。

図9-4　応用コンテキスト名の形式

(17)　O_propf

プレゼンテーションコンテキスト定義リストとプレゼンテーションコンテキスト定義結果リストを指定しているかどうかを示すフラグ（ビット）です。

O_PASS：オプション未指定

O_CNTXR：プレゼンテーションコンテキスト定義結果リスト指定

O_CNTXD：プレゼンテーションコンテキスト定義リスト指定

(18)　O_pctxd

プレゼンテーションコンテキスト定義リストの格納領域アドレスを指定します。

ACSEのコンテキスト定義リストはOSI通信機能が設定します。ROSEのコンテキスト定義リストは存在しません。ENABLEの獲得型の場合は，APが格納領域にAPのプレゼンテーションコンテキスト定義リストを設定します。

ENABLEの受け入れ指示型の場合は，APが格納領域のアドレスとLIを設定し，内容はOSI通信機能が設定します。ただし，APが指定したLIよりも相手APから受信したプレゼンテーションコンテキスト定義リストが長い場合は，LI値分だけの内容をOSI通信機能が設定し，後続データを切り捨てます。この場合はリターン情報で通知します。

注

LI値で指定したパラメタ領域よりも長いデータを受信した場合は，データのあふれ分を切り捨ててリターン情報で通知します。また，受信用の格納領域アドレスがNULLの場合，ENABLEをエラーリターンします。

Presentation-context-definition-list::=Context-list
Context-list::=SEQUENCE OF SEQUENCE{Presentation-context
                                   -identifier,Abstract-
                                   -syntax-name,SEQUENCE
                                   OF Transfer-syntax-name}
Presentation-context-identifier::=INTEGER
Abstract-syntax-name::=OBJECT IDENTIFIER
Transfer-syntax-name::=OBJECT IDENTIFIER（ISO 8823:1988）

プレゼンテーションコンテキスト定義リストの形式を図9-5に示します。

図9-5　プレゼンテーションコンテキスト定義リストの形式

(19)　O_pctxr

アソシエーション確立要求側から指定されたプレゼンテーションコンテキスト定義リストに対して，ENABLEの受け入れ応答型またはDISABLEの確立拒否でAPがネゴシエーションしたコンテキスト定義結果リストを設定します。受信したコンテキスト定義リストと同数のコンテキスト定義結果リストを設定します。

RECEIVEで確立確認受信時は，コンテキスト定義結果リスト格納領域のアドレスとLIを設定します。APが指定した格納領域のLIが，相手APから受信した長さより小さい場合は格納領域のLI値分だけの内容をOSI通信機能が設定し，後継データを切り捨ててリターン情報で通知します。

注

LI値で指定したパラメタ領域よりも長いデータを受信した場合は，データのあふれ分を切り捨ててリターン情報で通知します。

また，受信用の格納領域アドレスがNULLの場合，ENABLEをエラーリターンします。

Presentation-context-definition-result-list::=Result-list
Result-list::=SEQUENCE OF SEQUENCE
        {            〔0〕IMPLICIT Result,
                     〔1〕IMPLICIT Transfer-syntax-name OPTIONAL,
      provider-reason〔2〕IMPLICIT INTEGER
                      { reason-not-specified                (0),
                        abstract-syntax-not-supported       (1),
                        proposed-transfer-syntaxes-not-supported(2),
                        local-limit-on-DCS-exceeded         (3)
          }OPTIONAL
        }
Result::=INTEGER{acceptance          (0),
                user-rejection      (1),
                provider-rejection(2)
        }
(ISO  8823:1988)

プレゼンテーションコンテキスト定義結果リストの形式を図9-6～図9-8に示します。

図9-6　プレゼンテーションコンテキスト定義結果リストの形式（受諾の場合）

図9-7　プレゼンテーションコンテキスト定義結果リストの形式（提供者拒否の場合）

図9-8　プレゼンテーションコンテキスト定義結果リストの形式（利用者拒否の場合）

(20)　O_ctxlt

プレゼンテーションコンテキスト識別子リスト格納領域のアドレスを指定します。

利用者がアソシエーションを異常解放したときの利用者情報のプレゼンテーションコンテキストを設定するパラメタで，プロトコルバージョン番号がO_VERSN2/O_VERSN3のときだけ使用します。

DISABLEの異常終了でAPが設定し，RECEIVEで強制終了受信，またはDISABLEの終了要求発行時にAPが格納領域のアドレスとLIを設定し，内容をOSI通信機能が設定します。

注

LI値で指定したパラメタ領域よりも長いデータを受信した場合は，データのあふれ分を切り捨ててリターン情報で通知します。

また，受信用の格納領域アドレスがNULLの場合，相手局から当パラメタを受信してもAPに通知しません。

Presentation-context-identifier-list::=SEQUENCE OF SEQUENCE{
                                 Presentation-context-identifier,
                                 Transfer-syntax-name
                               }                 (ISO 8823:1988)

プレゼンテーションコンテキスト識別子リストの形式を図9-9に示します。

図9-9　プレゼンテーションコンテキスト識別子リストの形式

(21)　O_srqcd

APが使用するセション要求機能，または相手APとのネゴシエーション結果であるセション要求機能を設定します。PLサービスのENABLE（獲得型・受け入れ応答型），またはDISABLEの確立拒否を発行する場合に指定します。OSASサービスを使用する場合は全二重だけ使用できます。次に示す二つの指定形式をサポートしていますが，形式2を推奨します。

■形式1（要求機能固定形式）

O_SRQ_DU：全二重

O_SRQ_MI：全二重と小同期

O_SRQ_RE：全二重と再同期

O_SRQ_FL：全二重と小同期と再同期

■形式2（要求機能拡張形式）

O_BSQ_HF：半二重　........1

O_BSQ_DU：全二重　........2

O_BSQ_MI：小同期

O_BSQ_RE：再同期

O_BSQ_MA：大同期

O_BSQ_TY：制御データ転送

O_BSQ_DS：データ分離　........3

形式2はパラメタの論理和形式で設定できます。ただし，ENABLE獲得型以外を発行する場合は，1または2のどちらか一方だけを指定できます。3を指定した場合，小同期の指定が必須になります。

(22)　O_sropf

PLサービスのセションのオプション項目である同期点通し番号，またはトークン項目の設定有無を設定します。ただし，このパラメタはセション要求機能に半二重機能，小同期機能，再同期機能，または大同期機能をユーザが指定したアソシエーションで，次の通信関数にだけOSI通信機能が設定します。

ENABLE（要求種別が受け入れ指示）：同期点通し番号の有無

RECEIVE（要求種別がO_ASC_CF）：同期点通し番号の有無

RECEIVE（要求種別がO_PDTID）：トークン項目の有無

なお，設定するオプション内容は次のとおりです。

O_PASS：オプション未設定

O_SEQ：同期点通し番号設定有り

O_TOKEN：トークン項目設定有り

(23)　O_isqno

PLサービスのオプション項目であるセションパラメタを使用する場合に必要な，パラメタの格納領域のアドレスを設定します。サポートするPLサービスのオプション項目を表9-4に示します。

注

LI値で指定したパラメタ領域よりも長いデータを受信した場合は，データのあふれ分を切り捨ててリターン情報で通知します。

また，受信用の格納領域アドレスがNULLの場合，相手局から当パラメタを受信してもAPに通知しません。

表9-4　セションパラメタ（オプション項目）

項番
機能項目
関数/要求種別
機能概要

1
初期同期点通し番号

ENABLE

RECEIVE/O_ASC_CF

小同期機能，再同期機能，および大同期機能を使用する場合に，同期点通し番号の初期値を指定します。

2
トークン項目

SEND/O_PGTRQ，O_PPTRQ，O_PDTRQ

RECEIVE/O_PGTID，O_PPTID，O_PDTID

小同期トークン，データトークン，および大同期トークンを制御する場合に使用します。

3
大同期点通し番号

SEND/O_PSMJRQ，O_PSMJRS

RECEIVE/O_PSMJID，O_PSMJCF

大同期点通し番号の送受信および同期型を指定します。

4
小同期点通し番号
データ分離

SEND/O_PSMNRQ，O_PSMNRS

RECEIVE/O_PSMNID，O_PSMNCF

小同期点通し番号の送受信および同期型，データ分離を指定します。

5
再同期点通し番号

SEND/O_PRSRQ，O_PRSRS

RECEIVE/O_PRSID，O_PRSCF

再同期点通し番号の送受信および再同期型とトークン保持側を指定します。

トークン制御は要求種別に応じてトークン項目を格納領域内に同時指定して，1回の送受信ですることもできます。同時指定できる要求種別とトークン制御の組み合わせを表9-5に示します。

表9-5　トークン制御と要求種別の組み合わせ

項番
トークン制御
関数/要求種別
格納領域の形式

1
トークン譲渡
SEND/O_PDTRQ
RECEIVE/O_PDTID
「(b)トークン項目（トークン制御）の形式」を参照してください。

SEND/O_PSMJRQ
RECEIVE/O_PSMJID
「(c)大同期点通し番号の形式」の「2　同期要求，同期受付の場合（トークン制御の指定あり）」を参照してください。

SEND/O_PSMNRQ
RECEIVE/O_PSMNID
「(d)小同期点通し番号およびデータ分離指定の形式」の「2　同期要求，同期受付の場合（トークン制御の指定あり）」を参照してください。

2
トークン要求
SEND/O_PSMJRS
RECEIVE/O_PSMJCF
「(c)大同期点通し番号の形式」の「4　同期応答，同期確認の場合（トークン制御の指定あり）」を参照してください。

SEND/O_PSMNRS
RECEIVE/O_PSMNCF
「(d)小同期点通し番号およびデータ分離指定の形式」の「4　同期応答，同期確認の場合（トークン制御の指定あり）」を参照してください。

SEND/O_PRSRS
RECEIVE/O_PRSCF
「(e)再同期点通し番号の形式」の「3　再同期応答，再同期確認の場合（トークン制御の指定あり）」を参照してください。

格納領域の内容は次の形式です。

RECEIVEで指定する格納領域のLI値は，どの機能項目でも受信できるように最大値をAPが設定する必要があります（(09)₁₆≦LI≦(7f)₁₆）。

(a)　初期同期点通し番号の形式

初期同期点通し番号の形式を図9-10に示します。

図9-10　初期同期点通し番号の形式

(b)　トークン項目（トークン制御）の形式

トークン項目の形式を図9-11に示します。

図9-11　トークン項目の形式

(c)　大同期点通し番号の形式

大同期点通し番号の形式を図9-12に示します。

図9-12　大同期点通し番号の形式

(d)　小同期点通し番号およびデータ分離指定の形式

小同期点通し番号およびデータ分離指定の形式を図9-13に示します。

図9-13　小同期点通し番号およびデータ分離指定の形式

(e)　再同期点通し番号の形式

再同期点通し番号の形式を図9-14に示します。

図9-14　再同期点通し番号の形式

(24)　O_token

PLサービスで，セションのオプション項目である小同期トークン，大同期トークン，または半二重トークンを起動側保持の場合，応答側が要求するかしないかを，ENABLEの受け入れ応答型指定時にAPが設定します。

■形式1

O_PASS：トークンを使用しない

O_SA_TN：小同期トークンを使用

■形式2

O_BTK_MI：小同期トークンを使用

O_BTK_DT：データトークンを使用（半二重機能）

O_BTK_MA：大同期トークンを使用

形式2はパラメタの論理和形式で設定できます。

(25)　O_tkset

PLサービスで，セションのオプション項目である小同期機能，大同期機能，または半二重機能を設定時に，トークンをだれが所有するかを示すトークン所有者設定項目を設定します。

■形式1（要求機能固定形式）

O_CALING：小同期トークンを起動側保持

O_CALLED：小同期トークンを応答側保持

O_CAUSEL：小同期トークンを着呼側利用者の選択

■形式2（要求機能拡張形式）

トークン項目と指定パラメタを表9-6に示します。

表9-6　トークン項目と指定パラメタ

トークン項目 | 指定パラメタ | 指定内容
データトークン | O_BTS_DG(00)₂ | 起動側保持
O_BTS_DD(01)₂ | 応答側保持
O_BTS_DS(10)₂ | 着呼側の選択
小同期トークン | O_BTS_IG(00)₂ | 起動側保持
O_BTS_ID(01)₂ | 応答側保持
O_BTS_IS(10)₂ | 着呼側の選択
大同期トークン | O_BTS_AG(00)₂ | 起動側保持
O_BTS_AD(01)₂ | 応答側保持
O_BTS_AS(10)₂ | 着呼側の選択

表9-6のパラメタの論理和形式で設定できます。

ユーザがトークンを指定しないトークン項目については，デフォルトとして起動側保持を通信管理で設定します。

(26)　O_with

送信するユーザデータが格納されている領域のアドレスを指定します。

送信するユーザデータがないときは，NULLアドレスとします。ROSEを使用する場合は，ユーザデータ領域は必須です。

(27)　O_sdtlen

送信するユーザデータ長を指定します。ユーザデータがない場合は，0とします。

ACSEのAPDUを送信する場合は，ACSEデータ長（EXTERNALを含む）を指定します。PLのAPDUを送信する場合は，PDVリストおよびPLデータとの総和を指定します。

ROSEのAPDUを送信する場合は，PDVリストとROSEのAPDU長との総和を設定します。

(28)　O_into

ユーザデータを受信するバッファの先頭アドレスを指定します。受信するユーザデータがないときは，NULLアドレスとします。

(29)　O_bflen

ユーザの受信バッファ長を指定します。ユーザデータがない場合は，0を設定します。

受信したデータが受信バッファ長よりも大きいときは，受信データのあふれ分を切り捨てます。

ACSEのAPDUを受信する場合は，ACSEデータ（EXTERNALを含む）を指定します。PLのAPDUを受信する場合は，PDVリストおよびPLデータとの総和を指定します。

ROSEのAPDUを受信する場合は，PDVリストとROSEのAPDU長との総和を設定します。

(30)　O_rdtlen

受信したユーザデータ長を格納する領域です。このフィールドは，受信したユーザデータ長をOSI通信機能が設定します。

(31)　O_efcd

アソシエーション確立結果を格納する領域です。

O_ACCEPT：受諾

O_PERMAN：永続的な拒否

O_TRANSI：一時的な拒否

(32)　O_recod

アソシエーション確立拒否の場合，理由診断を格納する領域です。

O_NOPARM：診断パラメタなし

O_NORSON：理由が特定できない

O_APCNTX：サポートされていない応用コンテキスト

O_MAPTTL：発呼側APタイトルが認識できない

O_MAPINV：発呼側APインボケーションが認識できない

O_MAEOFS：発呼側AE修飾子が認識できない

O_MAEINV：発呼側AEインボケーションが認識できない

O_YAPTTL：着呼側APタイトルが認識できない

O_YAPINV：着呼側APインボケーションが認識できない

O_YAEOFS：着呼側AE修飾子が認識できない

O_YAEINV：着呼側AEインボケーションが認識できない

(33)　O_intrp

アソシエーション異常解放時の中断元を格納する領域です。

O_ACSEUS：ACSE利用者による中断

O_ACSEPS：ACSE提供者による中断

(34)　O_abcod

アソシエーション解放時の切断理由コードを格納する領域です。

切断理由コードはOSI通信機能で検出したエラーの内容をOSI通信機能として，独自に規定したコードです。

アソシエーション解放後のユーザのリトライを行うかどうかの判断を必要とする場合は，RETRYCK関数を使用します。

この理由コードは事前通告なく変更することがあります。

切断理由コードについては，「13.　切断理由コード」を参照してください。

(35)　O_spsap

ENABLEおよびDISABLEの確立拒否を発行する場合，自局のPSAPアドレスを格納領域に設定します。

RECEIVEでO_ASC_CFを受信するとき，最大長のPSAPアドレスを受信する可能性があるため，自局PSAPアドレス格納領域長は最小93バイト（LI値は92バイト）を確保し，1バイトの領域にLIを設定してください。

また，受信用の格納領域のLIが，(5c)₁₆≦LI≦(7f)₁₆以外と，受信用の格納領域のアドレスがNULLのときはエラーリターンします。

注

当該項目は，ENABLE関数の要求種別に，O_EXACTRまたはO_EXPASIを指定したアソシエーションに対してだけ有効です。

自局PSAPアドレスのデータ形式を図9-15に，自局PSAPアドレスの内容を表9-7に示します。

図9-15　自局PSAPアドレスのデータ形式

表9-7　自局PSAPアドレスの内容

フィールド名
長さ
パラメタ値
説明

LI
1バイト
MAX(46)₁₆
自局PSAPアドレス長を示します。

PI
1バイト
(81)₁₆
Pセレクタ識別のための識別子です。

LI
1バイト
(00)₁₆～(10)₁₆
Pセレクタの長さを示します。
指定できるPセレクタの長さは最大16バイトです。

Pセレクタ
最大16バイト
－
Pセレクタを指定します。
Pセレクタを省略する場合は，LIに(00)₁₆を指定します。

PI
1バイト
(82)₁₆
Sセレクタ識別のための識別子です。

LI
1バイト
(00)₁₆～(10)₁₆
Sセレクタの長さを示します。
指定できるセレクタの長さは最大16バイトです。

Sセレクタ
最大16バイト
－
Sセレクタを指定します。
Sセレクタを省略する場合は，LIに(00)₁₆を指定します。

PI
1バイト
(83)₁₆
Tセレクタ識別のための識別子です。

LI
1バイト
(00)₁₆～(20)₁₆
Tセレクタの長さを示します。
指定できるTセレクタの長さは最大32バイトです。

Tセレクタ
最大32バイト
－
Tセレクタを指定します。
Tセレクタを省略する場合は，LIに(00)₁₆を指定します。

（凡例）

－：該当しません。

(36)　O_mninf

ENABLEの獲得型発行時，マルチネットワーク情報を格納領域に設定します※。

ENABLEの受け入れ指示型と，RECEIVEでO_ASC_CFを受信するときは，マルチネットワーク情報格納領域長を64バイト確保し，1バイトの（全体）LIに(3f)₁₆を設定してください※。

注※

ただし，当該項目を指定しない場合は，マルチネットワーク情報格納領域アドレスをNULLクリアしてください。

マルチネットワーク情報のデータ形式を図9-16に示します。

図9-16　マルチネットワーク情報のデータ形式

注

当該項目は，ENABLE関数の要求種別にO_EXACTR，またはO_EXPASIを指定したアソシエーションに対してだけ有効です。

マルチネットワーク情報の内容を表9-8に示します。

表9-8　マルチネットワーク情報の内容

項番
フィールド名
長さ
パラメタ値
説明

1
LI
1バイト
(02)₁₆～(3f)₁₆
マルチネットワーク情報長を示します。

2
PI
1バイト
(d0)₁₆
DTEアドレス情報識別のための識別子です。

3
LI
1バイト
(00)₁₆または(02)₁₆~(10)₁₆
DTEアドレス情報格納領域長を示します。

4
DTE
アドレス情報
最大16バイト
－
中継/相手ノードのアドレスであり，単位はセミオクテット※です。有効けた数は，DTEアドレスの有効セミオクテット数を示します。

[図データ]

5
PI
1バイト
(d1)₁₆
プロフィルタイプ識別のための識別子です。

6
LI
1バイト
(00)₁₆または(04)₁₆
プロフィルタイプ長を示します。

7
プロフィルタイプ
4バイト
－
要求/代替TLクラスであり，値は関数を使用して，指定/参照します。

8
PI
1バイト
(d2)₁₆
アダプタ番号識別のための識別子です。

9
LI
1バイト
(00)₁₆または(04)₁₆
アダプタ番号長を示します。

10
アダプタ番号
（ビットマップ）
4バイト
－
スロット番号であり，値は関数を使用して指定/参照します。

11
PI
1バイト
(d3)₁₆
INSサービス種別識別のための識別子です。

12
LI
1バイト
(00)₁₆または(02)₁₆
INSサービス種別長を示します。

13
INS
サービス種別
2バイト
－
ISDNネットを使用する際の従量課金（INS-P）/時間課金（INS-C）種別，およびINS-Cの回線を，関数を使用して指定/参照します。

14
PI
1バイト
(d4)₁₆
アダプタ番号識別のための識別子です。

15
LI
1バイト
(00)₁₆または(02)₁₆
アダプタ番号長を示します。

16
アダプタ番号
（数値）
2バイト
－
構成定義で指定したVASS（仮想スロット番号）を指定します。

（凡例）

－：該当しません。

注※

1オクテットの2分の1です（4ビット単位）。

注意事項

「"PI"が存在しない。」および「"LI"が(00)₁₆」は，情報なしを意味します。

"プロフィルタイプ"および"アダプタ番号（ビットマップ）"を指定する場合は，指定領域を初期化したあとで，関数を使用して設定してください。

利用できない"INSサービス種別"を指定した場合，通信はできません。

"DTEアドレス情報"には，使用する網の種類によってさまざまな形態があるため，"DTEアドレス情報"を指定した際，"アダプタ番号"の指定も必要となることがあります。
次に，その例を示します。また，実装アダプタ数と"DTEアドレス情報''および"アダプタ番号''の関係を表9-9に示します。

AまたはBのアダプタ番号を設定することによって，C/Dどちらかの中継局を指定できるようになります。

表9-9　実装アダプタ数と"DTEアドレス情報''および"アダプタ番号''の関係

項番
実装（動作可）
アダプタ数
"DTEアドレス情報"
指定有無
"アダプタ番号"
指定有無
備考

1
単一
無
任意
"DTEアドレス情報"に対応しない"アダプタ番号"を指定した場合，通信はできません。

2
複数
無
任意

3
単一
有
任意

4
複数
有
必須

"プロフィルタイプ"，"アダプタ番号（ビットマップ）"，および"INSサービス種別"の設定／参照用関数の使用方法については，「付録B　マルチネットワーク情報設定方法」を参照してください。

通信管理が"プロフィルタイプ"の「代替TLクラス」を通知する場合，通知する必要がある「代替TLクラス」がないときは「要求TLクラス」と同じものを設定します。また，要求TLクラスと代替TLクラスの組み合わせを表9-10に示します。

表9-10　要求TLクラスと代替TLクラスの組み合わせ

項番 | "プロフィルタイプ"の指定 | 備考
要求TLクラス | 代替TLクラス
1 | 指定なし | － | OSI通信機能は，構成定義情報のデフォルトTLクラスを要求TLクラスとします。また，指定された代替TLクラスは無視します。
2 | クラス0 | － | OSI通信機能は，指定された代替TLクラスを無視します。
3 | クラス2 | 指定なし | －
4 | クラス0 | －
5 | クラス2 | －
6 | クラス4 | OSI通信機能は，"プロフィルタイプ"の指定エラーとみなします。
7 | クラス4 | － | OSI通信機能は，指定された代替TLクラスを無視します。

（凡例）

－：該当しません。

"アダプタ番号"のビットマップと数値が同時に指定されたときは，数値の指定が優先されます。ただし，数値の"LI"が(00)₁₆のときは，ビットマップの指定が優先されます。

"アダプタ番号"の数値が0のときは，アダプタ指定なしとなります。

"DTEアドレス情報"は，中継/相手ノードのアドレスです。NSAPアドレスで定義されたDTEアドレス情報の例を示します。
（例）　WAN系　4800088011234567　→　1234567

(37)　O_sorce

アソシエーション確立時，確立結果として与えられる結果および診断パラメタの設定元の識別を格納する領域です。

アソシエーション確立結果発行元パラメタを表9-11に示します。

表9-11　アソシエーション確立結果発行元パラメタ

項番 | パラメタ値 | 内容
1 | O_ACUSR | ACSEサービス利用者
2 | O_ACPRV | ACSEサービス提供者
3 | O_PSPRV | プレゼンテーションサービス提供者

9.3　通信記述部の設定項目

関数と通信記述部の指定項目の関連を表9-12および表9-13に示します。

表9-12および表9-13で使用している記号の意味を次に示します。

記号の意味

○：関数呼び出し前にアプリケーションプログラムがアドレスと内容を指定します。

▲：関数呼び出し前にアプリケーションプログラムがアドレスとLIを指定し，（受信領域の指定）リターン時に通信管理が内容を設定します。

●：リターン時に通信管理が設定します。

■：要求種別がO_ASC_CFの場合

□：要求種別がO_ABR_IDの場合

☆：要求種別がO_ABR_ID/O_PAR_ID/O_RLS_CFの場合

▽：要求種別がO_ABR_ID/O_ASC_CFの場合

▼：要求種別がO_ABR_ID/O_PAR_ID/O_ASC_CFの場合

★：要求種別がO_ASC_CF/O_PDTIDの場合

表9-12　通信記述部の指定項目の関連（1/2）

表9-13　通信記述部の指定項目の関連（2/2）

注※

非同期要求をCHECKで完了させた場合

10.　関数仕様

この章では，関数仕様について説明します。

＜この章の構成＞

10.1　ENABLE

10.2　SEND

10.3　RECEIVE

10.4　DISABLE

10.5　EVENTS

10.6　CHECK

10.7　RETRYCK

10.8　CLOSE

10.9　OPTION

10.1　ENABLE

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

アソシエーションの活性化（確立）要求を行います。アソシエーションの確立方法には，次に示す3種類があります。

獲得型：相手にアソシエーションの確立要求を行います。

受け入れ指示型：相手からアソシエーションの確立要求を待ちます。

受け入れ応答型：相手からのアソシエーション確立要求に対し肯定応答を行います。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s sbuf;               /* 通信記述部の領域確保 */
  int rcode;                      /* リターンコード */
  sbuf.O_vpart1.O_mode=O_SYN;     /* 通信記述部の設定 */
  ..........................        .................
  sbuf.O_vpart2.O_sdtlen=DTLEN;   /* 通信記述部の設定 */
  rcode=xnf_enb(&sbuf);           /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

正の整数：ENABLE関数の受け入れ指示で指定した受信バッファ長不足のため，不足分のデータを読み捨てた

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては,「12.　詳細エラーコード」を参照してください。

(4)　特記事項

アソシエーションの確立要求が正常に完了した場合，通信記述部のO_ascidにアソシエーション端点識別子が格納されます。これ以降の通信要求は，すべてこのアソシエーション端点識別子によってアソシエーションを識別します。

非同期指定の場合，ENABLE関数は通信管理に動作要求を指定するだけで，要求動作は完了していません。動作完了通知は，CHECK関数発行によって受け取ります。CHECK関数については，「10.6　CHECK」を参照してください。
CHECK関数を発行するまでは，ENABLE関数で指定した通信記述部の内容を更新しないでください。

同期指定の受け入れ指示型のENABLE関数は，相手APからのアソシエーション確立要求（AARQ-APDU）を受信するまで，関数発行元に制御が戻りません。

同じ「自局PSAPアドレス」を持つ通信エンティティが，同時にアソシエーションを確立しようとした場合，目的とする相手とアソシエーションが確立できないときがあります。

要求種別，AP識別子，自局PSAPアドレス情報，およびマルチネットワーク情報の指定の関係を表10-1に示します。

表10-1　要求種別，AP識別子，自局PSAPアドレス情報，およびマルチネットワーク情報の指定の関係

項番 | 要求種別 | AP識別子 | 自局PSAPアドレス情報 | マルチネットワーク情報
1 | O_ACTR（確立要求） | 要 | 不要 | 不要
2 | O_EXACTR（確立要求） | 不要 | 要 | 任意
3 | O_PASI（受け入れ指示） | 要 | 不要 | 不要
4 | O_EXPASI（受け入れ指示） | 不要 | 要 | 任意※3
5 | O_PASR※1（受け入れ応答） | 要 | 不要 | 不要
6 | O_PASR※2（受け入れ応答） | 不要 | 要 | 不要

注※1

アソシエーション受け入れ指示でO_PASIを指定

注※2

アソシエーション受け入れ指示でO_EXPASIを指定

注※3

APは格納領域（およびLI値）を指定

受け入れ応答型のerrno=EINVALの場合は，以降の通信はできません。異常終了のDISABLE関数，またはCLOSE関数を発行し，通信を終了させてください。これら以外の関数を発行したとき，errno=EDEADLKでエラーリターンします。

ENABLE関数は，通信障害が発生してもエラーリターンしない場合があります。この場合，RECEIVE関数で障害情報を受け取る必要があります。

アソシエーションの確立方法には，図10-1に示す方法があります。

図10-1　アソシエーションの確立方法

10.2　SEND

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

データの送信要求を行います。送信要求は，通信網にデータを送出した時点で完了となります。ただし，送信したデータが相手まで届いているとは限りません。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s sbuf;               /* 通信記述部の領域確保 */
  int rcode;                      /* リターンコード */
  sbuf.O_vpart1.O_mode=O_SYN;     /* 通信記述部の設定 */
  ..........................         .................
  sbuf.O_vpart2.O_sdtlen=DTLEN;   /* 通信記述部の設定 */
  rcode=xnf_snd(&sbuf);           /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(4)　特記事項

送信処理は，フロー制御を行っており，通信網にデータを送出するまでの間に通信管理内に要求が保留されることもあります。したがって，同期型の送信要求が即時に完了するとは限りません。

SEND関数は，アソシエーションが確立されている状態以外では発行できません。アソシエーションが確立されている状態とは，次に示す状態のことです。

ENABLE（獲得型）関数発行後，RECEIVE関数によって相手APからアソシエーション確認（要求種別がO_ASC_CF）を受信

ENABLE（受け入れ指示型）関数発行正常終了後，ENABLE（受け入れ応答型）関数を発行

非同期指定の場合，SEND関数は通信管理に送信要求を指定するだけで，送信動作は完了していません。送信動作完了通知は，CHECK関数を発行して受け取ります。CHECK関数については，「10.6　CHECK」を参照してください。
CHECK関数を発行し，SEND関数の完了を受け取るまではSEND関数で指定した送信データ領域の内容を更新しないでください。
CHECK関数を発行し，SEND関数の完了を受け取るまでは同一アソシエーションで別のSEND関数を発行できません。

非同期RECEIVE関数を発行した状態で，SEND要求を行ってもかまいません。

セション要求機能で全二重以外を使用する場合，APのシーケンスエラーによってエラーリターンします。この場合はAPが送受信を続けても回復できません。
セション要求機能で全二重以外を使用する場合で，SEND関数を非同期で発行しているときも，APと通信管理との状態不一致によってシーケンスエラーになることがあります。この場合は，非同期RECEIVE関数の完了事象を受信することによって回復手段をAPが実行できます。
APはこのような二つのケースに対応できるように半二重，小同期，再同期，および大同期の処理手順を考慮する必要があります。

errno=EINVALのときは，以降の通信はできません。異常終了のDISABLE関数，またはCLOSE関数を発行し，通信を終了させてください。これら以外の関数を発行した場合，errno=EDEADLKでエラーリターンします。

SEND関数は，通信障害が発生していてもエラー通知しない場合があります。この場合，RECEIVE関数で障害情報を受け取る必要があります。

10.3　RECEIVE

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

アソシエーションの確立応答の受信，アソシエーションの解放指示の受信，ROSEデータの受信，およびPLデータの受信を行います。なお，同期型の要求の場合，受信データがあれば受信処理はすぐに完了しますが，受信データがなければ到着するまで待ちます。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s rbuf;               /* 通信記述部の領域確保 */
  int rcode;                      /* リターンコード */
  rbuf.O_vpart1.O_mode=O_SYN;     /* 通信記述部の設定 */
  ..........................         .................
  rbuf.O_vpart2.O_bflen=BFLEN;    /* 通信記述部の設定 */
  rcode=xnf_rcv(&rbuf);           /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

正の整数：指定した受信バッファ長不足のため，不足分のデータを読み捨てた

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(4)　特記事項

同期指定の場合，受信データがあれば受信データを読み込んでリターンしますが，受信データがなければデータが到着するまでリターンしません。

非同期指定の場合，RECEIVE関数は通信管理に受信要求をするだけで，受信動作は完了していません。受信動作完了通知は，CHECK関数を発行して受け取ります。CHECK関数については，「10.6　CHECK」を参照してください。

RECEIVE関数で次に示す要求種別を受信した場合，APは終了要求のDISABLE関数を発行してください。DISABLE関数を発行するまでアソシエーションは非活性化されません。

O_ABR_ID：A_ABORT指示

O_PAR_ID：A_PABORT指示

O_ASC_CF：A_ASC確認の拒否

同じアソシエーションでRECEIVE関数が発行できる非同期要求回数は1です。

同期指定の場合，以前に発行した非同期指定の関数の完了事象があると，エラーリターンします。APはCHECK関数を発行して完了事象を受け取る必要があります。

RECEIVE関数はアソシエーションが確立されている状態か，または要求種別O_ASC_CFを受信するときだけ発行できます。
ほかのアソシエーション未確立状態でRECEIVE関数を発行した場合は，エラーリターンします。

アソシエーションの確立時にO_EXACTRを指定してO_ASC_CFを受信する場合は，「自局PSAPアドレス情報」および「マルチネットワーク情報※」格納領域を指定してください。

注※

指定しない場合は，格納領域アドレスをNULLクリアしてください。

errno=EINVALのときは，以降の通信はできません。異常終了のDISABLE関数，またはCLOSE関数を発行し，通信を終了させてください。これら以外の関数を発行した場合，errno=EDEADLKでエラーリターンします。

10.4　DISABLE

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

アソシエーションの非活性化（解放）要求およびアソシエーション確立要求に対する拒否応答を行います。次に示す4種類の要求種別があります。

正常解放：アソシエーションを正常に解放します。

終了応答：相手からのアソシエーション解放要求に対して，肯定応答を返し，アソシエーションを非活性化します。

強制解放：アソシエーションを強制的に解放（アボート）します。

確立拒否：アソシエーション確立要求を拒否します。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s sbuf;               /* 通信記述部の領域確保 */
  int rcode;                      /* リターンコード */
  sbuf.O_vpart1.O_mode=O_SYN;     /* 通信記述部の設定 /
  ..........................         .................
  sbuf.O_vpart2.O_bflen=BFLEN;    /* 通信記述部の設定 */
  rcode=xnf_dis(&sbuf);           /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

正の整数：受信バッファ長不足のため，不足分のデータを読み捨てた

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(4)　特記事項

DISABLE関数を発行すると，データの送受信で使用していたアソシエーション端点識別子は無効となります。

非同期指定の場合，DISABLE関数は通信管理に動作要求を指定するだけで，要求動作は完了していません。動作完了通知は，CHECK関数を発行して受け取ります。CHECK関数については，「10.6　CHECK」を参照してください。

以前に非同期関数が発行されている場合，その非同期関数の種類，および通信管理のアソシエーションの状態によってはDISABLE関数がエラーとなります。
エラー発生時は，CHECK関数またはRECEIVE関数を発行し，エラー要因を取得する必要があります。

終了要求のDISABLE関数発行時以前に発行した非同期指定のRECEIVE関数は，取り消されます。その場合，RECEIVE関数に対する動作完了通知は，APに通知されません。

異常終了のDISABLE関数発行時，以前に発行した関数はすべて取り消されます。その場合，非同期関数に対する動作完了通知は，APに通知されません。

アソシエーションの確立時に，O_EXPASIを指定した場合は，確立拒否をするときに「自局PSAPアドレス情報」を指定してください。

errno=EINVALのときは，以降の通信はできません。異常終了のDISABLE関数またはCLOSE関数を実行し，通信を終了させてください。これら以外の関数を発行した場合，errno=EDEADLKでエラーリターンします。

DISABLE関数がEDEADLKでエラーリターンした場合，APの手順不正によるシーケンスエラー，または以前に発行した非同期のRECEIVE関数に完了事象があるため受け付けられないという二つの意味があります。
以前に発行した非同期のRECEIVE関数に完了事象があるときは，EVENTS関数，CHECK関数を発行して完了事象を受信してから処理を続行する必要があります。それ以外のときは，APで異常終了するか，シーケンスの見直しを行うようにしてください。

10.5　EVENTS

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

指定したアソシエーションに対する非同期要求の完了報告を監視します。非同期要求の完了報告は次に示す四つの種類があります。

非同期のENABLE関数に対するアソシエーションの確立完了

非同期のSEND関数要求に対するデータ送信完了

非同期のRECEIVE関数要求に対するデータ受信完了

非同期のDISABLE関数要求に対するアソシエーションの解放完了

(2)　書き方

#include <sys/types.h>             /* ヘッダ情報取り込み */
#include <sys/time.h>              /* ヘッダ情報取り込み */
#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  int nfound;                     /* リターンコード */
  int nfds;                       /* チェック範囲の指定 */
  fd_set readfds,                 /* アソシエーション識別子領域確保 */
         writefds,                /* 拡張用 */
         exceptfds;               /* 拡張用 */
  struct timeval timeout;         /* 監視タイマ */
  nfound=xnf_evt(nfds,&readfds,&writefds,&exceptfds,&timeout); /*関数呼び出し*/

nfds
readfdsで与えられる状態完了ビットセットに対して，ビットの検査範囲を指定します。ビットセットの検査範囲は，0からnfds－1までです。

readfds
非同期事象の発生の監視対象に対応するビットセットのエリア，および非同期事象の発生通知を受けるビットセットのエリアです。OSI通信機能が非同期事象の発生しているnfdsに対応するビットをONにして返します。

writefds
writeが可能な監視対象に対するビットセットのエリアです。
今後の拡張用としてリザーブしています。

exceptfds
例外の保留を受けるビットセットのエリアです。
今後の拡張用としてリザーブしています。

timeout
非同期事象が発生していないときに，waitする時間を設定するtimeval構造体のポインタを指定します。

struct timeval  {
   long tv_sec;      /* 秒 */
   long tv_usec;     /* ミリ秒 */
}

timeoutがNULL以外の場合，timeval構造体に指定された値が，waitする最大時間となります。また，timeval構造体の持つ値が0のときは，waitしないですぐにリターンします。
timeoutがNULLの場合，非同期事象が発生するまでwaitします。
timeval構造体のtv_usecは拡張用としてリザーブしています。

(3)　リターン情報

(a)　リターンコード

正の整数：完了報告の数（非同期事象が発生しているアソシエーション数）

0：完了している非同期要求なし

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

なし。

(4)　特記事項

この機能は，ほかのスペシャルファイルも同時に指定できます。アソシエーション端点識別子は，ほかのスペシャルファイルのfd（ファイルディスクリプタ）と同じです。アソシエーションのうちどれか一つでも非同期完了事象を探知した場合，その時点でリターンします。

非同期要求の完了報告があった場合は，CHECK関数を発行してその完了報告を取り込んでください。
非同期事象が存在しているときに，CHECK関数を発行しないで該当アソシエーションに対し，同期要求のSEND/RECEIVE関数を発行するとエラーになります。

リターンコードが0（完了している非同期要求なし）の場合，以前に発行している要求が取り消されてはいないため，再度，EVENTS関数を発行する必要があります。

xnf_evtのインタフェースはselectシステムコールインタフェースに準拠します。詳細については，AIXマニュアルを参照してください。

10.6　CHECK

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

非同期要求の完了をチェックします。非同期要求が完了していない場合は，完了するまで待ちます。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s *chbuf;             /* 通信記述部のポインタ */
  int rcode;                      /* リターンコード */
  int a_ascid;                    /* アソシエーション端点識別子 */
  rcode=xnf_chk(a_ascid,&chbuf);  /* 関数呼び出し */

chbuf
完了している非同期要求を識別するための情報を受け取る領域を指定します。
以前に発行した非同期要求で指定されていた通信記述部のアドレスを，通信管理が格納します。

(3)　リターン情報

(a)　リターンコード

正の整数：受信バッファ長不足のため，不足分のデータを読み捨てた

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(4)　特記事項

非同期要求の発行時に使用した通信記述部は，CHECK関数によって完了通知を受け取るまで，内容を変更しないでください。

同じアソシエーション上にSEND関数とRECEIVE関数の両方で非同期要求の完了通知がある場合，SEND関数が優先されます。

CHECK関数発行による完了通知を受けずに，同一アソシエーション（a_ascid）に対するSENDまたはRECEIVE関数の非同期要求関数を連続して発行することはできません。

通信管理側のアソシエーションでは，非同期動作の完了事象が存在しなければ，非同期動作が完了するまでCHECK関数はリターンしません。

CHECK関数のリターン情報は，各関数のリターン情報でもあるため，各関数の特記事項も参照してください。

SEND関数の完了をCHECK関数で受信する場合は，シーケンスエラーでエラーリターンすることがあります。詳細については，「10.2　SEND」を参照してください。

10.7　RETRYCK

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

OSI通信機能による障害検出によってアソシエーションが非活性化されたとき，ユーザがアソシエーションの確立を再試行できるかどうかの判定情報を提供します。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  unsigned long rcode;            /* リターンコード */
  rcode=xnf_rty();                /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

RETRYCK関数のリターンコードを表10-2に示します。

表10-2　RETRYCK関数のリターンコード

項番 | 名称 | 値 | 再試行条件 | 概要
1 | A_EROLDF | 00000000 | APの独自基準で判定 | 通常のパラメタエラー，プロトコルエラー
2 | A_ERBUSY | 00200000 | 一定時間間隔で複数回の再試行が望ましい | 通信網の通信リソースが短期的にビジー状態
3 | A_ERPDST | 00400000 | プロトコルにより相手局要因で異常終了
4 | A_ERNRTY | 00600000 | 再試行が望ましいそのほかの要因
5 | A_ERHARD | 00800000 | 再試行は無意味 | ハードウェア障害によってアダプタ使用不可
6 | A_ERDEST | 00a00000 | 再試行にはオペレータの判断が必要 | 通信網の通信リソースが長期的にビジー状態
7 | A_ERPSRC | 00c00000 | 自局のプロトコル上の要因で接続不可
8 | A_ERHALT | 00e00000 | オペレータの判断が必要なそのほかの長期的要因
9 | A_EREROR | ffffffff | APの独自基準で判断 | 障害情報未発生

(b)　詳細エラー情報

なし。

(c)　詳細エラーコード

なし。

(4)　特記事項

障害が発生していないときに，RETRYCK関数を発行すると，障害情報未発生リターンとなります。

障害発生時，RETRYCK関数以外の関数を発行すると，再試行情報はクリアされます。

同一アソシエーションを複数プロセス（親子関係）からアクセスするAPが使用する場合，次の点に注意してください。

forkおよびexecによって生成/実行された直後のプロセスの場合，当該情報は必ず「障害情報未発生」となります。

当該情報は，障害などを検出したプロセス側で取得してください。ほかのプロセスでは正しい情報を取得できません。

10.8　CLOSE

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

アソシエーション端点識別子を非活性化します。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  unsigned long a_ascid;          /* アソシエーション端点識別子 */
  int rcode;                      /* リターンコード */
  rcode=xnf_cls(a_ascid);         /* 関数呼び出し */

(3)　リターン情報

(a)　リターンコード

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

なし。

(4)　特記事項

あるアソシエーションに対し，アソシエーション端点識別子が一つしかなく，かつアソシエーションが非活性化されていない場合にCLOSE関数を発行すると，"killコマンド"または"ウィンドウの強制終了"と同じ意味になります。

あるアソシエーションに対し，forkおよびexecによって以降の処理を子プロセスに移行する場合，親プロセスでは使用していたアソシエーション端点識別子が不要となることがあります。このような場合に，アソシエーション端点識別子を非活性化するためにCLOSE関数を使用してください。

10.9　OPTION

＜この節の構成＞

(1)　機能概要

(2)　書き方

(3)　リターン情報

(4)　特記事項

(1)　機能概要

オプションコードで指定したコードの処理を行います。

(2)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
  struct cd_s sbuf;               /* 通信記述部の領域確保 */
  int rcode;                      /* リターンコード */
  int option;                     /* オプションコード */
  sbuf.O_vpart1.O_ascid=アソシエーション端点識別子;
                                  /* 通信記述部の設定 */
  rcode=xnf_option(option,&sbuf); /* 関数呼び出し */

option
オプションコードを指定します。

O_OPT_EVTAGAIN
非同期型のアソシエーションに対してだけ有効なオプションです。非同期要求が完了していない状態でCHECK関数を発行すると，リターンコード（-1）およびerrno=EAGAINを返します。

(3)　リターン情報

(a)　リターンコード

0：正常終了

-1：異常終了

(b)　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，グローバル変数のerrnoに設定されます。詳細エラー情報については，「11.　詳細エラー情報」を参照してください。

(c)　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了でerrno=EINVALのときに，通信記述部のO_statusに設定されます。詳細エラーコードについては，「12.　詳細エラーコード」を参照してください。

(4)　特記事項

オプションコードとしてO_OPT_EVTAGAINを指定したOPTION関数は，ENABLE（獲得型）またはENABLE（受け入れ指示型）の直後に発行してください。

11.　詳細エラー情報

この章では，詳細エラー情報について説明します。

＜この章の構成＞

11.1　詳細エラー情報

11.1　詳細エラー情報

詳細エラー情報は，リターンコードが異常終了のときに，システムのグローバル変数errnoに設定されます。OSI通信機能で発生する詳細エラー情報を表11-1に示します。

プログラム中でこれらの詳細エラー情報を参照するときは，シンボリック名を使用します。なお，グローバル変数errnoは，リターンコードが正常終了のときにはクリアされません。異常終了のときだけ参照できます。

表11-1　詳細エラー情報一覧

項番
シンボリック名
値
意味
ユーザの処置

1
ENOENT
2
AP識別子が正しくありません。
構成定義のAP識別子を参照してください。

2
EINTR
4
シグナルによって通信要求が取り消されました。
DISABLE関数を発行し非活性化してください。

3
ENXIO
6

通信管理が起動されていません。

通信管理が動作不能になった，または通信障害によって通信管理が閉塞しています。

OSI通信機能を使用しない構成情報となっています。

通信管理を起動してください。

通信管理のダンプを取得し再起動してください。

コンフィグレーション定義文を見直してください。

4
EBADF
9
アソシエーション端点識別子が正しくありません。
ENABLE関数のO_ascidを参照してください。

5
EAGAIN
11
非同期要求が完了していません。
EVENTS関数を再度発行してください。

6
EFAULT
14
不正な領域が指定されており，アクセス時にメモリフォルトが発生しました。
DISABLE関数を発行して非活性化してください。

7
EBUSY
16
リソースビジー状態です。
再試行が有効です。

8
ENODEV
19
通信アダプタ未実装のため，通信管理を切り離しました。
通信アダプタを実装します。
通信アダプタのサポートについては，「2.2　通信エンティティとアソシエーション」を参照してください。

9
EINVAL
22
通信記述部，またはパラメタで不正な値が指定されています。または，関数内で通信障害が検出されました。
O_statusを表示して切り分けてください。

10
ENFILE
23
システムのオープン数の上限値を超えました。
システムの制限を参照してください。

11
EMFILE
24
1プロセスで同時にオープンできるファイルの上限値を超えました。
システムの制限を参照してください。

12
ENOSPC
28
使用できるTSAP数またはアソシエーション数の上限値を超えました。
システムの制限，または構成定義を見直してください。

13
EDEADLK
45
シーケンスエラーまたはシーケンス上のデッドロック状態です。
ユーザの関数シーケンスを見直してください。

12.　詳細エラーコード

この章では，詳細エラーコードについて説明します。

＜この章の構成＞

12.1　詳細エラーコード

12.1　詳細エラーコード

詳細エラーコードは，リターンコードが異常終了で，詳細エラー情報がEINVALのときに，通信記述部のO_statusに示す格納領域に設定されます。

＜この節の構成＞

(1)　詳細エラーコード体系

(2)　詳細エラーコード

(1)　詳細エラーコード体系

詳細エラーコードの形式（4バイト（16進数8けた））を図12-1に示します。

図12-1　詳細エラーコードの形式

注意

詳細エラーコードは，OSI通信機能が保守用の情報として付加しているものであり，予告なく変更することがあります。したがって，上位プログラム側では，この情報によってエラーを判定し，処理を変えるようなことをしないでください。

(2)　詳細エラーコード

OSI通信機能で設定する詳細エラーコードを表12-1に示します。

表12-1　詳細エラーコード一覧

項番
詳細エラーコード
意味
ユーザの処置

1
08010002
動作モードが不正です。
O_modeの値を確認してください。
「9.2(4)O_mode」を参照してください。

2
08010003
AP識別子が不正またはAP識別子の格納領域アドレスが不正です。
O_apidの値を確認してください。
「9.2(5)O_apid」を参照してください。

3
08010004
サービス種別が不正です。
O_forの値を確認してください。
「9.2(6)O_for」を参照してください。

4
08010006
要求種別が不正です。
O_reqidの値を確認してください。
「9.2(8)O_reqid」を参照してください。

5
08010007
データ識別が不正です。
O_datidの値を確認してください。
「9.2(9)O_datid」を参照してください。

6
0801000c
相手PSAPアドレスの格納領域アドレスが不正です。
O_psapの値を確認してください。
「9.2(10)O_psap」を参照してください。

7
08010013
応用コンテキスト名格納領域アドレスが不正です。
O_apctxの値を確認してください。
「9.2(16)O_apctx」を参照してください。

8
08010014
コンテキスト定義リスト格納領域アドレスが不正です。
O_pctxdの値を確認してください。
「9.2(18)O_pctxd」を参照してください。

9
08010015
コンテキスト定義結果リスト格納領域アドレスが不正です。
O_pctxrの値を確認してください。
「9.2(19)O_pctxr」を参照してください。

10
08010016
アソシエーション確立結果コードが不正です。
O_efcdの値を確認してください。
「9.2(31)O_efcd」を参照してください。

11
08010019
セションパラメタ部アドレスが不正です。
O_isqnoの値を確認してください。
「9.2(23)O_isqno」を参照してください。

12
0801001d
送信バッファアドレスが不正，またはデータ長が不正です。
O_withまたはO_sdtlenの値を確認してください。
「9.2(26)O_with」，「9.2(27)O_sdtlen」を参照してください。

13
0801001e
受信バッファアドレスが不正，またはデータ長が不正です。
O_intoまたはO_bflenの値を確認してください。
「9.2(28)O_into」，「9.2(29)O_bflen」を参照してください。

14
0801001f
コンテキスト識別子リスト格納領域アドレスが不正です。
O_ctxltの値を確認してください。
「9.2(20)O_ctxlt」を参照してください。

15
08010024
通信記述部アドレスが不正またはほかの関数ですでに使用中です。または，アソシエーション端点識別子が不正です。
関数仕様を確認してください。
「10.　関数仕様」を参照してください。

16
08010025
同一アソシエーションですでに非同期のRECEIVE/SEND関数を受け付け済みです。または，ほかの関数で非同期処理中です。
次に示す関数仕様を確認してください。

「10.1　ENABLE」

「10.2　SEND」

「10.3　RECEIVE」

「10.4　DISABLE」

17
08010026
自Tセレクタが未指定です。
「2.2　通信エンティティとアソシエーション」を参照してください。

18
08010028
自局PSAPアドレスの格納領域アドレスが不正です。
O_spsapの値を確認してください。
「9.2(35)O_spsap」を参照してください。

19
08010029
マルチネットワーク情報格納領域アドレスが不正です。
O_mninfの値を確認してください。
「9.2(36)O_mninf」を参照してください。

20
08010030
発呼側APタイトル格納領域アドレスが不正です。
O_maptiの値を確認してください。
「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

21
08010031
発呼側AE修飾子格納領域アドレスが不正です。
O_maequの値を確認してください。
「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

22
08010032
発呼側APインボケーションID格納領域アドレスが不正です。
O_mapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

23
08010033
発呼側AEインボケーションID格納領域アドレスが不正です。
O_maeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

24
08010034
着呼側APタイトル格納領域アドレスが不正です。
O_yaptiの値を確認してください。「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

25
08010035
着呼側AE修飾子格納領域アドレスが不正です。
O_yaequの値を確認してください。
「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

26
08010036
着呼側APインボケーションID格納領域アドレスが不正です。
O_yapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

27
08010037
着呼側AEインボケーションID格納領域アドレスが不正です。
O_yaeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

28
08010038
応答側APタイトル格納領域アドレスが不正です。
O_raptiの値を確認してください。
「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

29
08010039
応答側AE修飾子格納領域アドレスが不正です。
O_raequの値を確認してください。
「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

30
0801003a
応答側APインボケーションID格納領域アドレスが不正です。
O_rapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

31
0801003b
応答側AEインボケーションID格納領域アドレスが不正です。
O_raeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

32
08010040
ユーザパラメタ長オーバーです。
「3.3　ACSEのユーザデータ」を参照してください。

33
08010043
マルチネットワーク情報が不正です。
O_mninfの値を確認してください。
「9.2(36)O_mninf」を参照してください。

34
08010044
自局PSAPアドレスが不正です。
O_spsapの値を確認してください。
「9.2(35)O_spsap」を参照してください。

35
08020003
アソシエーションの確立中，確立済み状態または解放中に不正な要求を発行しました。
次に示す関数仕様を確認してください。

「10.1　ENABLE」

「10.2　SEND」

「10.3　RECEIVE」

「10.4　DISABLE」

36
08030001
O_ABR_ID，O_PAR_ID受信後またはO_ASC_CF（確立拒否）受信後にRECEIVE要求を発行しました。
次に示す関数仕様を確認してください。

「10.1　ENABLE」

「10.2　SEND」

「10.3　RECEIVE」

終了要求のDISABLEを発行します。

37
07010001
相手PSAPアドレスの形式が不正です。
O_psapの値を確認してください。
「9.2(10)O_psap」を参照してください。

38
07010003
データパラメタ不正です。
「付録A　データ形式」を参照してください。

39
07010004
ユーザパラメタ長制限オーバーです。
「3.3　ACSEのユーザデータ」を参照してください。

40
07010005
ユーザパラメタ長がTSDU長をオーバーしました。
TSDU長またはユーザパラメタ長を確認してください。

41
07010006
要求機能未サポートです。
SENDの要求種別を確認してください。

42
07010007
自局PSAPアドレスのデータ形式が不正です。
O_spsapの値を確認してください。
「9.2(35)O_spsap」を参照してください。

43
07010102
理由診断コードが不正です。
O_recodの値を確認してください。
「9.2(32)O_recod」を参照してください。

44
07010103
応用コンテキスト名称が不正です。
O_apctxの値を確認してください。
「9.2(16)O_apctx」を参照してください。

45
07010104
発呼側APタイトルが不正です。
O_maptiの値を確認してください。
「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

46
07010105
着呼側APタイトルが不正です。
O_yaptiの値を確認してください。
「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

47
07010106
応答側APタイトルが不正です。
O_raptiの値を確認してください。
「9.2(12)O_mapti，O_yapti，O_rapti」を参照してください。

48
07010107
発呼側AE修飾子が不正です。
O_maequの値を確認してください。「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

49
07010108
着呼側AE修飾子が不正です。
O_yaequの値を確認してください。
「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

50
07010109
応答側AE修飾子が不正です。
O_raequの値を確認してください。
「9.2(13)O_maequ，O_yaequ，O_raequ」を参照してください。

51
07010110
発呼側APインボケーションIDが不正です。
O_mapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

52
07010111
着呼側APインボケーションIDが不正です。
O_yapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

53
07010112
応答側APインボケーションIDが不正です。
O_rapidの値を確認してください。
「9.2(14)O_mapid，O_yapid，O_rapid」を参照してください。

54
07010113
発呼側AEインボケーションIDが不正です。
O_maeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

55
07010114
着呼側AEインボケーションIDが不正です。
O_yaeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

56
07010115
応答側AEインボケーションIDが不正です。
O_raeidの値を確認してください。
「9.2(15)O_maeid，O_yaeid，O_raeid」を参照してください。

57
07010201
ROSEに対する送信データの形式が不正です。
「付録A　データ形式」を参照してください。

58
07010302
コンテキスト定義リストのデータフォーマットが不正です。
O_pctxdの値を確認してください。
「9.2(18)O_pctxd」を参照してください。

59
07010303
コンテキスト定義結果リストのデータ形式が不正です。
O_pctxrの値を確認してください。
「9.2(19)O_pctxr」を参照してください。

60
07010304
コンテキスト識別子リストのデータ形式が不正です。
O_ctxltの値を確認してください。
「9.2(20)O_ctxlt」を参照してください。

61
07010305
SLに対するパラメタアドレスまたは送信データの形式が不正です。
O_isqnoの値を確認してください。
「9.2(23)O_isqno」を参照してください。

62
07010306
SLに対する受信データのパラメタアドレスが不正です。
O_isqnoの値を確認してください。
「9.2(23)O_isqno」を参照してください。

63
07010401
SL要求機能のパラメタが不正です。
O_srqcdの値を確認してください。
「9.2(21)O_srqcd」を参照してください。

64
07010402
同期点通し番号のパラメタが不正です。
O_isqnoの値を確認してください。
「9.2(23)O_isqno」を参照してください。

65
07010403
トークン項目のパラメタが不正です。
O_tokenの値を確認してください。
「9.2(24)O_token」を参照してください。

66
07010404
トークン設定項目のパラメタが不正です。
O_tksetの値を確認してください。
「9.2(25)O_tkset」を参照してください。

67
07010405
バージョン番号が不正です。
O_versnの値を確認してください。
「9.2(7)O_versn」を参照してください。

68
07010406
再同期型のパラメタが不正です。
O_isqnoの値を確認してください。
「9.2(23)O_isqno」を参照してください。

69
07020001
関数または要求種別の順序エラーです。
関数仕様を確認してください。
「10.　関数仕様」を参照してください。

70
07020002
データ送信時に下位のコネクションが切断されました。
RECEIVE関数を発行して切断理由（P_ABind）を取得してください。

71
07020003
受信したデータ長が通信記述部で指定されている領域よりも大きいため，データの後ろを切り捨てました。

PLコンテキスト定義リスト/定義結果リスト/識別子リストの格納領域

発呼/着呼/応答側AP名称の格納領域

応用コンテキスト名の格納領域

ユーザデータの格納領域

ユーザデータ長を大きくしてください。ただし，相手のエラーでユーザデータ長が異常となることも考えられます。

72
04******
トランスポート層でエラーが発生しました。※
終了要求のDISABLE関数を発行してください。

73
03******
ネットワーク層でエラーが発生しました。※
終了要求のDISABLE関数を発行してください。

74
02******
データリンク層でエラーが発生しました。※
終了要求のDISABLE関数を発行してください。

注※

詳細については，マニュアル「通信管理　XNF/AS　解説・運用編」を参照してください。

13.　切断理由コード

この章では，切断理由コードについて説明します。

＜この章の構成＞

13.1　切断理由コード

13.1　切断理由コード

切断理由コードは，RECEIVE関数の要求種別がO_PAR_IDまたはO_ABR_IDのときに，DISABLE関数を発行すると，O_abcodに示す格納領域に設定されます。詳細については，マニュアル「通信管理　XNF/AS　解説・運用編」を参照してください。

＜この節の構成＞

(1)　切断理由コード体系

(1)　切断理由コード体系

切断理由コード体系を図13-1に示します。切断理由コードは，4バイト（16進数8けた）です。

図13-1　切断理由コード体系

注意

切断理由コードは，OSI通信機能が保守用の情報として付加しているものであり，予告なく変更することがあります。したがって，上位プログラム側では，この情報によってエラーを判定し，処理を変えるようなことをしないでください。

付録

＜この付録の構成＞

付録A　データ形式

付録B　マルチネットワーク情報設定方法

付録C　OSIの関連資料

付録D　HI-UX/WE2上で動作するXNF/S-E2との差異

付録E　AIX 5L V5.2以前との差異

付録A　データ形式

＜この節の構成＞

付録A.1　ACSE（アソシエーション制御サービス）のユーザデータ

付録A.2　ROSE（リモートオペレーションサービス）のユーザデータ

付録A.3　PL（プレゼンテーションサービス）のユーザデータ

付録A.1　ACSE（アソシエーション制御サービス）のユーザデータ

ACSEのユーザデータはEXTERNALというデータ構造を持ち，EXTERNALとユーザAPDUの二つのパートから成ります。

EXTERNAL部はユーザAPDUの転送構文名とコンテキスト識別子とを指定するパートです。

EXTERNAL部に続けてユーザのAPDUを付加することができます。ユーザAPDU部の使用は任意です。

データの送信時は，図A-1に示す形式でユーザの送信バッファにデータを作成します。受信時は，同じ形式でユーザの受信バッファにデータが格納されます。

なお，ここで示すAPDU形式は参考であり，詳しくはISO規格（8650）を参照してください。

図A-1　ACSE EXTERNALデータ形式

付録A.2　ROSE（リモートオペレーションサービス）のユーザデータ

OSASサービスを使用するときの送受信データは，PDVリスト，およびROSEのAPDUの二つのパートから成ります。ROSEのAPDUは，ROSEユーザとの間のサービスプリミティブとして定義されている表A-1に示す種類があります。

表A-1　ROSEのAPDUとサービスプリミティブ

項番 | APDU | サービスプリミティブ | 要求 | 指示 | 備考
1 | ROIV | RO-INVOKE | ○ | ○ | －
2 | RORS | RO-RESULT | ○ | ○ | －
3 | ROER | RO-ERROR | ○ | ○ | －
4 | RORJ | RO-REJECT-U | ○ | ○ | ユーザ拒否
5 | RORJ | RO-REJECT-P | － | ○ | ROSE拒否

（凡例）

－：該当しません。

データの送信時は，図A-2～図A-7に示す形式でユーザの送信バッファにデータを作成します。受信時は，同じ形式でユーザの受信バッファにデータが格納されます。

なお，ここで示すAPDU形式は参考であり，詳しくはISOの規格（9072）を参照してください。

図A-2　ROSEユーザデータ形式

図A-3　ROIV-APDU形式

図A-4　RORS-APDU形式

図A-5　ROER-APDU形式

図A-6　RORJ-P-APDU形式

図A-7　RORJ-U-APDU形式

付録A.3　PL（プレゼンテーションサービス）のユーザデータ

PLサービスを使用するときの送受信データは，SLの同期制御データ，PDVリスト，およびユーザAPDUの三つのパートから成ります。PLユーザとの間のサービスプリミティブとして定義されている表A-2に示す種類があります。

表A-2　PLサービスプリミティブ

項番 | サービスプリミティブ | 備考
1 | P-DATA |
2 | P-TOKEN-GIVE |
3 | P-TOKEN-PLEASE |
4 | P-SYNC-MINOR |
5 | P-RESYNCHRONIZE |
6 | P-SYNC-MAJOR |
7 | P-TYPED-DATA |

データの送信時は，図A-8に示す形式でユーザの送信バッファにデータを作成します。受信時は，同じ形式でユーザの受信バッファにデータが格納されます。

なお，ここで示すAPDU形式は参考であり，詳しくはISOの規格（8327，8823）を参照してください。

図A-8　PLユーザデータ形式

付録B　マルチネットワーク情報設定方法

＜この節の構成＞

付録B.1　プロフィルタイプの指定/参照

付録B.2　アダプタ番号（ビットマップ）の設定/参照

付録B.3　従量課金（INS-P）/時間課金（INS-C）の種別，およびINS-Cの回線速度の指定/参照

付録B.1　プロフィルタイプの指定/参照

プロフィルタイプを指定/参照する場合，次に示す関数を指定してください。

＜この項の構成＞

(1)　指定する場合の例

(2)　参照する場合の例

(1)　指定する場合の例

(a)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
                                  /* 要求/代替TLクラス */
                                  /* (O_TLCLS0:クラス0 */
                                  /* O_TLCLS2:クラス2 */
                                  /* O_TLCLS4:クラス4 */
                                  /* O_TLCLSN:指定なし) */
O_uint_t  profile;                 /* プロフィルタイプ指定領域 */
..........................................
profile = 0;                       /* プロフィルタイプ指定領域初期化 */

O_set_TL_class(要求TLクラス,代替TLクラス,profile);
                                  /* 要求/代替TLクラス指定 */

(2)　参照する場合の例

(a)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
O_uint_t  profile;                 /* プロフィルタイプ参照領域 */
int  pref;                         /* 要求TLクラス取得領域 */
int  alti;                         /* 代替TLクラス取得領域 */

pref = O_get_TL_pref(profile);     /* 要求TLクラス取得 */
alti = O_get_TL_alti(profile);     /* 代替TLクラス取得 */

注

要求TLクラス取得領域，および代替TLクラス取得領域に参照したいTLクラスが設定されます。

＜要求/代替TLクラス種別＞

O_TLCLS0：クラス0

O_TLCLS2：クラス2

O_TLCLS4：クラス4

付録B.2　アダプタ番号（ビットマップ）の設定/参照

アダプタ番号（ビットマップ）を設定/参照する場合，次に示す関数を指定してください。

＜この項の構成＞

(1)　設定する場合の例

(2)　参照する場合の例

(1)　設定する場合の例

(a)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
O_uint_t  adpt_no;                 /* アダプタ番号指定領域 */
...........................
adpt_no = 0;                       /*                    */

O_set_ass(アダプタ番号,adpt_no);   /*                    */

注

アダプタ番号にX25_ALL_ASSを指定すると，「アダプタ番号を指定しない」と同じ意味になります。

(2)　参照する場合の例

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
O_uint_t  adpt_no;                 /* アダプタ番号参照領域 */
int       ass;                     /* アダプタ番号取得領域 */
...........................

O_get_ass(adpt_no,ass);            /* アダプタ番号取得 */

注

アダプタ番号取得領域に参照したいアダプタ番号が設定されます。

付録B.3　従量課金（INS-P）/時間課金（INS-C）の種別，およびINS-Cの回線速度の指定/参照

X25_SET_INS関数，X25_GET_PC関数，およびX25_GET_SPD関数は，XNF/S-E2との互換※のために残してあります。

XNF/ASはISDN直結接続をサポートしないため，従量課金（INS-P）/時間課金（INS-C）の種別の指定/参照とINS-Cの回線速度の指定/参照はできません。この場合，次に示す動作となります。

ENABLE獲得型発行時にO_mninfのINSサービス種別にX25_SET_INS関数を用い指定した値は無視されます。

ENABLE受け入れ指示型と，RECEIVEでO_ASC_CFを受信した際のマルチネットワーク情報にはINSサービス種別は設定されません。
したがって，X25_GET_PCとX25_GET_SPD関数は使用されません。

注※

XNF/ASの動作は，XNF/S-E2でISDN直結接続以外（例えば，専用回線接続や私設パケット交換接続）の構成接続した場合と同じとなります。

＜この項の構成＞

(1)　設定する場合の例

(2)　参照する場合の例

(1)　設定する場合の例

(a)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
O_usht_t  ins_kind;                /* INSサービス種別指定領域 */
                                  /* INS-P/INS-C種別 */
                                  /* (X25_INS-P：INS-P */
                                  /*  X25_INS_C：INS-C */
                                  /*  X25_INS_PC：指定なし) */
                                  /* INS-C回線速度指定[bit/sec] */
                                  /* (X25_SPD02400：2400 */
                                  /*  X25_SPD04800：4800 */
                                  /*  X25_SPD09600：9600 */
                                  /*  X25_SPD19200：19200 */
                                  /*  X25_SPD48000：48000 */
                                  /*  X25_SPD64000：64000 */
                                  /*  X25_SPDDEF：セットアップ) */
.........................................................

ins_kind = X25_SET_INS(INS_P/C種別,INS-C回線速度);
                                  /* INS-P/C種別指定 */

(2)　参照する場合の例

(a)　書き方

#include <xnfw/xnf.h>              /* ヘッダ情報取り込み */
O_usht_t  ins_kind;                /* INSサービス種別参照領域 */
O_usht_t  pc_value;                /* INS-P/C種別取得領域 */
O_usht_t  spd_value;               /* INS-C回線速度取得領域 */

pc_value  = X25_GET_PC(ins_kind);  /* INS-P/C種別取得 */
sbd value = X25_GET_SPD(ins_kind); /* INS-C回線速度取得領域 */

注

INS-P/C種別取得領域およびINS-C回線速度取得領域に参照したい情報がそれぞれ設定されます。

＜INS-P/INS-C種別＞

X25_INS_P：INS-P

X25_INS_C：INS-C

X25_INS_PC：指定なし

＜INS-C回線速度＞

X25_SPD02400：2400

X25_SPD04800：4800

X25_SPD09600：9600

X25_SPD19200：19200

X25_SPD48000：48000

X25_SPD64000：64000

付録C　OSIの関連資料

＜この節の構成＞

(1)　OSI規格関連（平成2年3月時点）

(2)　JIS規格関連（（財）日本規格協会　平成2年3月時点）

(1)　OSI規格関連（平成2年3月時点）

ISO規格一覧を表C-1に示します。

表C-1　ISO規格一覧

規格番号 | 規格名称
7498 | Information Processing Systems-Open Systems Interconnection-Basic Reference Model
8649 | Information Processing Systems-Open Systems Interconnection-Service Definition for Association Control Service Element
8650 | Information Processing Systems-Open Systems Interconnection-Protocol Specification for the Association Control Service Element
9072/1 | Information Processing Systems-Text Communication-Remote Operations Part1: Mode1 Notation and Service Definition
9072/2 | Information Processing Systems-Text Communication-Remote Operations part2: protocol Specification
8822 | Information Processing Systems-Open Systems Interconnection-Connection Oriented Presentation Service Definition
8823 | Information Processing Systems-Open Systems Interconnection-Connection Oriented Presentation Presentation Protocol Specification
8824 | Information Processing Systems-Open Systems Interconnection-Specification of Abstract Syntax Notation One (ASN.1)
8825 | Information Processing Systems-Open Systems Interconnection-Specification of Basic Encoding Rules for Abstract Syntax Notation One (ASN.1)
8326 | Information Processing Systems-Open Systems Interconnection-Basic Connection Oriented Session Service Definition
8327 | Information Processing Systems-Open Systems Interconnection-Basic Connection Oriented Session Protocol Specification
8326/AD2 | Information Processing Systems-Open Systems Interconnection-Basic Connection Oriented Session Service Definition ADDENDUM 2:Incorporation of unlimited user data
8327/AD2 | Information Processing Systems-Open Systems Interconnection-Basic Connection Oriented Session Protocol Specification ADDENDUM 2:Incorporation of unlimited user data
8072 | Information Processing Systems-Open Systems Interconnection-Transport Service Definition
8073 | Information Processing Systems-Open Systems Interconnection-Connection Oriented Transport Protocol Specification
8073/AD2 | Information Processing Systems-Open Systems Interconnection-Oriented Transport Protocol Specification Addendum2: Class Four operation over connectionless network service
8348 | Information Processing Systems-Data Communication-Network Service Definition
8348/AD1 | Information Processing Systems-Data Communication-Network Service Definition Addendum1: Connectionless-mode transmission
8348/AD2 | Information Processing Systems-Data Communication-Network Service Definition Addendum2: Network addressing
8878 | Information Processing Systems-Data Communication-Use of X.25 to Provide the OSI connection-mode Network Service
8208 | Information Processing Systems-Data Communication-X.25 Packet Level Protocol for Data Terminal Equipment
8881 | Information Processing Systems-Data Communication-Use of X.25 Packet Level Protocol in Local Area Networks
8473 | Information Processing Systems-Data Communication-Protocol for providing the connectionless-mode Network Service

(2)　JIS規格関連（（財）日本規格協会　平成2年3月時点）

INTAP実装規約（JISX5003⁻¹⁹⁸⁷参考）一覧を表C-2に示します。

表C-2　INTAP実装規約（JISX5003⁻¹⁹⁸⁷参考）一覧

参考番号 | 実装規約名称
S001 | 実装規約概説
S002 | アドレス体系実装規約
S003 | 名称体系実装規約
S004 | FTAM実装規約
S005 | MOTIS実装規約
S007 | 文書交換形式(ODA)実装規約
S010 | 上位層共通実装規約
S011 | WAN下位層実装規約
S012 | LAN下位層実装規約
S013 | LAN-WAN中継実装規約
S016 | コード体系実装規約
S017 | ネットワーク層中継実装規約
S018 | MACブリッジ実装規約

付録D　HI-UX/WE2上で動作するXNF/S-E2との差異

HI-UX/WE2上で動作するXNF/S-E2との差異について説明します。

＜この節の構成＞

(1)　TLクラス4

(2)　ISDNの直結接続

(3)　非共用ライブラリ未サポート

(1)　TLクラス4

XNF/ASでは，TLクラス4をサポートしないため，O_set_TL_class( )でO_TLCLS4を指定してもTLクラス4で接続できません。

(2)　ISDNの直結接続

XNF/ASでは，ISDNの直結接続をサポートしないため，従量課金（INS-P）/時間課金（INS-C）の種別の指定/参照とINS-Cの回線速度の指定/参照はできません。X25_SET_INS( )，X25_GET_PC( )，およびX25_GET_SPD( )は，XNF/S-E2との互換のために残してあります。詳細については，「付録B.3　従量課金（INS-P）/時間課金（INS-C）の種別，およびINS-Cの回線速度の指定/参照」を参照してください。

(3)　非共用ライブラリ未サポート

XNF/ASでは，非共用ライブラリは提供していません。共用ライブラリだけを提供しています。

付録E　AIX 5L V5.2以前との差異

AIX 5L V5.2以前とAIX 5L V5.3以降では，非同期型要求の方法に差異があります。AIX 5L V5.3以降で非同期型要求を発行する場合は，ENABLE（獲得型）またはENABLE（受け入れ指示型）の直後にCHECK非同期動作オプションを指定したOPTION関数を発行する必要があります。CHECK非同期動作オプションの詳細については，「10.9　OPTION」を参照してください。

非同期型要求の処理概要については，「2.4(2)非同期型要求」を参照してください。

索引

[Ａ][Ｃ][Ｄ][Ｅ][Ｈ][Ｊ][Ｎ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ]
[ア行][カ行][サ行][タ行][ハ行][マ行][ヤ行][ラ行]

(英字)

(Ａ)

ACSE

ACSE〔ユーザデータ〕

AEインボケーションID格納領域のアドレス

AE修飾子

AE修飾子格納領域のアドレス

AEタイトル

AIX 5L V5.2以前との差異

APDU〔ROSE〕

APインボケーションID格納領域のアドレス

AP識別子

AP識別子が格納されている領域

APタイトル

APタイトル格納領域のアドレス

AP名称〔PL，ACSEユーザデータ〕

AP名称の形式

(Ｃ)

CHECK

CLOSE

(Ｄ)

DISABLE

(Ｅ)

ENABLE

EVENTS

EXTERNAL

(Ｈ)

HI-UX/WE2上で動作するXNF/S-E2との差異

(Ｊ)

JIS規格関連

(Ｎ)

NSAPアドレス

(Ｏ)

O_abcod

O_apctx

O_apflg

O_apid

O_ascid

O_bflen

O_ctxlt

O_datid

O_efcd

O_fncode

O_for

O_into

O_intrp

O_isqno

O_maeid

O_maequ

O_mapid

O_mapti

O_mninf

O_mode

O_pctxd

O_pctxr

O_propf

O_psap

O_raeid

O_raequ

O_rapid

O_rapti

O_rdtlen

O_recod

O_reqid

O_sdtlen

O_sorce

O_spsap

O_sropf

O_srqcd

O_status

O_tkset

O_token

O_versn

O_with

O_yaeid

O_yaequ

O_yapid

O_yapti

OPTION

OSAS/API

OSASサービス

OSI規格関連

OSI通信機能

(Ｐ)

PDVリスト

PLのユーザデータ

ROSEのユーザデータ

PL〔ユーザデータ〕

PLサービス

PPDU〔PL〕

PPDUのパラメタ長

PSAPアドレス

PSAPアドレスのデータ形式

PSAPアドレスの内容

Pセレクタ

Pセレクタ

(Ｒ)

RECEIVE

RECEIVE関数の要求種別

RETRYCK

ROSE

ROSE〔ユーザデータ〕

(Ｓ)

SEND

SEND関数の要求種別

SIGKILL〔シグナル〕

SIGTERM〔シグナル〕

SSDU

Sセレクタ

Sセレクタ

(Ｔ)

Tセレクタ

Tセレクタ

(ア行)

(あ)

相手PSAPアドレスの形式

相手PSAPアドレスの形式

アソシエーション

アソシエーション確立結果を格納する領域

アソシエーション制御サービス

アソシエーション端点識別子

アソシエーションの解放

アソシエーションの解放手順〔同期型〕

アソシエーションの解放手順〔非同期型〕

アソシエーションの確立

アソシエーションの確立手順〔同期型〕

アソシエーションの確立手順〔非同期型〕

アダプタ番号の参照

アダプタ番号の設定

アプリケーションインタフェース

(い)

インタフェース

(う)

受け入れ型〔アソシエーションの確立〕

(お)

応用コンテキスト〔PL，ACSEユーザデータ〕

応用コンテキスト名格納領域のアドレス

応用コンテキスト名の形式

(カ行)

(か)

回線速度

獲得型〔アソシエーションの確立〕

確立拒否

関数仕様

関数の種別を格納する領域

(き)

強制解放

強制解放

(こ)

コンテキスト識別子リスト格納領域のアドレス

コンテキスト識別子リストの形式

コンテキスト定義結果リストの形式

コンテキスト定義リストの格納領域アドレス

(サ行)

(さ)

サービス種別の指定

再同期

再同期点制御

再同期点通し番号の形式

(し)

時間課金

シグナル

終了応答

従量課金

受信バッファ長の指定

受信ビジー

詳細エラーコード

詳細エラーコードを返す領域

詳細エラー情報

小同期

小同期点転送

小同期点通し番号の形式

初期同期点通し番号の形式

(せ)

制御データ転送

制御データ転送

正常解放

正常解放

セションパラメタ

切断理由コード

切断理由コードを格納する領域

(そ)

送受信データの種別を格納する領域

(タ行)

(た)

大同期

大同期点転送

大同期点通し番号の形式

(ち)

中断元を格納する領域

(つ)

通信相手の指定

通信エンティティ

通信記述部

通信記述部の形式

通信記述部の設定項目

通信記述部の説明

通信中の停止処理

(て)

提供者アボート

データ形式

自局PSAPアドレス

マルチネットワーク情報

データ形式〔ACSE〕

データ形式〔PL〕

データ形式〔ROSE〕

データの受信

データの送受信手順〔同期型〕

データの送受信手順〔非同期型〕

データの送信

データ分離

データ分離指定の形式

(と)

同期型〔アソシエーションの解放手順〕

同期型〔アソシエーションの確立手順〕

同期型〔データの送受信手順〕

同期型要求

同期型要求

動作モードの指定

トークン項目の形式

(ハ行)

(は)

バージョン番号

パラメタ長の制限

(ひ)

非活性化要求

非同期型〔アソシエーションの解放手順〕

非同期型〔アソシエーションの確立手順〕

非同期型〔データの送受信手順〕

非同期型要求

非同期型要求

(ふ)

プレゼンテーションコンテキスト識別子リストの形式

プレゼンテーションコンテキスト定義結果リストの形式

プレゼンテーションコンテキスト定義リストの形式

プレゼンテーションサービス

プログラムの作成

プロフィルタイプの参照

プロフィルタイプの指定

(へ)

ヘッダファイル

(マ行)

(ま)

マルチネットワーク情報の設定方法

マルチネットワーク情報のデータ形式

マルチネットワーク情報の内容

(ヤ行)

(ゆ)

ユーザデータ〔ACSE〕

ユーザデータ〔PL〕

ユーザデータ〔ROSE〕

ユーザデータ〔アソシエーション解放時〕

ユーザデータ〔アソシエーション確立時〕

ユーザデータ長の指定

ユーザデータ長の制限

ユーザデータ長を格納する領域

(よ)

要求種別を格納する領域

(ラ行)

(ら)

ライブラリ

ライブラリ関数一覧

(り)

リモートオペレーションサービス

リモートオペレーションサービス

リモートオペレーションサービス

理由診断を格納する領域

利用者アボート

リンク

■ 商標類

AIXは，米国におけるInternational Business Machines Corporationの登録商標です。
AIX 5Lは，米国およびその他の国におけるInternational Business Machines Corporationの商標です。
INS-Cは，日本電信電話(株)のサービス名称です。
INS-Pは，日本電信電話(株)のサービス名称です。