ONC+ 開発ガイド

メッセージクラス

メッセージクラスの概念は、SAF の拡張性に含まれています。これまでに説明したメッセージはすべてクラス 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_size (sacmsg 構造体の要素) は、メッセージの中のオプションデータ部分のサイズを示します。オプションデータ部分の形式は未定義です。オプションデータ部分の形式定義は、メッセージのタイプによって決まっています。Solaris では、sc_sizepm_size は常に 0 です。