14784fcbdSSowmini Varadhan /* 24784fcbdSSowmini Varadhan * CDDL HEADER START 34784fcbdSSowmini Varadhan * 44784fcbdSSowmini Varadhan * The contents of this file are subject to the terms of the 54784fcbdSSowmini Varadhan * Common Development and Distribution License (the "License"). 64784fcbdSSowmini Varadhan * You may not use this file except in compliance with the License. 74784fcbdSSowmini Varadhan * 84784fcbdSSowmini Varadhan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 94784fcbdSSowmini Varadhan * or http://www.opensolaris.org/os/licensing. 104784fcbdSSowmini Varadhan * See the License for the specific language governing permissions 114784fcbdSSowmini Varadhan * and limitations under the License. 124784fcbdSSowmini Varadhan * 134784fcbdSSowmini Varadhan * When distributing Covered Code, include this CDDL HEADER in each 144784fcbdSSowmini Varadhan * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 154784fcbdSSowmini Varadhan * If applicable, add the following below this CDDL HEADER, with the 164784fcbdSSowmini Varadhan * fields enclosed by brackets "[]" replaced with your own identifying 174784fcbdSSowmini Varadhan * information: Portions Copyright [yyyy] [name of copyright owner] 184784fcbdSSowmini Varadhan * 194784fcbdSSowmini Varadhan * CDDL HEADER END 204784fcbdSSowmini Varadhan */ 214784fcbdSSowmini Varadhan /* 224784fcbdSSowmini Varadhan * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 234784fcbdSSowmini Varadhan * Use is subject to license terms. 244784fcbdSSowmini Varadhan */ 254784fcbdSSowmini Varadhan 264784fcbdSSowmini Varadhan #ifndef _LIBDLETHER_H 274784fcbdSSowmini Varadhan #define _LIBDLETHER_H 284784fcbdSSowmini Varadhan 294784fcbdSSowmini Varadhan #include <sys/types.h> 304784fcbdSSowmini Varadhan #include <libdladm.h> 314784fcbdSSowmini Varadhan 324784fcbdSSowmini Varadhan #ifdef __cplusplus 334784fcbdSSowmini Varadhan extern "C" { 344784fcbdSSowmini Varadhan #endif 354784fcbdSSowmini Varadhan 364784fcbdSSowmini Varadhan typedef struct dladm_ether_spdx_s { 374784fcbdSSowmini Varadhan int lesd_speed; 384784fcbdSSowmini Varadhan link_duplex_t lesd_duplex; 394784fcbdSSowmini Varadhan } dladm_ether_spdx_t; 404784fcbdSSowmini Varadhan 414784fcbdSSowmini Varadhan typedef struct dladm_ether_attr_s { 424784fcbdSSowmini Varadhan boolean_t le_autoneg; 434784fcbdSSowmini Varadhan boolean_t le_pause; 444784fcbdSSowmini Varadhan boolean_t le_asmpause; 454784fcbdSSowmini Varadhan boolean_t le_fault; 464784fcbdSSowmini Varadhan uint32_t le_num_spdx; 474784fcbdSSowmini Varadhan dladm_ether_spdx_t *le_spdx; 484784fcbdSSowmini Varadhan } dladm_ether_attr_t; 494784fcbdSSowmini Varadhan 504784fcbdSSowmini Varadhan /* 514784fcbdSSowmini Varadhan * Supported PTYPE values 524784fcbdSSowmini Varadhan */ 534784fcbdSSowmini Varadhan #define CURRENT 0 544784fcbdSSowmini Varadhan #define CAPABLE 1 554784fcbdSSowmini Varadhan #define ADV 2 564784fcbdSSowmini Varadhan #define PEERADV 3 574784fcbdSSowmini Varadhan 584784fcbdSSowmini Varadhan /* Names of the lei_attr[] PTYPE slots for use in arrays */ 594784fcbdSSowmini Varadhan #define LEI_ATTR_NAMES "current", "capable", "adv", "peeradv" 604784fcbdSSowmini Varadhan 614784fcbdSSowmini Varadhan typedef struct dladm_ether_info { 624784fcbdSSowmini Varadhan datalink_id_t lei_linkid; 634784fcbdSSowmini Varadhan char lei_linkname[MAXLINKNAMELEN]; 644784fcbdSSowmini Varadhan link_state_t lei_state; 654784fcbdSSowmini Varadhan dladm_ether_attr_t lei_attr[PEERADV+1]; 664784fcbdSSowmini Varadhan } dladm_ether_info_t; 674784fcbdSSowmini Varadhan 68*4ac67f02SAnurag S. Maskey extern dladm_status_t dladm_ether_info(dladm_handle_t, datalink_id_t, 69*4ac67f02SAnurag S. Maskey dladm_ether_info_t *); 704784fcbdSSowmini Varadhan extern char *dladm_ether_autoneg2str(char *, size_t, 714784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 724784fcbdSSowmini Varadhan extern char *dladm_ether_pause2str(char *, size_t, 734784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 744784fcbdSSowmini Varadhan extern char *dladm_ether_spdx2str(char *, size_t, 754784fcbdSSowmini Varadhan dladm_ether_info_t *, int); 764784fcbdSSowmini Varadhan extern void dladm_ether_info_done(dladm_ether_info_t *); 774784fcbdSSowmini Varadhan 784784fcbdSSowmini Varadhan #ifdef __cplusplus 794784fcbdSSowmini Varadhan } 804784fcbdSSowmini Varadhan #endif 814784fcbdSSowmini Varadhan 824784fcbdSSowmini Varadhan #endif /* _LIBDLETHER_H */ 83