summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdladm
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdladm')
-rw-r--r--usr/src/lib/libdladm/common/libdlether.c4
-rw-r--r--usr/src/lib/libdladm/common/linkprop.c57
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,