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