ONC+ 開発ガイド

ポートモニターメッセージ

ポートモニターから sac に送られるメッセージの形式は、次の構造体 pmmsg で定義されています。

struct pmmsg {
 	char pm_type;                /* メッセージのタイプ */
 	unchar pm_state;             /* ポートモニターの現在の状態 */
 	char pm_maxclass;            /* このポートモニターが解釈できる
                                   最大メッセージクラス */
 	char pm_tag[PMTAGSIZE + 1];  /* ポートモニターのタグ */
 	int pm_size;                 /* オプションデータ部分のサイズ */
};

ポートモニターから SAC に送られるメッセージには 2 つのタイプがあります。 メッセージがどのタイプなのかは、pmmsg 構造体の pm_type フィールドに次のどちらかの値を設定して示します。

どちらのタイプのメッセージの場合も、pm_tag フィールドにはポートモニターのタグが、pm_state フィールドにはポートモニターの現在の状態が設定されます。pm_state フィールドに設定できる状態は次の 4 つです。

現在の状態は、sac からの最後のメッセージによる状態変更を反映しています。

通常の応答メッセージは状態メッセージです。否定応答メッセージを返すのは、sac から受信したメッセージが理解できなかったときだけです。

pm_size はメッセージのオプションデータ部分のサイズを示します。pm_maxclass はメッセージクラスを指定するのに使用します。この 2 つのフィールドについては、メッセージクラス の説明を参照してください。Solaris 環境では、常に pm_maxclass 1 へ、sc_size0 へ設定してください。

ポートモニターから先にメッセージを送ることはありません。ポートモニターは、受信したメッセージに応答するだけです。