1/* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21/* 22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26#ifndef _IPMP_H 27#define _IPMP_H 28 29/* 30 * General IPMP-related definitions and functions. 31 * 32 * These interfaces may only be used within ON or after signing a contract 33 * with ON. For documentation, refer to PSARC/2002/615. 34 */ 35 36#ifdef __cplusplus 37extern "C" { 38#endif 39 40#include <sys/sysevent/ipmp.h> 41 42/* 43 * IPMP library error codes. 44 */ 45enum { 46 IPMP_SUCCESS, /* operation succeeded */ 47 IPMP_FAILURE, /* operation failed (check errno) */ 48 IPMP_EMINRED, /* minimum failover redundancy not met */ 49 IPMP_EFBDISABLED, /* failback disabled */ 50 IPMP_EUNKADDR, /* unknown IPMP data address */ 51 IPMP_EINVAL, /* invalid argument */ 52 IPMP_ENOMEM, /* out of memory */ 53 IPMP_ENOMPATHD, /* cannot contact in.mpathd */ 54 IPMP_EUNKGROUP, /* unknown IPMP group */ 55 IPMP_EUNKIF, /* interface is not using IPMP */ 56 IPMP_EPROTO, /* unable to communicate with in.mpathd */ 57 IPMP_EHWADDRDUP, /* interface has duplicate hardware address */ 58 IPMP_NERR /* number of error codes */ 59}; 60 61typedef struct ipmp_state *ipmp_handle_t; 62 63extern int ipmp_open(ipmp_handle_t *); 64extern void ipmp_close(ipmp_handle_t); 65extern const char *ipmp_errmsg(int); 66 67#ifdef __cplusplus 68} 69#endif 70 71#endif /* _IPMP_H */ 72