1*4784fcbdSSowmini Varadhan /* 2*4784fcbdSSowmini Varadhan * CDDL HEADER START 3*4784fcbdSSowmini Varadhan * 4*4784fcbdSSowmini Varadhan * The contents of this file are subject to the terms of the 5*4784fcbdSSowmini Varadhan * Common Development and Distribution License (the "License"). 6*4784fcbdSSowmini Varadhan * You may not use this file except in compliance with the License. 7*4784fcbdSSowmini Varadhan * 8*4784fcbdSSowmini Varadhan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*4784fcbdSSowmini Varadhan * or http://www.opensolaris.org/os/licensing. 10*4784fcbdSSowmini Varadhan * See the License for the specific language governing permissions 11*4784fcbdSSowmini Varadhan * and limitations under the License. 12*4784fcbdSSowmini Varadhan * 13*4784fcbdSSowmini Varadhan * When distributing Covered Code, include this CDDL HEADER in each 14*4784fcbdSSowmini Varadhan * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*4784fcbdSSowmini Varadhan * If applicable, add the following below this CDDL HEADER, with the 16*4784fcbdSSowmini Varadhan * fields enclosed by brackets "[]" replaced with your own identifying 17*4784fcbdSSowmini Varadhan * information: Portions Copyright [yyyy] [name of copyright owner] 18*4784fcbdSSowmini Varadhan * 19*4784fcbdSSowmini Varadhan * CDDL HEADER END 20*4784fcbdSSowmini Varadhan */ 21*4784fcbdSSowmini Varadhan /* 22*4784fcbdSSowmini Varadhan * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 23*4784fcbdSSowmini Varadhan * Use is subject to license terms. 24*4784fcbdSSowmini Varadhan */ 25*4784fcbdSSowmini Varadhan 26*4784fcbdSSowmini Varadhan #ifndef _LIBDLETHER_H 27*4784fcbdSSowmini Varadhan #define _LIBDLETHER_H 28*4784fcbdSSowmini Varadhan 29*4784fcbdSSowmini Varadhan #include <sys/types.h> 30*4784fcbdSSowmini Varadhan #include <libdladm.h> 31*4784fcbdSSowmini Varadhan 32*4784fcbdSSowmini Varadhan #ifdef __cplusplus 33*4784fcbdSSowmini Varadhan extern "C" { 34*4784fcbdSSowmini Varadhan #endif 35*4784fcbdSSowmini Varadhan 36*4784fcbdSSowmini Varadhan typedef struct dladm_ether_spdx_s { 37*4784fcbdSSowmini Varadhan int lesd_speed; 38*4784fcbdSSowmini Varadhan link_duplex_t lesd_duplex; 39*4784fcbdSSowmini Varadhan } dladm_ether_spdx_t; 40*4784fcbdSSowmini Varadhan 41*4784fcbdSSowmini Varadhan typedef struct dladm_ether_attr_s { 42*4784fcbdSSowmini Varadhan boolean_t le_autoneg; 43*4784fcbdSSowmini Varadhan boolean_t le_pause; 44*4784fcbdSSowmini Varadhan boolean_t le_asmpause; 45*4784fcbdSSowmini Varadhan boolean_t le_fault; 46*4784fcbdSSowmini Varadhan uint32_t le_num_spdx; 47*4784fcbdSSowmini Varadhan dladm_ether_spdx_t *le_spdx; 48*4784fcbdSSowmini Varadhan } dladm_ether_attr_t; 49*4784fcbdSSowmini Varadhan 50*4784fcbdSSowmini Varadhan /* 51*4784fcbdSSowmini Varadhan * Supported PTYPE values 52*4784fcbdSSowmini Varadhan */ 53*4784fcbdSSowmini Varadhan #define CURRENT 0 54*4784fcbdSSowmini Varadhan #define CAPABLE 1 55*4784fcbdSSowmini Varadhan #define ADV 2 56*4784fcbdSSowmini Varadhan #define PEERADV 3 57*4784fcbdSSowmini Varadhan 58*4784fcbdSSowmini Varadhan /* Names of the lei_attr[] PTYPE slots for use in arrays */ 59*4784fcbdSSowmini Varadhan #define LEI_ATTR_NAMES "current", "capable", "adv", "peeradv" 60*4784fcbdSSowmini Varadhan 61*4784fcbdSSowmini Varadhan typedef struct dladm_ether_info { 62*4784fcbdSSowmini Varadhan datalink_id_t lei_linkid; 63*4784fcbdSSowmini Varadhan char lei_linkname[MAXLINKNAMELEN]; 64*4784fcbdSSowmini Varadhan link_state_t lei_state; 65*4784fcbdSSowmini Varadhan dladm_ether_attr_t lei_attr[PEERADV+1]; 66*4784fcbdSSowmini Varadhan } dladm_ether_info_t; 67*4784fcbdSSowmini Varadhan 68*4784fcbdSSowmini Varadhan extern dladm_status_t dladm_ether_info(datalink_id_t, dladm_ether_info_t *); 69*4784fcbdSSowmini Varadhan extern char *dladm_ether_autoneg2str(char *, size_t, 70*4784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 71*4784fcbdSSowmini Varadhan extern char *dladm_ether_pause2str(char *, size_t, 72*4784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 73*4784fcbdSSowmini Varadhan extern char *dladm_ether_spdx2str(char *, size_t, 74*4784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 75*4784fcbdSSowmini Varadhan extern void dladm_ether_info_done(dladm_ether_info_t *); 76*4784fcbdSSowmini Varadhan 77*4784fcbdSSowmini Varadhan #ifdef __cplusplus 78*4784fcbdSSowmini Varadhan } 79*4784fcbdSSowmini Varadhan #endif 80*4784fcbdSSowmini Varadhan 81*4784fcbdSSowmini Varadhan #endif /* _LIBDLETHER_H */ 82