diff options
Diffstat (limited to 'usr/src/lib')
-rw-r--r-- | usr/src/lib/libdladm/common/libdlether.c | 4 | ||||
-rw-r--r-- | usr/src/lib/libdladm/common/linkprop.c | 57 |
2 files changed, 60 insertions, 1 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 8d43e2d6b9..5fdb082472 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> @@ -258,6 +259,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"}, @@ -531,6 +548,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, @@ -541,6 +578,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, |