| /* |
| * 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 - <version> |
| * |
| * Attribute Name - IPMP_GROUP_NAME |
| * Attribute Type - SE_DATA_TYPE_STRING |
| * Attribute Value - <group-name> |
| * |
| * Attribute Name - IPMP_GROUP_SIGNATURE |
| * Attribute Type - SE_DATA_TYPE_UINT64 |
| * Attribute Value - <group-signature> |
| * |
| * Attribute Name - IPMP_GROUP_STATE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <group-state> |
| */ |
| |
| #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 - <group-name> |
| * |
| * Attribute Name - IPMP_EVENT_VERSION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <version> |
| * |
| * Attribute Name - IPMP_GROUPLIST_SIGNATURE |
| * Attribute Type - SE_DATA_TYPE_UINT64 |
| * Attribute Value - <grouplist-signature> |
| * |
| * Attribute Name - IPMP_GROUP_OPERATION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <group-change-op> |
| */ |
| |
| #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 - <group-name> |
| * |
| * Attribute Name - IPMP_EVENT_VERSION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <version> |
| * |
| * Attribute Name - IPMP_GROUP_SIGNATURE |
| * Attribute Type - SE_DATA_TYPE_UINT64 |
| * Attribute Value - <group-signature> |
| * |
| * Attribute Name - IPMP_IF_OPERATION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <interface-op> |
| * |
| * Attribute Name - IPMP_IF_NAME |
| * Attribute Type - SE_DATA_TYPE_STRING |
| * Attribute Value - <if-name> |
| * |
| * Attribute Name - IPMP_IF_TYPE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <if-type> |
| * |
| * Attribute Name - IPMP_IF_STATE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <if-state> |
| */ |
| |
| #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 - <group-name> |
| * |
| * Attribute Name - IPMP_EVENT_VERSION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <version> |
| * |
| * Attribute Name - IPMP_GROUP_SIGNATURE |
| * Attribute Type - SE_DATA_TYPE_UINT64 |
| * Attribute Value - <group-signature> |
| * |
| * Attribute Name - IPMP_IF_NAME |
| * Attribute Type - SE_DATA_TYPE_STRING |
| * Attribute Value - <if-name> |
| * |
| * Attribute Name - IPMP_IF_STATE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <if-state> |
| * |
| * Attribute Name - IPMP_IF_TYPE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <if-type> |
| */ |
| |
| #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 - <probe-id> |
| * |
| * Attribute Name - IPMP_EVENT_VERSION |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <version> |
| * |
| * Attribute Name - IPMP_IF_NAME |
| * Attribute Type - SE_DATA_TYPE_STRING |
| * Attribute Value - <if-name> |
| * |
| * Attribute Name - IPMP_PROBE_STATE |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <probe-state> |
| * |
| * Attribute Name - IPMP_PROBE_START_TIME |
| * Attribute Type - SE_DATA_TYPE_TIME |
| * Attribute Value - <probe-start-time> |
| * |
| * Attribute Name - IPMP_PROBE_SENT_TIME |
| * Attribute Type - SE_DATA_TYPE_TIME |
| * Attribute Value - <probe-sent-time> |
| * |
| * Attribute Name - IPMP_PROBE_ACKRECV_TIME |
| * Attribute Type - SE_DATA_TYPE_TIME |
| * Attribute Value - <probe-ackrecv-time> |
| * |
| * Attribute Name - IPMP_PROBE_ACKPROC_TIME |
| * Attribute Type - SE_DATA_TYPE_TIME |
| * Attribute Value - <probe-ackproc-time> |
| * |
| * Attribute Name - IPMP_PROBE_TARGET |
| * Attribute Type - SE_DATA_TYPE_BYTES |
| * Attribute Value - <probe-target-ip> |
| * |
| * Attribute Name - IPMP_PROBE_TARGET_RTTAVG |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <probe-target-rttavg> |
| * |
| * Attribute Name - IPMP_PROBE_TARGET_RTTDEV |
| * Attribute Type - SE_DATA_TYPE_UINT32 |
| * Attribute Value - <probe-target-rttdev> |
| */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* _SYS_SYSEVENT_IPMP_H */ |