JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle VM Server for SPARC 2.2 Administration Guide     Oracle VM Server for SPARC
search filter icon
search icon

Document Information


Part I Oracle VM Server for SPARC 2.2 Software

1.  Overview of the Oracle VM Server for SPARC Software

2.  Installing and Enabling Software

3.  Oracle VM Server for SPARC Security

4.  Setting Up Services and the Control Domain

5.  Setting Up Guest Domains

6.  Setting Up I/O Domains

7.  Using Virtual Disks

8.  Using Virtual Networks

9.  Migrating Domains

10.  Managing Resources

11.  Managing Domain Configurations

12.  Performing Other Administration Tasks

Part II Optional Oracle VM Server for SPARC Software

13.  Oracle VM Server for SPARC Physical-to-Virtual Conversion Tool

14.  Oracle VM Server for SPARC Configuration Assistant (Oracle Solaris 10)

15.  Using the Oracle VM Server for SPARC Management Information Base Software

16.  Logical Domains Manager Discovery

Discovering Systems Running the Logical Domains Manager

Multicast Communication

Message Format

How to Discover Logical Domains Managers Running on Your Subnet

17.  Using the XML Interface With the Logical Domains Manager



Discovering Systems Running the Logical Domains Manager

Multicast Communication

This discovery mechanism uses the same multicast network that is used by the ldmd daemon to detect collisions when automatically assigning MAC addresses. To configure the multicast socket, you must supply the following information:

#define    MAC_MULTI_PORT        64535
#define    MAC_MULTI_GROUP        ""

By default, only multicast packets can be sent on the subnet to which the machine is attached. You can change the behavior by setting the ldmd/hops SMF property for the ldmd daemon.

Message Format

The discovery messages must be clearly marked so as not to be confused with other messages. The following multicast message format ensures that discovery messages can be distinguished by the discovery listening process:

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

enum {
    SEND_MSG = 0,

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;

How to Discover Logical Domains Managers Running on Your Subnet

  1. Open a multicast socket.

    Ensure that you use the port and group information specified in Multicast Communication.

  2. Send a multicast_msg_t message over the socket.

    The message should include the following:

    • Valid value for version_no, which is 1 as defined by MAC_MULTI_VERSION

    • Valid value for magic_no, which is 92792004 as defined by MAC_MULTI_MAGIC_NO

    • msg_type of LDMD_DISC_SEND

  3. Listen on the multicast socket for responses from Logical Domains Managers.

    The responses must be a multicast_msg_t message with the following:

    • Valid value for version_no

    • Valid value for magic_no

    • msg_type set to LDMD_DISC_RESP

    • Payload consisting of a ldmd_discovery_t structure, which contains the following information:

      • ldmd_version Version of the Logical Domains Manager running on the system

      • hostname Host name of the system

      • ip_address IP address of the system

      • port_no Port number being used by the Logical Domains Manager for communications, which should be XMPP port 6482

    When listening for a response from Logical Domains Managers, ensure that any auto-allocation MAC collision-detection packets are discarded.