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

Document Information


1.  Overview of the Oracle VM Server for SPARC Software

2.  Installing and Enabling Software

3.  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 Configurations

12.  Performing Other Administration Tasks

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

B.  Oracle VM Server for SPARC Configuration Assistant

C.  Logical Domains Manager Discovery

Discovering Systems Running the Logical Domains Manager

Multicast Communication

Message Format

Discover Logical Domains Managers Running on Your Subnet

D.  Using the XML Interface With the Logical Domains Manager

E.  Logical Domains Manager XML Schemas



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;