xref: /onnv-gate/usr/src/lib/libdladm/common/libdlether.h (revision 8453:15fa4bb77d8c)
18306SSowmini.Varadhan@Sun.COM /*
28306SSowmini.Varadhan@Sun.COM  * CDDL HEADER START
38306SSowmini.Varadhan@Sun.COM  *
48306SSowmini.Varadhan@Sun.COM  * The contents of this file are subject to the terms of the
58306SSowmini.Varadhan@Sun.COM  * Common Development and Distribution License (the "License").
68306SSowmini.Varadhan@Sun.COM  * You may not use this file except in compliance with the License.
78306SSowmini.Varadhan@Sun.COM  *
88306SSowmini.Varadhan@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
98306SSowmini.Varadhan@Sun.COM  * or http://www.opensolaris.org/os/licensing.
108306SSowmini.Varadhan@Sun.COM  * See the License for the specific language governing permissions
118306SSowmini.Varadhan@Sun.COM  * and limitations under the License.
128306SSowmini.Varadhan@Sun.COM  *
138306SSowmini.Varadhan@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
148306SSowmini.Varadhan@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
158306SSowmini.Varadhan@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
168306SSowmini.Varadhan@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
178306SSowmini.Varadhan@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
188306SSowmini.Varadhan@Sun.COM  *
198306SSowmini.Varadhan@Sun.COM  * CDDL HEADER END
208306SSowmini.Varadhan@Sun.COM  */
218306SSowmini.Varadhan@Sun.COM /*
228306SSowmini.Varadhan@Sun.COM  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
238306SSowmini.Varadhan@Sun.COM  * Use is subject to license terms.
248306SSowmini.Varadhan@Sun.COM  */
258306SSowmini.Varadhan@Sun.COM 
268306SSowmini.Varadhan@Sun.COM #ifndef _LIBDLETHER_H
278306SSowmini.Varadhan@Sun.COM #define	_LIBDLETHER_H
288306SSowmini.Varadhan@Sun.COM 
298306SSowmini.Varadhan@Sun.COM #include <sys/types.h>
308306SSowmini.Varadhan@Sun.COM #include <libdladm.h>
318306SSowmini.Varadhan@Sun.COM 
328306SSowmini.Varadhan@Sun.COM #ifdef	__cplusplus
338306SSowmini.Varadhan@Sun.COM extern "C" {
348306SSowmini.Varadhan@Sun.COM #endif
358306SSowmini.Varadhan@Sun.COM 
368306SSowmini.Varadhan@Sun.COM typedef struct dladm_ether_spdx_s {
378306SSowmini.Varadhan@Sun.COM 	int			lesd_speed;
388306SSowmini.Varadhan@Sun.COM 	link_duplex_t		lesd_duplex;
398306SSowmini.Varadhan@Sun.COM } dladm_ether_spdx_t;
408306SSowmini.Varadhan@Sun.COM 
418306SSowmini.Varadhan@Sun.COM typedef struct dladm_ether_attr_s {
428306SSowmini.Varadhan@Sun.COM 	boolean_t		le_autoneg;
438306SSowmini.Varadhan@Sun.COM 	boolean_t		le_pause;
448306SSowmini.Varadhan@Sun.COM 	boolean_t		le_asmpause;
458306SSowmini.Varadhan@Sun.COM 	boolean_t		le_fault;
468306SSowmini.Varadhan@Sun.COM 	uint32_t		le_num_spdx;
478306SSowmini.Varadhan@Sun.COM 	dladm_ether_spdx_t	*le_spdx;
488306SSowmini.Varadhan@Sun.COM } dladm_ether_attr_t;
498306SSowmini.Varadhan@Sun.COM 
508306SSowmini.Varadhan@Sun.COM /*
518306SSowmini.Varadhan@Sun.COM  * Supported PTYPE values
528306SSowmini.Varadhan@Sun.COM  */
538306SSowmini.Varadhan@Sun.COM #define	CURRENT	0
548306SSowmini.Varadhan@Sun.COM #define	CAPABLE	1
558306SSowmini.Varadhan@Sun.COM #define	ADV	2
568306SSowmini.Varadhan@Sun.COM #define	PEERADV	3
578306SSowmini.Varadhan@Sun.COM 
588306SSowmini.Varadhan@Sun.COM /* Names of the lei_attr[] PTYPE slots for use in arrays */
598306SSowmini.Varadhan@Sun.COM #define	LEI_ATTR_NAMES "current", "capable", "adv", "peeradv"
608306SSowmini.Varadhan@Sun.COM 
618306SSowmini.Varadhan@Sun.COM typedef struct dladm_ether_info {
628306SSowmini.Varadhan@Sun.COM 	datalink_id_t		lei_linkid;
638306SSowmini.Varadhan@Sun.COM 	char			lei_linkname[MAXLINKNAMELEN];
648306SSowmini.Varadhan@Sun.COM 	link_state_t		lei_state;
658306SSowmini.Varadhan@Sun.COM 	dladm_ether_attr_t	lei_attr[PEERADV+1];
668306SSowmini.Varadhan@Sun.COM } dladm_ether_info_t;
678306SSowmini.Varadhan@Sun.COM 
68*8453SAnurag.Maskey@Sun.COM extern dladm_status_t	dladm_ether_info(dladm_handle_t, datalink_id_t,
69*8453SAnurag.Maskey@Sun.COM 			    dladm_ether_info_t *);
708306SSowmini.Varadhan@Sun.COM extern char		*dladm_ether_autoneg2str(char *, size_t,
718306SSowmini.Varadhan@Sun.COM 			    dladm_ether_info_t *, int);
728306SSowmini.Varadhan@Sun.COM extern char		*dladm_ether_pause2str(char *, size_t,
738306SSowmini.Varadhan@Sun.COM 			    dladm_ether_info_t *, int);
748306SSowmini.Varadhan@Sun.COM extern char		*dladm_ether_spdx2str(char *, size_t,
758306SSowmini.Varadhan@Sun.COM 			    dladm_ether_info_t *, int);
768306SSowmini.Varadhan@Sun.COM extern void		dladm_ether_info_done(dladm_ether_info_t *);
778306SSowmini.Varadhan@Sun.COM 
788306SSowmini.Varadhan@Sun.COM #ifdef	__cplusplus
798306SSowmini.Varadhan@Sun.COM }
808306SSowmini.Varadhan@Sun.COM #endif
818306SSowmini.Varadhan@Sun.COM 
828306SSowmini.Varadhan@Sun.COM #endif	/* _LIBDLETHER_H */
83