2N/A/*
2N/A * CDDL HEADER START
2N/A *
2N/A * The contents of this file are subject to the terms of the
2N/A * Common Development and Distribution License (the "License").
2N/A * You may not use this file except in compliance with the License.
2N/A *
2N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A * or http://www.opensolaris.org/os/licensing.
2N/A * See the License for the specific language governing permissions
2N/A * and limitations under the License.
2N/A *
2N/A * When distributing Covered Code, include this CDDL HEADER in each
2N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A * If applicable, add the following below this CDDL HEADER, with the
2N/A * fields enclosed by brackets "[]" replaced with your own identifying
2N/A * information: Portions Copyright [yyyy] [name of copyright owner]
2N/A *
2N/A * CDDL HEADER END
2N/A */
2N/A/*
2N/A * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
2N/A */
2N/A
2N/A/*
2N/A * This file includes structures, macros used to communicate with linkmgmt
2N/A * daemon.
2N/A */
2N/A
2N/A#ifndef _LIBDLMGMT_H
2N/A#define _LIBDLMGMT_H
2N/A
2N/A#include <sys/types.h>
2N/A#include <libdladm.h>
2N/A#include <libnetcfg.h>
2N/A
2N/A#ifdef __cplusplus
2N/Aextern "C" {
2N/A#endif
2N/A
2N/A/*
2N/A * datalink management related macros, structures.
2N/A */
2N/A
2N/A/*
2N/A * Door call commands.
2N/A */
2N/A#define DLMGMT_CMD_CREATE_LINKID (DLMGMT_CMD_BASE + 0)
2N/A#define DLMGMT_CMD_DESTROY_LINKID (DLMGMT_CMD_BASE + 1)
2N/A#define DLMGMT_CMD_REMAP_LINKID (DLMGMT_CMD_BASE + 2)
2N/A#define DLMGMT_CMD_CREATECONF (DLMGMT_CMD_BASE + 3)
2N/A#define DLMGMT_CMD_OPENCONF (DLMGMT_CMD_BASE + 4)
2N/A#define DLMGMT_CMD_WRITECONF (DLMGMT_CMD_BASE + 5)
2N/A#define DLMGMT_CMD_UP_LINKID (DLMGMT_CMD_BASE + 6)
2N/A#define DLMGMT_CMD_SETATTR (DLMGMT_CMD_BASE + 7)
2N/A#define DLMGMT_CMD_UNSETATTR (DLMGMT_CMD_BASE + 8)
2N/A#define DLMGMT_CMD_REMOVECONF (DLMGMT_CMD_BASE + 9)
2N/A#define DLMGMT_CMD_DESTROYCONF (DLMGMT_CMD_BASE + 10)
2N/A#define DLMGMT_CMD_GETATTR (DLMGMT_CMD_BASE + 11)
2N/A#define DLMGMT_CMD_GETCONFSNAPSHOT (DLMGMT_CMD_BASE + 12)
2N/A#define DLMGMT_CMD_ZONEBOOT (DLMGMT_CMD_BASE + 13)
2N/A#define DLMGMT_CMD_ZONEHALT (DLMGMT_CMD_BASE + 14)
2N/A#define DLMGMT_CMD_REMOVEFLOWCONF (DLMGMT_CMD_BASE + 15)
2N/A#define DLMGMT_CMD_CREATEFLOWCONF (DLMGMT_CMD_BASE + 16)
2N/A#define DLMGMT_CMD_READFLOWCONF (DLMGMT_CMD_BASE + 17)
2N/A#define DLMGMT_CMD_SETFLOWATTR (DLMGMT_CMD_BASE + 18)
2N/A#define DLMGMT_CMD_GETFLOWATTR (DLMGMT_CMD_BASE + 19)
2N/A#define DLMGMT_CMD_FLOWGETNEXT (DLMGMT_CMD_BASE + 20)
2N/A#define DLMGMT_CMD_WRITEFLOWCONF (DLMGMT_CMD_BASE + 21)
2N/A#define DLMGMT_CMD_REINIT_PHYS (DLMGMT_CMD_BASE + 22)
2N/A#define DLMGMT_CMD_INIT_PROFILE (DLMGMT_CMD_BASE + 23)
2N/A#define DLMGMT_CMD_FINI_PROFILE (DLMGMT_CMD_BASE + 24)
2N/A#define DLMGMT_CMD_ZONE_UPGRADE (DLMGMT_CMD_BASE + 25)
2N/A
2N/A#define MAXOBJATTRLEN 32
2N/A#define MAXOBJNAMELEN 128
2N/A#define MAXOBJATTRVALLEN 1024
2N/A
2N/Atypedef struct dlmgmt_door_createid_s {
2N/A int ld_cmd;
2N/A char ld_link[MAXLINKNAMELEN];
2N/A datalink_class_t ld_class;
2N/A uint32_t ld_media;
2N/A boolean_t ld_prefix;
2N/A uint32_t ld_flags;
2N/A zoneid_t ld_zoneid;
2N/A} dlmgmt_door_createid_t;
2N/A
2N/Atypedef struct dlmgmt_door_destroyid_s {
2N/A int ld_cmd;
2N/A datalink_id_t ld_linkid;
2N/A uint32_t ld_flags;
2N/A} dlmgmt_door_destroyid_t;
2N/A
2N/Atypedef struct dlmgmt_door_remapid_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A datalink_id_t ld_linkid;
2N/A char ld_link[MAXLINKNAMELEN];
2N/A} dlmgmt_door_remapid_t;
2N/A
2N/Atypedef struct dlmgmt_door_upid_s {
2N/A int ld_cmd;
2N/A datalink_id_t ld_linkid;
2N/A} dlmgmt_door_upid_t;
2N/A
2N/Atypedef struct dlmgmt_door_createconf_s {
2N/A int ld_cmd;
2N/A char ld_link[MAXLINKNAMELEN];
2N/A datalink_id_t ld_linkid;
2N/A datalink_class_t ld_class;
2N/A uint32_t ld_media;
2N/A} dlmgmt_door_createconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_flowgetnext_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A zoneid_t ld_zoneid;
2N/A} dlmgmt_door_flowgetnext_t;
2N/A
2N/Atypedef struct dlmgmt_door_createflowconf_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A datalink_id_t ld_linkid;
2N/A} dlmgmt_door_createflowconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_setflowattr_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A char ld_attr[MAXOBJATTRLEN];
2N/A size_t ld_attrsz;
2N/A dladm_datatype_t ld_type;
2N/A char ld_attrval[MAXOBJATTRVALLEN];
2N/A} dlmgmt_door_setflowattr_t;
2N/A
2N/Atypedef struct dlmgmt_door_setattr_s {
2N/A int ld_cmd;
2N/A int ld_confid;
2N/A char ld_attr[MAXOBJATTRLEN];
2N/A size_t ld_attrsz;
2N/A dladm_datatype_t ld_type;
2N/A char ld_attrval[MAXOBJATTRVALLEN];
2N/A} dlmgmt_door_setattr_t;
2N/A
2N/Atypedef struct dlmgmt_door_unsetattr_s {
2N/A int ld_cmd;
2N/A int ld_confid;
2N/A char ld_attr[MAXOBJATTRLEN];
2N/A} dlmgmt_door_unsetattr_t;
2N/A
2N/Atypedef struct dlmgmt_door_writeconf_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A int ld_confid;
2N/A} dlmgmt_door_writeconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_writeflowconf_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A char ld_root[MAXPATHLEN];
2N/A} dlmgmt_door_writeflowconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_removeconf_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A datalink_id_t ld_linkid;
2N/A} dlmgmt_door_removeconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_removeflowconf_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A char ld_root[MAXFLOWNAMELEN];
2N/A} dlmgmt_door_removeflowconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_destroyflowconf_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A} dlmgmt_door_destroyflowconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_destroyconf_s {
2N/A int ld_cmd;
2N/A int ld_confid;
2N/A} dlmgmt_door_destroyconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_readflowconf_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A zoneid_t ld_zoneid;
2N/A} dlmgmt_door_readflowconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_openconf_s {
2N/A int ld_cmd;
2N/A datalink_id_t ld_linkid;
2N/A} dlmgmt_door_openconf_t;
2N/A
2N/Atypedef struct dlmgmt_door_getconfsnapshot_s {
2N/A int ld_cmd;
2N/A datalink_id_t ld_linkid;
2N/A} dlmgmt_door_getconfsnapshot_t;
2N/A
2N/Atypedef struct dlmgmt_door_getattr_s {
2N/A int ld_cmd;
2N/A int ld_confid;
2N/A char ld_attr[MAXLINKATTRLEN];
2N/A} dlmgmt_door_getattr_t;
2N/A
2N/Atypedef struct dlmgmt_door_getflowattr_s {
2N/A int ld_cmd;
2N/A char ld_flow[MAXFLOWNAMELEN];
2N/A char ld_attr[MAXLINKATTRLEN];
2N/A zoneid_t ld_zoneid;
2N/A} dlmgmt_door_getflowattr_t;
2N/A
2N/Atypedef struct dlmgmt_door_reinit_phys_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A char ld_phys_prefix[MAXLINKNAMELEN];
2N/A} dlmgmt_door_reinit_phys_t;
2N/A
2N/Atypedef struct dlmgmt_createconf_retval_s {
2N/A uint_t lr_err;
2N/A int lr_confid;
2N/A} dlmgmt_createconf_retval_t;
2N/A
2N/Atypedef struct dlmgmt_flowgetnext_retval_s {
2N/A uint_t lr_err;
2N/A char lr_name[MAXFLOWNAMELEN];
2N/A datalink_id_t lr_linkid;
2N/A zoneid_t lr_zoneid;
2N/A} dlmgmt_flowgetnext_retval_t;
2N/A
2N/Atypedef struct dlmgmt_readflowconf_retval_s {
2N/A uint_t lr_err;
2N/A boolean_t lr_onloan;
2N/A datalink_id_t lr_linkid;
2N/A zoneid_t lr_zoneid;
2N/A} dlmgmt_readflowconf_retval_t;
2N/A
2N/Atypedef struct dlmgmt_flowgetnextzone_retval_s {
2N/A uint_t lr_err;
2N/A zoneid_t lr_zoneid;
2N/A} dlmgmt_flowgetnextzone_retval_t;
2N/A
2N/Atypedef struct dlmgmt_openconf_retval_s {
2N/A uint_t lr_err;
2N/A int lr_confid;
2N/A} dlmgmt_openconf_retval_t;
2N/A
2N/Atypedef struct dlmgmt_getconfsnapshot_retval_s {
2N/A uint_t lr_err;
2N/A size_t lr_nvlsz;
2N/A /* buffer for nvl */
2N/A} dlmgmt_getconfsnapshot_retval_t;
2N/A
2N/Atypedef struct dlmgmt_reinit_phys_retval_s {
2N/A uint_t lr_err;
2N/A} dlmgmt_reinit_phys_retval_t;
2N/A
2N/Atypedef struct dlmgmt_door_zone_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A zoneid_t ld_zoneid;
2N/A} dlmgmt_door_zoneboot_t, dlmgmt_door_zonehalt_t, dlmgmt_door_zoneupgrade_t;
2N/A
2N/Atypedef struct dlmgmt_door_prof_s {
2N/A int ld_cmd;
2N/A char ld_profile[NETCFG_PROFILE_LEN];
2N/A} dlmgmt_door_prof_t;
2N/A
2N/Atypedef struct dlmgmt_retval_s dlmgmt_remapid_retval_t,
2N/A dlmgmt_upid_retval_t,
2N/A dlmgmt_destroyid_retval_t,
2N/A dlmgmt_setattr_retval_t,
2N/A dlmgmt_unsetattr_retval_t,
2N/A dlmgmt_writeconf_retval_t,
2N/A dlmgmt_removeconf_retval_t,
2N/A dlmgmt_destroyconf_retval_t,
2N/A dlmgmt_createflowconf_retval_t,
2N/A dlmgmt_removeflowconf_retval_t,
2N/A dlmgmt_destroyflowconf_retval_t,
2N/A dlmgmt_writeflowconf_retval_t,
2N/A dlmgmt_setflowattr_retval_t,
2N/A dlmgmt_zoneboot_retval_t,
2N/A dlmgmt_zonehalt_retval_t,
2N/A dlmgmt_zoneupgrade_retval_t,
2N/A dlmgmt_prof_retval_t;
2N/A
2N/Atypedef struct dlmgmt_linkid_retval_s dlmgmt_createid_retval_t;
2N/A
2N/A#ifdef __cplusplus
2N/A}
2N/A#endif
2N/A
2N/A#endif /* _LIBDLMGMT_H */