/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _SYS_SYSEVENT_IPMP_H #define _SYS_SYSEVENT_IPMP_H /* * IPMP sysevent definitions. Note that all of these definitions are * Sun-private and are subject to change at any time. */ #ifdef __cplusplus extern "C" { #endif /* * Event channel associated with these events */ #define IPMP_EVENT_CHAN "com.sun:ipmp:events" /* * Event type EC_IPMP/ESC_IPMP_GROUP_STATE event schema * * Event Class - EC_IPMP * Event Sub-Class - ESC_IPMP_GROUP_STATE * Event Vendor - com.sun * Event Publisher - in.mpathd * * Attribute Name - IPMP_EVENT_VERSION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_GROUP_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_GROUP_SIGNATURE * Attribute Type - SE_DATA_TYPE_UINT64 * Attribute Value - * * Attribute Name - IPMP_GROUP_STATE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - */ #define IPMP_EVENT_VERSION "ipmp_event_version" #define IPMP_GROUP_NAME "ipmp_group_name" #define IPMP_GROUP_SIGNATURE "ipmp_group_signature" #define IPMP_GROUP_STATE "ipmp_group_state" typedef enum { IPMP_GROUP_OK, /* all interfaces in the group are ok */ IPMP_GROUP_FAILED, /* all interfaces in the group are unusable */ IPMP_GROUP_DEGRADED /* some interfaces in the group are unusable */ } ipmp_group_state_t; #define IPMP_EVENT_CUR_VERSION 2 /* * Event type EC_IPMP/ESC_IPMP_GROUP_CHANGE event schema * * Event Class - EC_IPMP * Event Sub-Class - ESC_IPMP_GROUP_CHANGE * Event Vendor - com.sun * Event Publisher - in.mpathd * * Attribute Name - IPMP_GROUP_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_EVENT_VERSION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_GROUPLIST_SIGNATURE * Attribute Type - SE_DATA_TYPE_UINT64 * Attribute Value - * * Attribute Name - IPMP_GROUP_OPERATION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - */ #define IPMP_GROUPLIST_SIGNATURE "ipmp_grouplist_signature" #define IPMP_GROUP_OPERATION "ipmp_group_operation" typedef enum { IPMP_GROUP_ADD, /* a new IPMP group has been created */ IPMP_GROUP_REMOVE /* an existing IPMP group has been removed */ } ipmp_group_op_t; /* * Event type EC_IPMP/ESC_IPMP_GROUP_MEMBER event schema * * Event Class - EC_IPMP * Event Sub-Class - ESC_IPMP_GROUP_MEMBER_CHANGE * Event Vendor - com.sun * Event Publisher - in.mpathd * * Attribute Name - IPMP_GROUP_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_EVENT_VERSION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_GROUP_SIGNATURE * Attribute Type - SE_DATA_TYPE_UINT64 * Attribute Value - * * Attribute Name - IPMP_IF_OPERATION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_IF_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_IF_TYPE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_IF_STATE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - */ #define IPMP_IF_OPERATION "ipmp_if_operation" #define IPMP_IF_NAME "ipmp_if_name" #define IPMP_IF_TYPE "ipmp_if_type" #define IPMP_IF_STATE "ipmp_if_state" typedef enum { IPMP_IF_ADD, /* a new interface has joined the group */ IPMP_IF_REMOVE /* an existing interface has left the group */ } ipmp_if_op_t; typedef enum { IPMP_IF_STANDBY, /* the interface is a standby */ IPMP_IF_NORMAL /* the interface is not a standby */ } ipmp_if_type_t; typedef enum { IPMP_IF_OK, /* the interface is functional */ IPMP_IF_FAILED, /* the interface is in a failed state */ IPMP_IF_OFFLINE, /* the interface is offline */ IPMP_IF_UNKNOWN /* the interface may or may not be ok */ } ipmp_if_state_t; /* (not enough probes have been sent) */ /* * Event type EC_IPMP/ESC_IPMP_IF_CHANGE event schema * * Event Class - EC_IPMP * Event Sub-Class - ESC_IPMP_IF_CHANGE * Event Vendor - com.sun * Event Publisher - in.mpathd * * Attribute Name - IPMP_GROUP_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_EVENT_VERSION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_GROUP_SIGNATURE * Attribute Type - SE_DATA_TYPE_UINT64 * Attribute Value - * * Attribute Name - IPMP_IF_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_IF_STATE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_IF_TYPE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - */ #define IPMP_PROBE_ID "ipmp_probe_id" #define IPMP_PROBE_STATE "ipmp_probe_state" #define IPMP_PROBE_START_TIME "ipmp_probe_start_time" #define IPMP_PROBE_SENT_TIME "ipmp_probe_sent_time" #define IPMP_PROBE_ACKRECV_TIME "ipmp_probe_ackrecv_time" #define IPMP_PROBE_ACKPROC_TIME "ipmp_probe_ackproc_time" #define IPMP_PROBE_TARGET "ipmp_probe_target" #define IPMP_PROBE_TARGET_RTTAVG "ipmp_probe_target_rttavg" #define IPMP_PROBE_TARGET_RTTDEV "ipmp_probe_target_rttdev" typedef enum { IPMP_PROBE_SENT, /* the probe has been sent */ IPMP_PROBE_ACKED, /* the probe has been acked */ IPMP_PROBE_LOST /* the probe has been lost */ } ipmp_probe_state_t; /* * Event type EC_IPMP/ESC_IPMP_PROBE_STATE event schema * * Event Class - EC_IPMP * Event Sub-Class - ESC_IPMP_PROBE_STATE * Event Vendor - com.sun * Event Publisher - in.mpathd * * Attribute Name - IPMP_PROBE_ID * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_EVENT_VERSION * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_IF_NAME * Attribute Type - SE_DATA_TYPE_STRING * Attribute Value - * * Attribute Name - IPMP_PROBE_STATE * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_PROBE_START_TIME * Attribute Type - SE_DATA_TYPE_TIME * Attribute Value - * * Attribute Name - IPMP_PROBE_SENT_TIME * Attribute Type - SE_DATA_TYPE_TIME * Attribute Value - * * Attribute Name - IPMP_PROBE_ACKRECV_TIME * Attribute Type - SE_DATA_TYPE_TIME * Attribute Value - * * Attribute Name - IPMP_PROBE_ACKPROC_TIME * Attribute Type - SE_DATA_TYPE_TIME * Attribute Value - * * Attribute Name - IPMP_PROBE_TARGET * Attribute Type - SE_DATA_TYPE_BYTES * Attribute Value - * * Attribute Name - IPMP_PROBE_TARGET_RTTAVG * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - * * Attribute Name - IPMP_PROBE_TARGET_RTTDEV * Attribute Type - SE_DATA_TYPE_UINT32 * Attribute Value - */ #ifdef __cplusplus } #endif #endif /* _SYS_SYSEVENT_IPMP_H */