ONC+ 開発ガイド

メッセージクラス

メッセージクラスの概念は、SAF の拡張性に含まれています。前述のメッセージはすべて class 1 メッセージです。 どのメッセージにも可変長データは含まれていません。必要な情報はすべてメッセージヘッダーに入っています。

新たなメッセージをプロトコルに加えると、それによって新たなメッセージクラス、たとえば、クラス 2 が定義されます。SAC からポートモニターに送られる最初のメッセージは常にクラス 1 のメッセージです。どのポートモニターもクラス 1 のメッセージは理解できますから、SAC が送る最初のメッセージは必ず理解されます。ポートモニターは、それに対する sac への応答の中で、ポートモニターが理解できる最大メッセージクラス番号を pm_maxclass フィールドに設定します。sac は、ポートモニターに対して、pm_maxclass の値より大きいクラスのメッセージは送りません。ポートモニターが理解できるクラスより上のクラスのメッセージを必要とする要求は、失敗に終わります。Solaris 環境では、常に pm_maxclass 1 へ設定してください。

どのポートモニターも、pm_maxclass の値と等しいクラスかそれより小さいクラスのメッセージを受信できます。したがって、pm_maxclass フィールドが 3 の場合、このポートモニターはクラス 123 のメッセージを理解できます。ポートモニターはメッセージを生成することはありません。受信したメッセージに応答するだけです。ポートモニターからの応答は、元のメッセージと同じクラスでなければなりません。

sac の側からだけメッセージが生成されるので、sac が生成できるクラスより上のクラスのメッセージをポートモニターが処理できる場合も、このプロトコルは正しく機能します。

pm_size pmmsg 構造体の要素です。sc_sizesacmsg 構造体の要素です。 これらの要素はメッセージのオプションデータ部分のサイズを示します。オプションデータ部分の形式は未定義です。オプションデータ部分の形式定義は、メッセージのタイプによって決まっています。Solaris 環境では、常に sc_sizepm_size0 へ設定してください。