Logical Domains 1.2 Administration Guide

Appendix B Logical Domains Manager Discovery

Logical Domains Managers can be discovered on a subnet by using multicast messages. The ldmd daemon is able to listen on a network for a specific multicast packet. If that multicast message is of a certain type, ldmd replies to the caller. This enables ldmd to be discovered on systems that are running Logical Domains.

This appendix provides information about discovering the Logical Domains Manager running on systems on a subnet.

Discovering Systems Running 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:

#define	MAC_MULTI_MAGIC_NO	92792004

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;


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

ProcedureDiscover 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.