ナビゲーションリンクをスキップ
印刷ビューの終了
| Oracle VM Server for SPARC 2.0 管理ガイド

検索範囲:

- このドキュメント
- ライブラリ全体

### Logical Domains Manager を実行しているシステムの検出

#### マルチキャスト通信

この検出メカニズムは、`ldmd` デーモンによって使用されるものと同じマルチキャストネットワークを使用して、MAC アドレスを自動的に割り当てるときに衝突を検出します。マルチキャストソケットを構成するには、次の情報を指定する必要があります。

    #define    MAC_MULTI_PORT        64535
    #define    MAC_MULTI_GROUP        "239.129.9.27"

デフォルトでは、マシンが接続されているサブネット上ではマルチキャストパケットのみを送信できます。この動作をは、`ldmd` デーモンに `ldmd/hops` SMF プロパティーを設定することによって変更できます。

#### メッセージ形式

検出メッセージは、他のメッセージと混同しないように明白にマークされている必要があります。次のマルチキャストメッセージ形式により、検出待機プロセスで検出メッセージを識別できます。

    #include <netdb.h> /* Used for MAXHOSTNAMELEN definition */
    #define    MAC_MULTI_MAGIC_NO    92792004
    #define    MAC_MULTI_VERSION    1

    enum {
        SEND_MSG = 0,
        RESPONSE_MSG,
        LDMD_DISC_SEND,
        LDMD_DISC_RESP,
    };

    typedef struct {
        uint32_t    version_no;
        uint32_t    magic_no;
        uint32_t    msg_type;
        uint32_t    resv;
        union {
            mac_lookup_t        Mac_lookup;
            ldmd_discovery_t    Ldmd_discovery;
        } payload;
    #define    lookup        payload.Mac_lookup
    #define    discovery    payload.Ldmd_discovery
    } multicast_msg_t;

    #define    LDMD_VERSION_LEN    32

    typedef struct {
        uint64_t mac_addr;
        char        source_ip[INET_ADDRSTRLEN];
    } mac_lookup_t;

    typedef struct {
        char        ldmd_version[LDMD_VERSION_LEN];
        char        hostname[MAXHOSTNAMELEN];
        struct in_addr    ip_address;
        int        port_no;
    } ldmd_discovery_t;

Copyright © 2007, 2010, Oracle and/or its affiliates. All rights reserved. 著作権について |