diff options
author | Garrett D'Amore <garrett@damore.org> | 2015-10-12 13:08:27 -0700 |
---|---|---|
committer | Garrett D'Amore <garrett@lucera.com> | 2015-11-12 06:20:47 +0000 |
commit | 3bc4925d580ab95c16f1ddd5eb387655cbd16e65 (patch) | |
tree | 108c519ac2dfd6e8c9ee81bd0f22d6c3b4c24f16 /usr/src | |
parent | 620f322510b2d6433f7f6af60fa52380c07756ad (diff) | |
download | illumos-gate-3bc4925d580ab95c16f1ddd5eb387655cbd16e65.tar.gz |
6329 Need support for new link speeds in mac_ether
6330 Delete ETHER_STAT_ISMII macro
Reviewed by: Sebastien Roy <sebastien.roy@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Albert Lee <trisk@omniti.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/lib/libdladm/common/libdlether.c | 4 | ||||
-rw-r--r-- | usr/src/lib/libdladm/common/linkprop.c | 57 | ||||
-rw-r--r-- | usr/src/uts/common/io/mac/mac.c | 9 | ||||
-rw-r--r-- | usr/src/uts/common/io/mac/plugins/mac_ether.c | 50 | ||||
-rw-r--r-- | usr/src/uts/common/io/softmac/softmac_stat.c | 22 | ||||
-rw-r--r-- | usr/src/uts/common/sys/mac.h | 9 | ||||
-rw-r--r-- | usr/src/uts/common/sys/mac_ether.h | 67 |
7 files changed, 168 insertions, 50 deletions
diff --git a/usr/src/lib/libdladm/common/libdlether.c b/usr/src/lib/libdladm/common/libdlether.c index 4855dc234d..6f9d1080f7 100644 --- a/usr/src/lib/libdladm/common/libdlether.c +++ b/usr/src/lib/libdladm/common/libdlether.c @@ -21,6 +21,8 @@ /* * Copyright 2010 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2015 Garrett D'Amore <garrett@damore.org> */ #include <stdlib.h> @@ -223,7 +225,7 @@ dladm_ether_spdx2str(char *buf, size_t buflen, dladm_ether_info_t *eattr, if (j < i) continue; - if (speed >= 1000) { + if ((speed % 1000) == 0) { speed = speed/1000; speed_unit = 'G'; } else { diff --git a/usr/src/lib/libdladm/common/linkprop.c b/usr/src/lib/libdladm/common/linkprop.c index c3eea9a7f1..171e23dc2c 100644 --- a/usr/src/lib/libdladm/common/linkprop.c +++ b/usr/src/lib/libdladm/common/linkprop.c @@ -21,6 +21,7 @@ /* * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Joyent, Inc. All rights reserved. + * Copyright 2015 Garrett D'Amore <garrett@damore.org> */ #include <stdlib.h> @@ -256,6 +257,22 @@ static link_attr_t link_attr[] = { { MAC_PROP_AUTOPUSH, sizeof (struct dlautopush), "autopush"}, + { MAC_PROP_ADV_5000FDX_CAP, sizeof (uint8_t), "adv_5000fdx_cap"}, + + { MAC_PROP_EN_5000FDX_CAP, sizeof (uint8_t), "en_5000fdx_cap"}, + + { MAC_PROP_ADV_2500FDX_CAP, sizeof (uint8_t), "adv_2500fdx_cap"}, + + { MAC_PROP_EN_2500FDX_CAP, sizeof (uint8_t), "en_2500fdx_cap"}, + + { MAC_PROP_ADV_100GFDX_CAP, sizeof (uint8_t), "adv_100gfdx_cap"}, + + { MAC_PROP_EN_100GFDX_CAP, sizeof (uint8_t), "en_100gfdx_cap"}, + + { MAC_PROP_ADV_40GFDX_CAP, sizeof (uint8_t), "adv_40gfdx_cap"}, + + { MAC_PROP_EN_40GFDX_CAP, sizeof (uint8_t), "en_40gfdx_cap"}, + { MAC_PROP_ADV_10GFDX_CAP, sizeof (uint8_t), "adv_10gfdx_cap"}, { MAC_PROP_EN_10GFDX_CAP, sizeof (uint8_t), "en_10gfdx_cap"}, @@ -522,6 +539,26 @@ static prop_desc_t prop_table[] = { get_secondary_macs, check_secondary_macs, PD_CHECK_ALLOC, DATALINK_CLASS_VNIC, DL_ETHER }, + { "adv_100gfdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + NULL, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "en_100gfdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + set_public_prop, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "adv_40gfdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + NULL, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "en_40gfdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + set_public_prop, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + { "adv_10gfdx_cap", { "", 0 }, link_01_vals, VALCNT(link_01_vals), NULL, NULL, get_binary, NULL, @@ -532,6 +569,26 @@ static prop_desc_t prop_table[] = { set_public_prop, NULL, get_binary, NULL, 0, DATALINK_CLASS_PHYS, DL_ETHER }, + { "adv_5000fdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + NULL, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "en_5000fdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + set_public_prop, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "adv_2500fdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + NULL, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + + { "en_2500fdx_cap", { "", 0 }, + link_01_vals, VALCNT(link_01_vals), + set_public_prop, NULL, get_binary, NULL, + 0, DATALINK_CLASS_PHYS, DL_ETHER }, + { "adv_1000fdx_cap", { "", 0 }, link_01_vals, VALCNT(link_01_vals), NULL, NULL, get_binary, NULL, diff --git a/usr/src/uts/common/io/mac/mac.c b/usr/src/uts/common/io/mac/mac.c index 55b0f6d9ea..1d30dc3478 100644 --- a/usr/src/uts/common/io/mac/mac.c +++ b/usr/src/uts/common/io/mac/mac.c @@ -22,6 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright 2015 Joyent, Inc. + * Copyright 2015 Garrett D'Amore <garrett@damore.org> */ /* @@ -3035,6 +3036,14 @@ mac_prop_check_size(mac_prop_id_t id, uint_t valsize, boolean_t is_range) case MAC_PROP_FLOWCTRL: minsize = sizeof (link_flowctrl_t); break; + case MAC_PROP_ADV_5000FDX_CAP: + case MAC_PROP_EN_5000FDX_CAP: + case MAC_PROP_ADV_2500FDX_CAP: + case MAC_PROP_EN_2500FDX_CAP: + case MAC_PROP_ADV_100GFDX_CAP: + case MAC_PROP_EN_100GFDX_CAP: + case MAC_PROP_ADV_40GFDX_CAP: + case MAC_PROP_EN_40GFDX_CAP: case MAC_PROP_ADV_10GFDX_CAP: case MAC_PROP_EN_10GFDX_CAP: case MAC_PROP_ADV_1000HDX_CAP: diff --git a/usr/src/uts/common/io/mac/plugins/mac_ether.c b/usr/src/uts/common/io/mac/plugins/mac_ether.c index c7e6a33880..e9c8332534 100644 --- a/usr/src/uts/common/io/mac/plugins/mac_ether.c +++ b/usr/src/uts/common/io/mac/plugins/mac_ether.c @@ -21,6 +21,8 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2015 Garrett D'Amore <garrett@damore.org> */ /* @@ -63,6 +65,10 @@ static mac_stat_info_t ether_stats[] = { { ETHER_STAT_XCVR_ADDR, "xcvr_addr", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_XCVR_ID, "xcvr_id", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_XCVR_INUSE, "xcvr_inuse", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_CAP_5000FDX, "cap_5000fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_CAP_2500FDX, "cap_2500fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_CAP_100GFDX, "cap_100gfdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_CAP_40GFDX, "cap_40gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_CAP_10GFDX, "cap_10gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_CAP_1000FDX, "cap_1000fdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_CAP_1000HDX, "cap_1000hdx", KSTAT_DATA_UINT32, 0 }, @@ -75,6 +81,10 @@ static mac_stat_info_t ether_stats[] = { { ETHER_STAT_CAP_PAUSE, "cap_pause", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_CAP_AUTONEG, "cap_autoneg", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_CAP_REMFAULT, "cap_rem_fault", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_ADV_CAP_5000FDX, "adv_cap_5000fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_ADV_CAP_2500FDX, "adv_cap_2500fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_ADV_CAP_100GFDX, "adv_cap_100gfdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_ADV_CAP_40GFDX, "adv_cap_40gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_ADV_CAP_10GFDX, "adv_cap_10gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_ADV_CAP_1000FDX, "adv_cap_1000fdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_ADV_CAP_1000HDX, "adv_cap_1000hdx", KSTAT_DATA_UINT32, 0 }, @@ -88,6 +98,10 @@ static mac_stat_info_t ether_stats[] = { { ETHER_STAT_ADV_CAP_PAUSE, "adv_cap_pause", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_ADV_CAP_AUTONEG, "adv_cap_autoneg", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_ADV_REMFAULT, "adv_rem_fault", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_LP_CAP_5000FDX, "lp_cap_5000fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_LP_CAP_2500FDX, "lp_cap_2500fdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_LP_CAP_100GFDX, "lp_cap_100gfdx", KSTAT_DATA_UINT32, 0 }, + { ETHER_STAT_LP_CAP_40GFDX, "lp_cap_40gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_LP_CAP_10GFDX, "lp_cap_10gfdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_LP_CAP_1000FDX, "lp_cap_1000fdx", KSTAT_DATA_UINT32, 0 }, { ETHER_STAT_LP_CAP_1000HDX, "lp_cap_1000hdx", KSTAT_DATA_UINT32, 0 }, @@ -123,6 +137,18 @@ static mac_ndd_mapping_t mac_ether_mapping[] = { {"adv_autoneg_cap", MAC_PROP_AUTONEG, 0, 1, sizeof (uint8_t), MAC_PROP_PERM_RW}, + {"adv_5000fdx_cap", MAC_PROP_EN_5000FDX_CAP, 0, 1, + sizeof (uint8_t), MAC_PROP_PERM_RW}, + + {"adv_2500fdx_cap", MAC_PROP_EN_2500FDX_CAP, 0, 1, + sizeof (uint8_t), MAC_PROP_PERM_RW}, + + {"adv_100gfdx_cap", MAC_PROP_EN_100GFDX_CAP, 0, 1, + sizeof (uint8_t), MAC_PROP_PERM_RW}, + + {"adv_40gfdx_cap", MAC_PROP_EN_40GFDX_CAP, 0, 1, + sizeof (uint8_t), MAC_PROP_PERM_RW}, + {"adv_10gfdx_cap", MAC_PROP_EN_10GFDX_CAP, 0, 1, sizeof (uint8_t), MAC_PROP_PERM_RW}, @@ -165,6 +191,18 @@ static mac_ndd_mapping_t mac_ether_mapping[] = { {"asym_pause_cap", ETHER_STAT_CAP_ASMPAUSE, 0, 1, sizeof (long), MAC_PROP_FLAGS_RK}, + {"5000fdx_cap", ETHER_STAT_CAP_5000FDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"2500fdx_cap", ETHER_STAT_CAP_2500FDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"100gfdx_cap", ETHER_STAT_CAP_100GFDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"40gfdx_cap", ETHER_STAT_CAP_40GFDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + {"10gfdx_cap", ETHER_STAT_CAP_10GFDX, 0, 1, sizeof (long), MAC_PROP_FLAGS_RK}, @@ -198,6 +236,18 @@ static mac_ndd_mapping_t mac_ether_mapping[] = { {"lp_asym_pause_cap", ETHER_STAT_LP_CAP_ASMPAUSE, 0, 1, sizeof (long), MAC_PROP_FLAGS_RK}, + {"lp_5000fdx_cap", ETHER_STAT_LP_CAP_5000FDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"lp_2500fdx_cap", ETHER_STAT_LP_CAP_2500FDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"lp_100gfdx_cap", ETHER_STAT_LP_CAP_100GFDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + + {"lp_40gfdx_cap", ETHER_STAT_LP_CAP_40GFDX, 0, 1, + sizeof (long), MAC_PROP_FLAGS_RK}, + {"lp_10gfdx_cap", ETHER_STAT_LP_CAP_10GFDX, 0, 1, sizeof (long), MAC_PROP_FLAGS_RK}, diff --git a/usr/src/uts/common/io/softmac/softmac_stat.c b/usr/src/uts/common/io/softmac/softmac_stat.c index a4017a5edc..cede0a2b53 100644 --- a/usr/src/uts/common/io/softmac/softmac_stat.c +++ b/usr/src/uts/common/io/softmac/softmac_stat.c @@ -21,6 +21,8 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2015 Garrett D'Amore <garret@damore.org> */ #include <sys/types.h> @@ -129,11 +131,27 @@ static i_softmac_stat_info_t i_softmac_ether_si[] = { { ETHER_STAT_JABBER_ERRORS, "jabber_errors", NULL }, { ETHER_STAT_CAP_100T4, "cap_100T4", NULL }, { ETHER_STAT_ADV_CAP_100T4, "adv_cap_100T4", NULL }, - { ETHER_STAT_LP_CAP_100T4, "lp_cap_100T4", NULL }, + { ETHER_STAT_LP_CAP_100T4, "lp_cap_100T4", NULL }, { ETHER_STAT_CAP_10GFDX, "cap_10gfdx", NULL }, { ETHER_STAT_ADV_CAP_10GFDX, "adv_cap_10gfdx", NULL }, - { ETHER_STAT_LP_CAP_1000FDX, "lp_cap_10gfdx", NULL } + { ETHER_STAT_LP_CAP_1000FDX, "lp_cap_10gfdx", NULL }, + + { ETHER_STAT_CAP_40GFDX, "cap_40gfdx", NULL }, + { ETHER_STAT_ADV_CAP_40GFDX, "adv_cap_40gfdx", NULL }, + { ETHER_STAT_LP_CAP_40GFDX, "lp_cap_40gfdx", NULL }, + + { ETHER_STAT_CAP_100GFDX, "cap_100gfdx", NULL }, + { ETHER_STAT_ADV_CAP_100GFDX, "adv_cap_100gfdx", NULL }, + { ETHER_STAT_LP_CAP_100GFDX, "lp_cap_100gfdx", NULL }, + + { ETHER_STAT_CAP_2500FDX, "cap_2500fdx", NULL }, + { ETHER_STAT_ADV_CAP_2500FDX, "adv_cap_2500fdx", NULL }, + { ETHER_STAT_LP_CAP_2500FDX, "lp_cap_2500fdx", NULL }, + + { ETHER_STAT_CAP_5000FDX, "cap_5000fdx", NULL }, + { ETHER_STAT_ADV_CAP_5000FDX, "adv_cap_5000fdx", NULL }, + { ETHER_STAT_LP_CAP_5000FDX, "lp_cap_5000fdx", NULL }, }; #define SOFTMAC_ETHER_SI_SZ \ diff --git a/usr/src/uts/common/sys/mac.h b/usr/src/uts/common/sys/mac.h index bd09077f1b..247c3bd48d 100644 --- a/usr/src/uts/common/sys/mac.h +++ b/usr/src/uts/common/sys/mac.h @@ -22,6 +22,7 @@ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2014, Joyent, Inc. All rights reserved. + * Copyright (c) 2015 Garrett D'Amore <garrett@damore.org> */ #ifndef _SYS_MAC_H @@ -214,6 +215,14 @@ typedef enum { MAC_PROP_MAX_TXHWCLNT_AVAIL, MAC_PROP_IB_LINKMODE, MAC_PROP_SECONDARY_ADDRS, + MAC_PROP_ADV_40GFDX_CAP, + MAC_PROP_EN_40GFDX_CAP, + MAC_PROP_ADV_100GFDX_CAP, + MAC_PROP_EN_100GFDX_CAP, + MAC_PROP_ADV_2500FDX_CAP, + MAC_PROP_EN_2500FDX_CAP, + MAC_PROP_ADV_5000FDX_CAP, + MAC_PROP_EN_5000FDX_CAP, MAC_PROP_PRIVATE = -1 } mac_prop_id_t; diff --git a/usr/src/uts/common/sys/mac_ether.h b/usr/src/uts/common/sys/mac_ether.h index 32e0168971..03ec47b0a4 100644 --- a/usr/src/uts/common/sys/mac_ether.h +++ b/usr/src/uts/common/sys/mac_ether.h @@ -21,6 +21,8 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2015 Garrett D'Amore <garrett@damore.org> */ #ifndef _SYS_MAC_ETHER_H @@ -105,9 +107,26 @@ enum ether_stat { ETHER_STAT_CAP_10GFDX, ETHER_STAT_ADV_CAP_10GFDX, ETHER_STAT_LP_CAP_10GFDX, + + ETHER_STAT_CAP_40GFDX, + ETHER_STAT_ADV_CAP_40GFDX, + ETHER_STAT_LP_CAP_40GFDX, + + ETHER_STAT_CAP_100GFDX, + ETHER_STAT_ADV_CAP_100GFDX, + ETHER_STAT_LP_CAP_100GFDX, + + ETHER_STAT_CAP_2500FDX, + ETHER_STAT_ADV_CAP_2500FDX, + ETHER_STAT_LP_CAP_2500FDX, + + ETHER_STAT_CAP_5000FDX, + ETHER_STAT_ADV_CAP_5000FDX, + ETHER_STAT_LP_CAP_5000FDX, }; -#define ETHER_NSTAT (ETHER_STAT_LP_CAP_10GFDX - ETHER_STAT_ALIGN_ERRORS + 1) +#define ETHER_NSTAT \ + (ETHER_STAT_LP_CAP_5000FDX - ETHER_STAT_ALIGN_ERRORS + 1) #define ETHER_STAT_ISACOUNTER(_ether_stat) \ ((_ether_stat) == ETHER_STAT_ALIGN_ERRORS || \ @@ -125,52 +144,6 @@ enum ether_stat { (_ether_stat) == ETHER_STAT_JABBER_ERRORS || \ (_ether_stat) == ETHER_STAT_MACRCV_ERRORS) -/* - * Some drivers have a need to determine if a particular stat is a MII/GMII - * physical layer 802.3 stat. - */ -#define ETHER_STAT_ISMII(_ether_stat) \ - ((_ether_stat) == ETHER_STAT_XCVR_ADDR || \ - (_ether_stat) == ETHER_STAT_XCVR_ID || \ - (_ether_stat) == ETHER_STAT_XCVR_INUSE || \ - (_ether_stat) == ETHER_STAT_CAP_1000FDX || \ - (_ether_stat) == ETHER_STAT_CAP_1000HDX || \ - (_ether_stat) == ETHER_STAT_CAP_100FDX || \ - (_ether_stat) == ETHER_STAT_CAP_100HDX || \ - (_ether_stat) == ETHER_STAT_CAP_10FDX || \ - (_ether_stat) == ETHER_STAT_CAP_10HDX || \ - (_ether_stat) == ETHER_STAT_CAP_ASMPAUSE || \ - (_ether_stat) == ETHER_STAT_CAP_PAUSE || \ - (_ether_stat) == ETHER_STAT_CAP_AUTONEG || \ - (_ether_stat) == ETHER_STAT_CAP_REMFAULT || \ - (_ether_stat) == ETHER_STAT_CAP_100T4 || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_1000FDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_1000HDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_100FDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_100HDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_10FDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_10HDX || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_ASMPAUSE || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_PAUSE || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_AUTONEG || \ - (_ether_stat) == ETHER_STAT_ADV_REMFAULT || \ - (_ether_stat) == ETHER_STAT_ADV_CAP_100T4 || \ - (_ether_stat) == ETHER_STAT_LP_CAP_1000FDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_1000HDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_100FDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_100HDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_10FDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_10HDX || \ - (_ether_stat) == ETHER_STAT_LP_CAP_ASMPAUSE || \ - (_ether_stat) == ETHER_STAT_LP_CAP_PAUSE || \ - (_ether_stat) == ETHER_STAT_LP_CAP_AUTONEG || \ - (_ether_stat) == ETHER_STAT_LP_REMFAULT || \ - (_ether_stat) == ETHER_STAT_LP_CAP_100T4 || \ - (_ether_stat) == ETHER_STAT_LINK_ASMPAUSE || \ - (_ether_stat) == ETHER_STAT_LINK_PAUSE || \ - (_ether_stat) == ETHER_STAT_LINK_AUTONEG || \ - (_ether_stat) == ETHER_STAT_LINK_DUPLEX) - #endif /* _KERNEL */ #ifdef __cplusplus |