xref: /titanic_50/usr/src/lib/libdladm/common/libdladm.h (revision 0ba2cbe97e0678a691742f98d2532caed0a2c4aa)
17c478bd9Sstevel@tonic-gate /*
27c478bd9Sstevel@tonic-gate  * CDDL HEADER START
37c478bd9Sstevel@tonic-gate  *
47c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5ba2e4443Sseb  * Common Development and Distribution License (the "License").
6ba2e4443Sseb  * You may not use this file except in compliance with the License.
77c478bd9Sstevel@tonic-gate  *
87c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
97c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
107c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
117c478bd9Sstevel@tonic-gate  * and limitations under the License.
127c478bd9Sstevel@tonic-gate  *
137c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
147c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
157c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
167c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
177c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
187c478bd9Sstevel@tonic-gate  *
197c478bd9Sstevel@tonic-gate  * CDDL HEADER END
207c478bd9Sstevel@tonic-gate  */
217c478bd9Sstevel@tonic-gate /*
22ba2e4443Sseb  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
247c478bd9Sstevel@tonic-gate  */
257c478bd9Sstevel@tonic-gate 
267c478bd9Sstevel@tonic-gate #ifndef _LIBDLADM_H
277c478bd9Sstevel@tonic-gate #define	_LIBDLADM_H
287c478bd9Sstevel@tonic-gate 
297c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
307c478bd9Sstevel@tonic-gate 
317c478bd9Sstevel@tonic-gate #include <sys/types.h>
327c478bd9Sstevel@tonic-gate #include <sys/param.h>
337c478bd9Sstevel@tonic-gate #include <sys/dls.h>
347c478bd9Sstevel@tonic-gate 
357c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
367c478bd9Sstevel@tonic-gate extern "C" {
377c478bd9Sstevel@tonic-gate #endif
387c478bd9Sstevel@tonic-gate 
39*0ba2cbe9Sxc151355 typedef struct dladm_attr {
407c478bd9Sstevel@tonic-gate 	char		da_dev[MAXNAMELEN];
41210db224Sericheng 	uint_t		da_max_sdu;
427c478bd9Sstevel@tonic-gate 	uint16_t	da_vid;
43*0ba2cbe9Sxc151355 } dladm_attr_t;
447c478bd9Sstevel@tonic-gate 
45*0ba2cbe9Sxc151355 #define	DLADM_STRSIZE		256
46*0ba2cbe9Sxc151355 #define	DLADM_SECOBJ_VAL_MAX	256
47*0ba2cbe9Sxc151355 #define	DLADM_PROP_VAL_MAX	256
48*0ba2cbe9Sxc151355 #define	DLADM_OPT_TEMP		0x00000001
49*0ba2cbe9Sxc151355 #define	DLADM_OPT_CREATE	0x00000002
50*0ba2cbe9Sxc151355 #define	DLADM_OPT_PERSIST	0x00000004
51*0ba2cbe9Sxc151355 
52*0ba2cbe9Sxc151355 typedef enum {
53*0ba2cbe9Sxc151355 	DLADM_STATUS_OK = 0,
54*0ba2cbe9Sxc151355 	DLADM_STATUS_BADARG,
55*0ba2cbe9Sxc151355 	DLADM_STATUS_FAILED,
56*0ba2cbe9Sxc151355 	DLADM_STATUS_TOOSMALL,
57*0ba2cbe9Sxc151355 	DLADM_STATUS_NOTSUP,
58*0ba2cbe9Sxc151355 	DLADM_STATUS_NOTFOUND,
59*0ba2cbe9Sxc151355 	DLADM_STATUS_BADVAL,
60*0ba2cbe9Sxc151355 	DLADM_STATUS_NOMEM,
61*0ba2cbe9Sxc151355 	DLADM_STATUS_EXIST,
62*0ba2cbe9Sxc151355 	DLADM_STATUS_LINKINVAL,
63*0ba2cbe9Sxc151355 	DLADM_STATUS_PROPRDONLY,
64*0ba2cbe9Sxc151355 	DLADM_STATUS_BADVALCNT,
65*0ba2cbe9Sxc151355 	DLADM_STATUS_DBNOTFOUND,
66*0ba2cbe9Sxc151355 	DLADM_STATUS_DENIED,
67*0ba2cbe9Sxc151355 	DLADM_STATUS_IOERR
68*0ba2cbe9Sxc151355 } dladm_status_t;
69*0ba2cbe9Sxc151355 
70*0ba2cbe9Sxc151355 typedef enum {
71*0ba2cbe9Sxc151355 	DLADM_PROP_VAL_CURRENT = 1,
72*0ba2cbe9Sxc151355 	DLADM_PROP_VAL_DEFAULT,
73*0ba2cbe9Sxc151355 	DLADM_PROP_VAL_MODIFIABLE,
74*0ba2cbe9Sxc151355 	DLADM_PROP_VAL_PERSISTENT
75*0ba2cbe9Sxc151355 } dladm_prop_type_t;
76*0ba2cbe9Sxc151355 
77*0ba2cbe9Sxc151355 #define		DLADM_SECOBJ_CLASS_WEP	0
78*0ba2cbe9Sxc151355 typedef int	dladm_secobj_class_t;
79*0ba2cbe9Sxc151355 
80*0ba2cbe9Sxc151355 typedef void (dladm_walkcb_t)(void *, const char *);
81*0ba2cbe9Sxc151355 
82*0ba2cbe9Sxc151355 extern int	dladm_walk(dladm_walkcb_t *, void *);
83*0ba2cbe9Sxc151355 extern int	dladm_walk_vlan(dladm_walkcb_t *, void *, const char *);
847c478bd9Sstevel@tonic-gate extern int	dladm_info(const char *, dladm_attr_t *);
857c478bd9Sstevel@tonic-gate 
86*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_set_prop(const char *, const char *,
87*0ba2cbe9Sxc151355 			    char **, uint_t, uint_t);
88*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_get_prop(const char *, dladm_prop_type_t,
89*0ba2cbe9Sxc151355 			    const char *, char **, uint_t *);
90*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_walk_prop(const char *, void *,
91*0ba2cbe9Sxc151355 			    boolean_t (*)(void *, const char *));
92*0ba2cbe9Sxc151355 
93*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_set_secobj(const char *, dladm_secobj_class_t,
94*0ba2cbe9Sxc151355 			    uint8_t *, uint_t, uint_t);
95*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_get_secobj(const char *, dladm_secobj_class_t *,
96*0ba2cbe9Sxc151355 			    uint8_t *, uint_t *, uint_t);
97*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_unset_secobj(const char *, uint_t);
98*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_walk_secobj(void *,
99*0ba2cbe9Sxc151355 			    boolean_t (*)(void *, const char *), uint_t);
100*0ba2cbe9Sxc151355 
101*0ba2cbe9Sxc151355 extern const char	*dladm_status2str(dladm_status_t, char *);
102*0ba2cbe9Sxc151355 extern const char	*dladm_secobjclass2str(dladm_secobj_class_t, char *);
103*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_str2secobjclass(const char *,
104*0ba2cbe9Sxc151355 			    dladm_secobj_class_t *);
105*0ba2cbe9Sxc151355 
106*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_init_linkprop(void);
107*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_init_secobj(void);
108*0ba2cbe9Sxc151355 extern dladm_status_t	dladm_set_rootdir(const char *rootdir);
109*0ba2cbe9Sxc151355 
1107c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
1117c478bd9Sstevel@tonic-gate }
1127c478bd9Sstevel@tonic-gate #endif
1137c478bd9Sstevel@tonic-gate 
1147c478bd9Sstevel@tonic-gate #endif	/* _LIBDLADM_H */
115