Go to main content
Guía del desarrollador de Oracle® VM Server for SPARC 3.4

Salir de la Vista de impresión

Actualización: Agosto de 2016
 
 

Formato del mensaje

Los mensajes de descubrimiento deben marcarse claramente de manera que no se confundan con otros mensajes. El siguiente formato de los mensajes multidifusión asegura que los mensajes de descubrimiento pueden ser distinguidos por el proceso de escucha de descubrimiento:

#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;