summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrent Cook <brent.cook@calxeda.com>2013-10-01 14:27:15 -0500
committerBrent Cook <brent.cook@calxeda.com>2013-10-02 14:46:25 -0500
commit3c2df9cb35b8c34824fc638554b3db71b2208732 (patch)
tree2de763b7e1bced5c51eadce0d43915ad3e220edd
parentc2022f37beeeef5d4957914ddfb75663dd191449 (diff)
downloadipmitool-3c2df9cb35b8c34824fc638554b3db71b2208732.tar.gz
SW-2576: Added support for emitting uplink status via IPMI
Adds support for 'fabric get uplink_status', which returns a string identical to the one emitted by TPS on the serial console. $ cxoem fabric get uplink_status U0(N0) LinkFault:10G, U1(N1) SFPFault:1G, U2(N12) Unknown:0G, U3(N13) Unknown:0
-rw-r--r--include/ipmitool/ipmi_cxoem.h1
-rw-r--r--lib/ipmi_cxoem.c23
2 files changed, 23 insertions, 1 deletions
diff --git a/include/ipmitool/ipmi_cxoem.h b/include/ipmitool/ipmi_cxoem.h
index 7f16614..7e66481 100644
--- a/include/ipmitool/ipmi_cxoem.h
+++ b/include/ipmitool/ipmi_cxoem.h
@@ -121,6 +121,7 @@
#define IPMI_CMD_OEM_FABRIC_PARAMETER_STATUS_STRING 0x32
#define IPMI_CMD_OEM_FABRIC_PARAMETER_BCVEC 0x33
#define IPMI_CMD_OEM_FABRIC_PARAMETER_CHASSIS_SERIAL_NUM 0x34
+#define IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_STATUS 0x35
#define IPMI_CMD_OEM_FABRIC_SPECIFIER_NODE 0x40
diff --git a/lib/ipmi_cxoem.c b/lib/ipmi_cxoem.c
index b903f04..c265d5b 100644
--- a/lib/ipmi_cxoem.c
+++ b/lib/ipmi_cxoem.c
@@ -198,6 +198,8 @@ static void cx_fabric_usage(void)
" set|get nodenum_offset <offset>\n"
" set|get macaddrs tftp <tftp_server_addr> port <tftp_server_port> file <filename>\n"
" set|get mtu <standard|jumbo>\n"
+ " get uplink_info\n"
+ " get uplink_status\n"
" set|get uplink <uplink_id> node <node_id> interface <interface_id>\n"
" where mode is:\n"
" 0 - all interfaces go to Uplink0\n"
@@ -1392,6 +1394,7 @@ cx_fabric_cmd_t get_cmd = {
IPMI_CMD_OEM_FABRIC_PARAMETER_CUSTOMER_MACADDR,
IPMI_CMD_OEM_FABRIC_PARAMETER_LINK_USERS_FACTOR,
IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_SPEED,
+ IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_STATUS,
IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_INFO,
IPMI_CMD_OEM_FABRIC_PARAMETER_CHASSIS_SERIAL_NUM,
IPMI_CMD_OEM_FABRIC_PARAMETER_BCVEC},
@@ -1546,7 +1549,7 @@ typedef uint8_t mac_address_t[MAC_ADDRESS_SIZE];
typedef uint8_t ipv4_address_t[IPV4_ADDRESS_SIZE];
// match RSP_DATA_SIZE in oem_fabric.c
-#define MAX_VAL_STRING 64
+#define MAX_VAL_STRING 80
#define MAX_VAL_BITMAP 25
#define SERIAL_NUM_SIZE 24
typedef union {
@@ -1799,6 +1802,14 @@ cx_fabric_param_t uplink_speed_param = {
cx_fabric_scalar_printer
};
+cx_fabric_param_t uplink_status_param = {
+ "uplink_status",
+ IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_STATUS,
+ {0, 0, 0, 0, 0},
+ Cx_Fabric_Arg_Value_String, MAX_VAL_STRING,
+ cx_fabric_string_printer
+};
+
cx_fabric_param_t uplink_info_param = {
"uplink_info",
IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_INFO,
@@ -2194,6 +2205,7 @@ cx_fabric_arg_t cx_fabric_main_arg[] = {
(void *)&link_users_factor_param},
{"uplink_speed", Cx_Fabric_Arg_Parameter, (void *)&uplink_speed_param},
{"uplink_info", Cx_Fabric_Arg_Parameter, (void *)&uplink_info_param},
+ {"uplink_status", Cx_Fabric_Arg_Parameter, (void *)&uplink_status_param},
{"bcvec", Cx_Fabric_Arg_Parameter, (void *)&bcvec_param},
{"linkmap", Cx_Fabric_Arg_Parameter, (void *)&linkmap_param},
{"depth_chart", Cx_Fabric_Arg_Parameter, (void *)&depth_chart_param},
@@ -2394,6 +2406,14 @@ cx_fabric_param_t uplink_info_config_param = {
NULL
};
+cx_fabric_param_t uplink_status_config_param = {
+ "uplink_status",
+ IPMI_CMD_OEM_FABRIC_PARAMETER_UPLINK_STATUS,
+ {IPMI_CMD_OEM_FABRIC_SPECIFIER_FILENAME, 0, 0, 0, 0},
+ Cx_Fabric_Arg_Invalid, 0,
+ NULL
+};
+
cx_fabric_param_t lacp_status_config_param = {
"lacp_status",
IPMI_CMD_OEM_FABRIC_PARAMETER_LACP_STATUS,
@@ -2564,6 +2584,7 @@ cx_fabric_arg_t cx_fabric_config_arg[] = {
{"health_monitor", Cx_Fabric_Arg_Command, (void *)&health_monitor_cmd},
{"ipinfo", Cx_Fabric_Arg_Parameter, (void *)&ipinfo_config_param},
{"uplink_info", Cx_Fabric_Arg_Parameter, (void *)&uplink_info_config_param},
+ {"uplink_status", Cx_Fabric_Arg_Parameter, (void *)&uplink_status_config_param},
{"lacp_status", Cx_Fabric_Arg_Parameter, (void *)&lacp_status_config_param},
{"ntp_server", Cx_Fabric_Arg_Parameter, (void *)&ntp_server_config_param},
{"ntp_port", Cx_Fabric_Arg_Parameter, (void *)&ntp_port_config_param},