Oracle® VM Server for SPARC 3.3 管理指南

退出打印视图

更新时间: 2015 年 10 月
 
 

消息格式

发现消息必须清晰标记,才能与其他消息区分开。以下多播消息格式确保发现侦听进程可以区分发现消息:

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