diff --git a/include/ipmitool/ipmi_fru.h b/include/ipmitool/ipmi_fru.h index 694824c..7ea14d6 100644 --- a/include/ipmitool/ipmi_fru.h +++ b/include/ipmitool/ipmi_fru.h @@ -194,9 +194,6 @@ struct fru_multirec_powersupply { #pragma pack(0) #endif -static const char * __UNUSED__(combined_voltage_desc[]) = { -"12 V", "-12 V", "5 V", "3.3 V"}; - #ifdef HAVE_PRAGMA_PACK #pragma pack(1) #endif @@ -608,18 +605,6 @@ static inline time_t ipmi_fru2time_t(void *mfg_date) { return ts; } -static const char * __UNUSED__(chassis_type_desc[]) = { - "Unspecified", "Other", "Unknown", - "Desktop", "Low Profile Desktop", "Pizza Box", - "Mini Tower", "Tower", - "Portable", "LapTop", "Notebook", "Hand Held", - "Docking Station", "All in One", "Sub Notebook", - "Space-saving", "Lunch Box", "Main Server Chassis", - "Expansion Chassis", "SubChassis", "Bus Expansion Chassis", - "Peripheral Chassis", "RAID Chassis", "Rack Mount Chassis", - "Sealed-case PC", "Multi-system Chassis", "CompactPCI", - "AdvancedTCA", "Blade", "Blade Enclosure" -}; typedef struct ipmi_fru_bloc { struct ipmi_fru_bloc * next; diff --git a/include/ipmitool/ipmi_lanp.h b/include/ipmitool/ipmi_lanp.h index ff6f390..f14e07a 100644 --- a/include/ipmitool/ipmi_lanp.h +++ b/include/ipmitool/ipmi_lanp.h @@ -125,49 +125,6 @@ enum { IPMI_LANP_CHAN_ACCESS_MODE=201, }; -static struct lan_param { - int cmd; - int size; - char desc[24]; - uint8_t * data; - int data_len; -} __UNUSED__(ipmi_lan_params[]) = { - { IPMI_LANP_SET_IN_PROGRESS, 1, "Set in Progress", NULL, 0 }, - { IPMI_LANP_AUTH_TYPE, 1, "Auth Type Support", NULL, 0 }, - { IPMI_LANP_AUTH_TYPE_ENABLE, 5, "Auth Type Enable", NULL, 0 }, - { IPMI_LANP_IP_ADDR, 4, "IP Address", NULL, 0 }, - { IPMI_LANP_IP_ADDR_SRC, 1, "IP Address Source", NULL, 0 }, - { IPMI_LANP_MAC_ADDR, 6, "MAC Address", NULL, 0 }, /* 5 */ - { IPMI_LANP_SUBNET_MASK, 4, "Subnet Mask", NULL, 0 }, - { IPMI_LANP_IP_HEADER, 3, "IP Header", NULL, 0 }, - { IPMI_LANP_PRI_RMCP_PORT, 2, "Primary RMCP Port", NULL, 0 }, - { IPMI_LANP_SEC_RMCP_PORT, 2, "Secondary RMCP Port", NULL, 0 }, - { IPMI_LANP_BMC_ARP, 1, "BMC ARP Control", NULL, 0}, /* 10 */ - { IPMI_LANP_GRAT_ARP, 1, "Gratituous ARP Intrvl", NULL, 0 }, - { IPMI_LANP_DEF_GATEWAY_IP, 4, "Default Gateway IP", NULL, 0 }, - { IPMI_LANP_DEF_GATEWAY_MAC, 6, "Default Gateway MAC", NULL, 0 }, - { IPMI_LANP_BAK_GATEWAY_IP, 4, "Backup Gateway IP", NULL, 0 }, - { IPMI_LANP_BAK_GATEWAY_MAC, 6, "Backup Gateway MAC", NULL, 0 }, /* 15 */ - { IPMI_LANP_SNMP_STRING, 18, "SNMP Community String", NULL, 0 }, - { IPMI_LANP_NUM_DEST, 1, "Number of Destinations", NULL, 0 }, - { IPMI_LANP_DEST_TYPE, 4, "Destination Type", NULL, 0 }, - { IPMI_LANP_DEST_ADDR, 13, "Destination Addresses", NULL, 0 }, - { IPMI_LANP_VLAN_ID, 2, "802.1q VLAN ID", NULL, 0 }, /* 20 */ - { IPMI_LANP_VLAN_PRIORITY, 1, "802.1q VLAN Priority", NULL, 0 }, - { IPMI_LANP_RMCP_CIPHER_SUPPORT,1, "RMCP+ Cipher Suite Count", NULL, 0 }, - { IPMI_LANP_RMCP_CIPHERS, 16, "RMCP+ Cipher Suites", NULL, 0 }, - { IPMI_LANP_RMCP_PRIV_LEVELS, 9, "Cipher Suite Priv Max", NULL, 0 }, - { IPMI_LANP_BAD_PASS_THRESH, 6, "Bad Password Threshold", NULL, 0 }, - { IPMI_LANP_OEM_ALERT_STRING, 28, "OEM Alert String", NULL, 0 }, /* 25 */ - { IPMI_LANP_ALERT_RETRY, 1, "Alert Retry Algorithm", NULL, 0 }, - { IPMI_LANP_UTC_OFFSET, 3, "UTC Offset", NULL, 0 }, - { IPMI_LANP_DHCP_SERVER_IP, 4, "DHCP Server IP", NULL, 0 }, - { IPMI_LANP_DHCP_SERVER_MAC, 6, "DHDP Server MAC", NULL, 0}, - { IPMI_LANP_DHCP_ENABLE, 1, "DHCP Enable", NULL, 0 }, /* 30 */ - { IPMI_LANP_CHAN_ACCESS_MODE, 2, "Channel Access Mode", NULL, 0 }, - { -1, -1, "", NULL, -1 } -}; - int ipmi_lanp_main(struct ipmi_intf *, int, char **); uint8_t find_lan_channel(struct ipmi_intf *intf, uint8_t start); diff --git a/include/ipmitool/ipmi_pef.h b/include/ipmitool/ipmi_pef.h index 9e1b701..ffd4263 100644 --- a/include/ipmitool/ipmi_pef.h +++ b/include/ipmitool/ipmi_pef.h @@ -111,223 +111,6 @@ struct bit_desc_map { /* description text container */ struct desc_map desc_maps[128]; }; -static struct bit_desc_map -__UNUSED__(pef_b2s_actions) = { -BIT_DESC_MAP_ALL, -{ {"Alert", PEF_ACTION_ALERT}, - {"Power-off", PEF_ACTION_POWER_DOWN}, - {"Reset", PEF_ACTION_RESET}, - {"Power-cycle", PEF_ACTION_POWER_CYCLE}, - {"OEM-defined", PEF_ACTION_OEM}, - {"Diagnostic-interrupt", PEF_ACTION_DIAGNOSTIC_INTERRUPT}, - {NULL} -} }; - -static struct bit_desc_map -__UNUSED__(pef_b2s_severities) = { -BIT_DESC_MAP_ANY, -{ {"Non-recoverable", PEF_SEVERITY_NON_RECOVERABLE}, - {"Critical", PEF_SEVERITY_CRITICAL}, - {"Warning", PEF_SEVERITY_WARNING}, - {"OK", PEF_SEVERITY_OK}, - {"Information", PEF_SEVERITY_INFORMATION}, - {"Monitor", PEF_SEVERITY_MONITOR}, - {NULL} -} }; - -static struct bit_desc_map -__UNUSED__(pef_b2s_sensortypes) = { -BIT_DESC_MAP_LIST, -{ {"Any", 255}, - {"Temperature", 1}, - {"Voltage", 2}, - {"Current", 3}, - {"Fan", 4}, - {"Chassis Intrusion", 5}, - {"Platform security breach", 6}, - {"Processor", 7}, - {"Power supply", 8}, - {"Power Unit", 9}, - {"Cooling device", 10}, - {"Other (units-based)", 11}, - {"Memory", 12}, - {"Drive Slot", 13}, - {"POST memory resize", 14}, - {"POST error", 15}, - {"Logging disabled", 16}, - {"Watchdog 1", 17}, - {"System event", 18}, - {"Critical Interrupt", 19}, - {"Button", 20}, - {"Module/board", 21}, - {"uController/coprocessor", 22}, - {"Add-in card", 23}, - {"Chassis", 24}, - {"Chipset", 25}, - {"Other (FRU)", 26}, - {"Cable/interconnect", 27}, - {"Terminator", 28}, - {"System boot", 29}, - {"Boot error", 30}, - {"OS boot", 31}, - {"OS critical stop", 32}, - {"Slot/connector", 33}, - {"ACPI power state", 34}, - {"Watchdog 2", 35}, - {"Platform alert", 36}, - {"Entity presence", 37}, - {"Monitor ASIC/IC", 38}, - {"LAN", 39}, - {"Management subsystem health",40}, - {"Battery", 41}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_1 = { -BIT_DESC_MAP_LIST, -{ {"LNC", 1}, /* '>' : getting better */ - {"LC", 3}, - {"LNR", 5}, - {">UNC", 6}, - {"UC", 8}, - {"UNR", 10}, - {"warn", 4}, /* '>' : getting better */ - {">fail", 5}, - {"dead", 6}, - {"monitor", 7}, - {"informational", 8}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_8 = { -BIT_DESC_MAP_LIST, -{ {"device removed/absent", 0}, - {"device inserted/present", 1}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_9 = { -BIT_DESC_MAP_LIST, -{ {"device disabled", 0}, - {"device enabled", 1}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_10 = { -BIT_DESC_MAP_LIST, -{ {"transition to running", 0}, - {"transition to in test", 1}, - {"transition to power off", 2}, - {"transition to online", 3}, - {"transition to offline", 4}, - {"transition to off duty", 5}, - {"transition to degraded", 6}, - {"transition to power save", 7}, - {"install error", 8}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_11 = { -BIT_DESC_MAP_LIST, -{ {"fully redundant", 0}, - {"redundancy lost", 1}, - {"redundancy degraded", 2}, - {"non-redundant/sufficient", 4}, /* '>' : getting better */ - {"non-redundant/insufficient", 5}, - {"redundancy degraded", 7}, - {NULL} -} }; - -static struct bit_desc_map -pef_b2s_gentype_12 = { -BIT_DESC_MAP_LIST, -{ {"D0 power state", 0}, - {"D1 power state", 1}, - {"D2 power state", 2}, - {"D3 power state", 3}, - {NULL} -} }; - -static struct bit_desc_map * -__UNUSED__(pef_b2s_generic_ER[]) = { - &pef_b2s_gentype_1, - &pef_b2s_gentype_2, - &pef_b2s_gentype_3, - &pef_b2s_gentype_4, - &pef_b2s_gentype_5, - &pef_b2s_gentype_6, - &pef_b2s_gentype_7, - &pef_b2s_gentype_8, - &pef_b2s_gentype_9, - &pef_b2s_gentype_10, - &pef_b2s_gentype_11, - &pef_b2s_gentype_12, -}; -#define PEF_B2S_GENERIC_ER_ENTRIES ARRAY_SIZE(pef_b2s_generic_ER) #ifdef HAVE_PRAGMA_PACK #pragma pack(1) @@ -355,46 +138,6 @@ struct pef_policy_entry { #pragma pack(0) #endif -static struct bit_desc_map -__UNUSED__(pef_b2s_policies) = { -BIT_DESC_MAP_LIST, -{ {"Match-always", PEF_POLICY_FLAGS_MATCH_ALWAYS}, - {"Try-next-entry", PEF_POLICY_FLAGS_PREV_OK_SKIP}, - {"Try-next-set", PEF_POLICY_FLAGS_PREV_OK_NEXT_POLICY_SET}, - {"Try-next-channel", PEF_POLICY_FLAGS_PREV_OK_NEXT_CHANNEL_IN_SET}, - {"Try-next-destination", PEF_POLICY_FLAGS_PREV_OK_NEXT_DESTINATION_IN_SET}, - {NULL} -} }; - -static struct bit_desc_map -__UNUSED__(pef_b2s_ch_medium) = { -#define PEF_CH_MEDIUM_TYPE_IPMB 1 -#define PEF_CH_MEDIUM_TYPE_ICMB_10 2 -#define PEF_CH_MEDIUM_TYPE_ICMB_09 3 -#define PEF_CH_MEDIUM_TYPE_LAN 4 -#define PEF_CH_MEDIUM_TYPE_SERIAL 5 -#define PEF_CH_MEDIUM_TYPE_XLAN 6 -#define PEF_CH_MEDIUM_TYPE_PCI_SMBUS 7 -#define PEF_CH_MEDIUM_TYPE_SMBUS_V1X 8 -#define PEF_CH_MEDIUM_TYPE_SMBUS_V2X 9 -#define PEF_CH_MEDIUM_TYPE_USB_V1X 10 -#define PEF_CH_MEDIUM_TYPE_USB_V2X 11 -#define PEF_CH_MEDIUM_TYPE_SYSTEM 12 -BIT_DESC_MAP_LIST, -{ {"IPMB (I2C)", PEF_CH_MEDIUM_TYPE_IPMB}, - {"ICMB v1.0", PEF_CH_MEDIUM_TYPE_ICMB_10}, - {"ICMB v0.9", PEF_CH_MEDIUM_TYPE_ICMB_09}, - {"802.3 LAN", PEF_CH_MEDIUM_TYPE_LAN}, - {"Serial/Modem (RS-232)", PEF_CH_MEDIUM_TYPE_SERIAL}, - {"Other LAN", PEF_CH_MEDIUM_TYPE_XLAN}, - {"PCI SMBus", PEF_CH_MEDIUM_TYPE_PCI_SMBUS}, - {"SMBus v1.0/1.1", PEF_CH_MEDIUM_TYPE_SMBUS_V1X}, - {"SMBus v2.0", PEF_CH_MEDIUM_TYPE_SMBUS_V2X}, - {"USB 1.x", PEF_CH_MEDIUM_TYPE_USB_V1X}, - {"USB 2.x", PEF_CH_MEDIUM_TYPE_USB_V2X}, - {"System I/F (KCS,SMIC,BT)", PEF_CH_MEDIUM_TYPE_SYSTEM}, - {NULL} -} }; #ifdef HAVE_PRAGMA_PACK #pragma pack(1) @@ -449,15 +192,6 @@ struct pef_cfgparm_control { #pragma pack(0) #endif -static struct bit_desc_map -__UNUSED__(pef_b2s_control) = { -BIT_DESC_MAP_ALL, -{ {"PEF", PEF_CONTROL_ENABLE}, - {"PEF event messages", PEF_CONTROL_ENABLE_EVENT_MESSAGES}, - {"PEF startup delay", PEF_CONTROL_ENABLE_STARTUP_DELAY}, - {"Alert startup delay", PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY}, - {NULL} -} }; #ifdef HAVE_PRAGMA_PACK #pragma pack(1) @@ -655,15 +389,6 @@ struct pef_lan_cfgparm_dest_type { #pragma pack(0) #endif -static struct bit_desc_map -__UNUSED__(pef_b2s_lan_desttype) = { -BIT_DESC_MAP_LIST, -{ {"Acknowledged", PEF_LAN_DEST_TYPE_ACK}, - {"PET", PEF_LAN_DEST_TYPE_PET}, - {"OEM 1", PEF_LAN_DEST_TYPE_OEM_1}, - {"OEM 2", PEF_LAN_DEST_TYPE_OEM_2}, - {NULL} -} }; #ifdef HAVE_PRAGMA_PACK #pragma pack(1) @@ -754,18 +479,6 @@ struct pef_serial_cfgparm_dest_info { #pragma pack(0) #endif -static struct bit_desc_map -__UNUSED__(pef_b2s_serial_desttype) = { -BIT_DESC_MAP_LIST, -{ {"Acknowledged", PEF_SERIAL_DEST_TYPE_ACK}, - {"TAP page", PEF_SERIAL_DEST_TYPE_TAP}, - {"PPP PET", PEF_SERIAL_DEST_TYPE_PPP}, - {"Basic callback", PEF_SERIAL_DEST_TYPE_BASIC_CALLBACK}, - {"PPP callback", PEF_SERIAL_DEST_TYPE_PPP_CALLBACK}, - {"OEM 1", PEF_SERIAL_DEST_TYPE_OEM_1}, - {"OEM 2", PEF_SERIAL_DEST_TYPE_OEM_2}, - {NULL} -} }; #ifdef HAVE_PRAGMA_PACK #pragma pack(1) @@ -834,14 +547,6 @@ struct pef_serial_cfgparm_tap_svc_settings { #pragma pack(0) #endif -static struct bit_desc_map -__UNUSED__(pef_b2s_tap_svc_confirm) = { -BIT_DESC_MAP_LIST, -{ {"ACK", PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX}, - {"211+ACK", PEF_SERIAL_TAP_CONFIRMATION_211_ACK_AFTER_ETX}, - {"{211|213}+ACK", PEF_SERIAL_TAP_CONFIRMATION_21X_ACK_AFTER_ETX}, - {NULL} -} }; #if 0 /* FYI : config parm groupings */ struct pef_config_parms { /* PEF */ diff --git a/include/ipmitool/ipmi_picmg.h b/include/ipmitool/ipmi_picmg.h index 3f08b42..6e901a4 100644 --- a/include/ipmitool/ipmi_picmg.h +++ b/include/ipmitool/ipmi_picmg.h @@ -105,83 +105,6 @@ static const char *__UNUSED__(led_color_str[]) = { }; -static const char* __UNUSED__(amc_link_type_str[]) = { - "RESERVED", - "RESERVED1", - "PCI EXPRESS", - "ADVANCED SWITCHING1", - "ADVANCED SWITCHING2", - "ETHERNET", - "RAPIDIO", - "STORAGE", -}; - -static const char* __UNUSED__(amc_link_type_ext_str[][16]) = { - /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED */ - { - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED1 */ - { - "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_PCI_EXPRESS */ - { - "Gen 1 - NSSC", - "Gen 1 - SSC", - "Gen 2 - NSSC", - "Gen 2 - SSC", - "", "", "", "", - "", "", "", "", - "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING1 */ - { - "Gen 1 - NSSC", - "Gen 1 - SSC", - "Gen 2 - NSSC", - "Gen 2 - SSC", - "", "", "", "", - "", "", "", "", - "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING2 */ - { - "Gen 1 - NSSC", - "Gen 1 - SSC", - "Gen 2 - NSSC", - "Gen 2 - SSC", - "", "", "", "", - "", "", "", "", - "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_ETHERNET */ - { - "1000BASE-BX (SerDES Gigabit)", - "10GBASE-BX410 Gigabit XAUI", - "", "", - "", "", "", "", - "", "", "", "", - "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_RAPIDIO */ - { - "1.25 Gbaud transmission rate", - "2.5 Gbaud transmission rate", - "3.125 Gbaud transmission rate", - "", "", "", "", "", - "", "", "", "", "", "", "", "" - }, - /* FRU_PICMGEXT_AMC_LINK_TYPE_STORAGE */ - { - "Fibre Channel", - "Serial ATA", - "Serial Attached SCSI", - "", "", "", "", "", - "", "", "", "", "", "", "", "" - } -}; - struct sAmcPortState { #ifndef WORDS_BIGENDIAN unsigned short lane0 : 1; diff --git a/include/ipmitool/ipmi_sdr.h b/include/ipmitool/ipmi_sdr.h index 9001e59..5e6afd3 100644 --- a/include/ipmitool/ipmi_sdr.h +++ b/include/ipmitool/ipmi_sdr.h @@ -773,50 +773,7 @@ struct sdr_record_list { #pragma pack(0) #endif - -/* unit description codes (IPMI v1.5 section 37.16) */ -#define UNIT_MAX 0x90 -static const char *__UNUSED__(unit_desc[]) = { -"unspecified", - "degrees C", "degrees F", "degrees K", - "Volts", "Amps", "Watts", "Joules", - "Coulombs", "VA", "Nits", - "lumen", "lux", "Candela", - "kPa", "PSI", "Newton", - "CFM", "RPM", "Hz", - "microsecond", "millisecond", "second", "minute", "hour", - "day", "week", "mil", "inches", "feet", "cu in", "cu feet", - "mm", "cm", "m", "cu cm", "cu m", "liters", "fluid ounce", - "radians", "steradians", "revolutions", "cycles", - "gravities", "ounce", "pound", "ft-lb", "oz-in", "gauss", - "gilberts", "henry", "millihenry", "farad", "microfarad", - "ohms", "siemens", "mole", "becquerel", "PPM", "reserved", - "Decibels", "DbA", "DbC", "gray", "sievert", - "color temp deg K", "bit", "kilobit", "megabit", "gigabit", - "byte", "kilobyte", "megabyte", "gigabyte", "word", "dword", - "qword", "line", "hit", "miss", "retry", "reset", - "overflow", "underrun", "collision", "packets", "messages", - "characters", "error", "correctable error", "uncorrectable error",}; - -/* sensor type codes (IPMI v1.5 table 36.3) - / Updated to v2.0 Table 42-3, Sensor Type Codes */ #define SENSOR_TYPE_MAX 0x2C -static const char *__UNUSED__(sensor_type_desc[]) = { -"reserved", - "Temperature", "Voltage", "Current", "Fan", - "Physical Security", "Platform Security", "Processor", - "Power Supply", "Power Unit", "Cooling Device", "Other", - "Memory", "Drive Slot / Bay", "POST Memory Resize", - "System Firmwares", "Event Logging Disabled", "Watchdog1", - "System Event", "Critical Interrupt", "Button", - "Module / Board", "Microcontroller", "Add-in Card", - "Chassis", "Chip Set", "Other FRU", "Cable / Interconnect", - "Terminator", "System Boot Initiated", "Boot Error", - "OS Boot", "OS Critical Stop", "Slot / Connector", - "System ACPI Power State", "Watchdog2", "Platform Alert", - "Entity Presence", "Monitor ASIC", "LAN", - "Management Subsys Health", "Battery", "Session Audit", - "Version Change", "FRU State" }; struct sensor_reading { char s_id[17]; /* name of the sensor */ diff --git a/lib/ipmi_fru.c b/lib/ipmi_fru.c index 1ffbb1e..e839ad2 100644 --- a/lib/ipmi_fru.c +++ b/lib/ipmi_fru.c @@ -59,6 +59,46 @@ static const char *section_id[4] = { "Product Section" }; +static const char * combined_voltage_desc[] = { + "12 V", + "-12 V", + "5 V", + "3.3 V" +}; + +static const char * chassis_type_desc[] = { + "Unspecified", + "Other", + "Unknown", + "Desktop", + "Low Profile Desktop", + "Pizza Box", + "Mini Tower", + "Tower", + "Portable", + "LapTop", + "Notebook", + "Hand Held", + "Docking Station", + "All in One", + "Sub Notebook", + "Space-saving", + "Lunch Box", + "Main Server Chassis", + "Expansion Chassis", + "SubChassis", + "Bus Expansion Chassis", + "Peripheral Chassis", + "RAID Chassis", + "Rack Mount Chassis", + "Sealed-case PC", + "Multi-system Chassis", + "CompactPCI", + "AdvancedTCA", + "Blade", + "Blade Enclosure" +}; + /* From lib/dimm_spd.c: */ int ipmi_spd_print_fru(struct ipmi_intf * intf, uint8_t id); diff --git a/lib/ipmi_lanp.c b/lib/ipmi_lanp.c index af5e612..a293186 100644 --- a/lib/ipmi_lanp.c +++ b/lib/ipmi_lanp.c @@ -57,6 +57,49 @@ extern int verbose; +static struct lan_param { + int cmd; + int size; + char desc[24]; + uint8_t * data; + int data_len; +} ipmi_lan_params[] = { + { IPMI_LANP_SET_IN_PROGRESS, 1, "Set in Progress", NULL, 0 }, + { IPMI_LANP_AUTH_TYPE, 1, "Auth Type Support", NULL, 0 }, + { IPMI_LANP_AUTH_TYPE_ENABLE, 5, "Auth Type Enable", NULL, 0 }, + { IPMI_LANP_IP_ADDR, 4, "IP Address", NULL, 0 }, + { IPMI_LANP_IP_ADDR_SRC, 1, "IP Address Source", NULL, 0 }, + { IPMI_LANP_MAC_ADDR, 6, "MAC Address", NULL, 0 }, /* 5 */ + { IPMI_LANP_SUBNET_MASK, 4, "Subnet Mask", NULL, 0 }, + { IPMI_LANP_IP_HEADER, 3, "IP Header", NULL, 0 }, + { IPMI_LANP_PRI_RMCP_PORT, 2, "Primary RMCP Port", NULL, 0 }, + { IPMI_LANP_SEC_RMCP_PORT, 2, "Secondary RMCP Port", NULL, 0 }, + { IPMI_LANP_BMC_ARP, 1, "BMC ARP Control", NULL, 0}, /* 10 */ + { IPMI_LANP_GRAT_ARP, 1, "Gratituous ARP Intrvl", NULL, 0 }, + { IPMI_LANP_DEF_GATEWAY_IP, 4, "Default Gateway IP", NULL, 0 }, + { IPMI_LANP_DEF_GATEWAY_MAC, 6, "Default Gateway MAC", NULL, 0 }, + { IPMI_LANP_BAK_GATEWAY_IP, 4, "Backup Gateway IP", NULL, 0 }, + { IPMI_LANP_BAK_GATEWAY_MAC, 6, "Backup Gateway MAC", NULL, 0 }, /* 15 */ + { IPMI_LANP_SNMP_STRING, 18, "SNMP Community String", NULL, 0 }, + { IPMI_LANP_NUM_DEST, 1, "Number of Destinations", NULL, 0 }, + { IPMI_LANP_DEST_TYPE, 4, "Destination Type", NULL, 0 }, + { IPMI_LANP_DEST_ADDR, 13, "Destination Addresses", NULL, 0 }, + { IPMI_LANP_VLAN_ID, 2, "802.1q VLAN ID", NULL, 0 }, /* 20 */ + { IPMI_LANP_VLAN_PRIORITY, 1, "802.1q VLAN Priority", NULL, 0 }, + { IPMI_LANP_RMCP_CIPHER_SUPPORT,1, "RMCP+ Cipher Suite Count", NULL, 0 }, + { IPMI_LANP_RMCP_CIPHERS, 16, "RMCP+ Cipher Suites", NULL, 0 }, + { IPMI_LANP_RMCP_PRIV_LEVELS, 9, "Cipher Suite Priv Max", NULL, 0 }, + { IPMI_LANP_BAD_PASS_THRESH, 6, "Bad Password Threshold", NULL, 0 }, + { IPMI_LANP_OEM_ALERT_STRING, 28, "OEM Alert String", NULL, 0 }, /* 25 */ + { IPMI_LANP_ALERT_RETRY, 1, "Alert Retry Algorithm", NULL, 0 }, + { IPMI_LANP_UTC_OFFSET, 3, "UTC Offset", NULL, 0 }, + { IPMI_LANP_DHCP_SERVER_IP, 4, "DHCP Server IP", NULL, 0 }, + { IPMI_LANP_DHCP_SERVER_MAC, 6, "DHDP Server MAC", NULL, 0}, + { IPMI_LANP_DHCP_ENABLE, 1, "DHCP Enable", NULL, 0 }, /* 30 */ + { IPMI_LANP_CHAN_ACCESS_MODE, 2, "Channel Access Mode", NULL, 0 }, + { -1, -1, "", NULL, -1 } +}; + static void print_lan_alert_print_usage(void); static void print_lan_alert_set_usage(void); static void print_lan_set_usage(void); diff --git a/lib/ipmi_pef.c b/lib/ipmi_pef.c index 090c24d..995d7fe 100644 --- a/lib/ipmi_pef.c +++ b/lib/ipmi_pef.c @@ -79,6 +79,307 @@ static const char * pef_flag_fmts[][3] = { }; static const char * listitem[] = {" | %s", ",%s", "%s"}; +static struct bit_desc_map +pef_b2s_actions = { +BIT_DESC_MAP_ALL, +{ {"Alert", PEF_ACTION_ALERT}, + {"Power-off", PEF_ACTION_POWER_DOWN}, + {"Reset", PEF_ACTION_RESET}, + {"Power-cycle", PEF_ACTION_POWER_CYCLE}, + {"OEM-defined", PEF_ACTION_OEM}, + {"Diagnostic-interrupt", PEF_ACTION_DIAGNOSTIC_INTERRUPT}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_severities = { +BIT_DESC_MAP_ANY, +{ {"Non-recoverable", PEF_SEVERITY_NON_RECOVERABLE}, + {"Critical", PEF_SEVERITY_CRITICAL}, + {"Warning", PEF_SEVERITY_WARNING}, + {"OK", PEF_SEVERITY_OK}, + {"Information", PEF_SEVERITY_INFORMATION}, + {"Monitor", PEF_SEVERITY_MONITOR}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_sensortypes = { +BIT_DESC_MAP_LIST, +{ {"Any", 255}, + {"Temperature", 1}, + {"Voltage", 2}, + {"Current", 3}, + {"Fan", 4}, + {"Chassis Intrusion", 5}, + {"Platform security breach", 6}, + {"Processor", 7}, + {"Power supply", 8}, + {"Power Unit", 9}, + {"Cooling device", 10}, + {"Other (units-based)", 11}, + {"Memory", 12}, + {"Drive Slot", 13}, + {"POST memory resize", 14}, + {"POST error", 15}, + {"Logging disabled", 16}, + {"Watchdog 1", 17}, + {"System event", 18}, + {"Critical Interrupt", 19}, + {"Button", 20}, + {"Module/board", 21}, + {"uController/coprocessor", 22}, + {"Add-in card", 23}, + {"Chassis", 24}, + {"Chipset", 25}, + {"Other (FRU)", 26}, + {"Cable/interconnect", 27}, + {"Terminator", 28}, + {"System boot", 29}, + {"Boot error", 30}, + {"OS boot", 31}, + {"OS critical stop", 32}, + {"Slot/connector", 33}, + {"ACPI power state", 34}, + {"Watchdog 2", 35}, + {"Platform alert", 36}, + {"Entity presence", 37}, + {"Monitor ASIC/IC", 38}, + {"LAN", 39}, + {"Management subsystem health", 40}, + {"Battery", 41}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_1 = { +BIT_DESC_MAP_LIST, +{ {"LNC", 1}, /* '>' : getting better */ + {"LC", 3}, + {"LNR", 5}, + {">UNC", 6}, + {"UC", 8}, + {"UNR", 10}, + {"warn", 4}, /* '>' : getting better */ + {">fail", 5}, + {"dead", 6}, + {"monitor", 7}, + {"informational", 8}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_8 = { +BIT_DESC_MAP_LIST, +{ {"device removed/absent", 0}, + {"device inserted/present", 1}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_9 = { +BIT_DESC_MAP_LIST, +{ {"device disabled", 0}, + {"device enabled", 1}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_10 = { +BIT_DESC_MAP_LIST, +{ {"transition to running", 0}, + {"transition to in test", 1}, + {"transition to power off", 2}, + {"transition to online", 3}, + {"transition to offline", 4}, + {"transition to off duty", 5}, + {"transition to degraded", 6}, + {"transition to power save", 7}, + {"install error", 8}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_11 = { +BIT_DESC_MAP_LIST, +{ {"fully redundant", 0}, + {"redundancy lost", 1}, + {"redundancy degraded", 2}, + {"non-redundant/sufficient", 4}, /* '>' : getting better */ + {"non-redundant/insufficient", 5}, + {"redundancy degraded", 7}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_gentype_12 = { +BIT_DESC_MAP_LIST, +{ {"D0 power state", 0}, + {"D1 power state", 1}, + {"D2 power state", 2}, + {"D3 power state", 3}, + {NULL} +} }; + +static struct bit_desc_map * +pef_b2s_generic_ER[] = { + &pef_b2s_gentype_1, + &pef_b2s_gentype_2, + &pef_b2s_gentype_3, + &pef_b2s_gentype_4, + &pef_b2s_gentype_5, + &pef_b2s_gentype_6, + &pef_b2s_gentype_7, + &pef_b2s_gentype_8, + &pef_b2s_gentype_9, + &pef_b2s_gentype_10, + &pef_b2s_gentype_11, + &pef_b2s_gentype_12, +}; +#define PEF_B2S_GENERIC_ER_ENTRIES ARRAY_SIZE(pef_b2s_generic_ER) + +static struct bit_desc_map +pef_b2s_policies = { +BIT_DESC_MAP_LIST, +{ {"Match-always", PEF_POLICY_FLAGS_MATCH_ALWAYS}, + {"Try-next-entry", PEF_POLICY_FLAGS_PREV_OK_SKIP}, + {"Try-next-set", PEF_POLICY_FLAGS_PREV_OK_NEXT_POLICY_SET}, + {"Try-next-channel", PEF_POLICY_FLAGS_PREV_OK_NEXT_CHANNEL_IN_SET}, + {"Try-next-destination", PEF_POLICY_FLAGS_PREV_OK_NEXT_DESTINATION_IN_SET}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_ch_medium = { +#define PEF_CH_MEDIUM_TYPE_IPMB 1 +#define PEF_CH_MEDIUM_TYPE_ICMB_10 2 +#define PEF_CH_MEDIUM_TYPE_ICMB_09 3 +#define PEF_CH_MEDIUM_TYPE_LAN 4 +#define PEF_CH_MEDIUM_TYPE_SERIAL 5 +#define PEF_CH_MEDIUM_TYPE_XLAN 6 +#define PEF_CH_MEDIUM_TYPE_PCI_SMBUS 7 +#define PEF_CH_MEDIUM_TYPE_SMBUS_V1X 8 +#define PEF_CH_MEDIUM_TYPE_SMBUS_V2X 9 +#define PEF_CH_MEDIUM_TYPE_USB_V1X 10 +#define PEF_CH_MEDIUM_TYPE_USB_V2X 11 +#define PEF_CH_MEDIUM_TYPE_SYSTEM 12 +BIT_DESC_MAP_LIST, +{ {"IPMB (I2C)", PEF_CH_MEDIUM_TYPE_IPMB}, + {"ICMB v1.0", PEF_CH_MEDIUM_TYPE_ICMB_10}, + {"ICMB v0.9", PEF_CH_MEDIUM_TYPE_ICMB_09}, + {"802.3 LAN", PEF_CH_MEDIUM_TYPE_LAN}, + {"Serial/Modem (RS-232)", PEF_CH_MEDIUM_TYPE_SERIAL}, + {"Other LAN", PEF_CH_MEDIUM_TYPE_XLAN}, + {"PCI SMBus", PEF_CH_MEDIUM_TYPE_PCI_SMBUS}, + {"SMBus v1.0/1.1", PEF_CH_MEDIUM_TYPE_SMBUS_V1X}, + {"SMBus v2.0", PEF_CH_MEDIUM_TYPE_SMBUS_V2X}, + {"USB 1.x", PEF_CH_MEDIUM_TYPE_USB_V1X}, + {"USB 2.x", PEF_CH_MEDIUM_TYPE_USB_V2X}, + {"System I/F (KCS,SMIC,BT)", PEF_CH_MEDIUM_TYPE_SYSTEM}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_control = { +BIT_DESC_MAP_ALL, +{ {"PEF", PEF_CONTROL_ENABLE}, + {"PEF event messages", PEF_CONTROL_ENABLE_EVENT_MESSAGES}, + {"PEF startup delay", PEF_CONTROL_ENABLE_STARTUP_DELAY}, + {"Alert startup delay", PEF_CONTROL_ENABLE_ALERT_STARTUP_DELAY}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_lan_desttype = { +BIT_DESC_MAP_LIST, +{ {"Acknowledged", PEF_LAN_DEST_TYPE_ACK}, + {"PET", PEF_LAN_DEST_TYPE_PET}, + {"OEM 1", PEF_LAN_DEST_TYPE_OEM_1}, + {"OEM 2", PEF_LAN_DEST_TYPE_OEM_2}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_serial_desttype = { +BIT_DESC_MAP_LIST, +{ {"Acknowledged", PEF_SERIAL_DEST_TYPE_ACK}, + {"TAP page", PEF_SERIAL_DEST_TYPE_TAP}, + {"PPP PET", PEF_SERIAL_DEST_TYPE_PPP}, + {"Basic callback", PEF_SERIAL_DEST_TYPE_BASIC_CALLBACK}, + {"PPP callback", PEF_SERIAL_DEST_TYPE_PPP_CALLBACK}, + {"OEM 1", PEF_SERIAL_DEST_TYPE_OEM_1}, + {"OEM 2", PEF_SERIAL_DEST_TYPE_OEM_2}, + {NULL} +} }; + +static struct bit_desc_map +pef_b2s_tap_svc_confirm = { +BIT_DESC_MAP_LIST, +{ {"ACK", PEF_SERIAL_TAP_CONFIRMATION_ACK_AFTER_ETX}, + {"211+ACK", PEF_SERIAL_TAP_CONFIRMATION_211_ACK_AFTER_ETX}, + {"{211|213}+ACK", PEF_SERIAL_TAP_CONFIRMATION_21X_ACK_AFTER_ETX}, + {NULL} +} }; + static int ipmi_pef2_list_filters(struct ipmi_intf *); const char * diff --git a/lib/ipmi_picmg.c b/lib/ipmi_picmg.c index d443d42..4a88f43 100644 --- a/lib/ipmi_picmg.c +++ b/lib/ipmi_picmg.c @@ -62,6 +62,83 @@ typedef enum picmg_card_type { PICMG_CARD_TYPE_RESERVED } t_picmg_card_type ; +static const char* amc_link_type_str[] = { + "RESERVED", + "RESERVED1", + "PCI EXPRESS", + "ADVANCED SWITCHING1", + "ADVANCED SWITCHING2", + "ETHERNET", + "RAPIDIO", + "STORAGE", +}; + +static const char* amc_link_type_ext_str[][16] = { + /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED */ + { + "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_RESERVED1 */ + { + "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_PCI_EXPRESS */ + { + "Gen 1 - NSSC", + "Gen 1 - SSC", + "Gen 2 - NSSC", + "Gen 2 - SSC", + "", "", "", "", + "", "", "", "", + "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING1 */ + { + "Gen 1 - NSSC", + "Gen 1 - SSC", + "Gen 2 - NSSC", + "Gen 2 - SSC", + "", "", "", "", + "", "", "", "", + "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_ADVANCED_SWITCHING2 */ + { + "Gen 1 - NSSC", + "Gen 1 - SSC", + "Gen 2 - NSSC", + "Gen 2 - SSC", + "", "", "", "", + "", "", "", "", + "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_ETHERNET */ + { + "1000BASE-BX (SerDES Gigabit)", + "10GBASE-BX410 Gigabit XAUI", + "", "", + "", "", "", "", + "", "", "", "", + "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_RAPIDIO */ + { + "1.25 Gbaud transmission rate", + "2.5 Gbaud transmission rate", + "3.125 Gbaud transmission rate", + "", "", "", "", "", + "", "", "", "", "", "", "", "" + }, + /* FRU_PICMGEXT_AMC_LINK_TYPE_STORAGE */ + { + "Fibre Channel", + "Serial ATA", + "Serial Attached SCSI", + "", "", "", "", "", + "", "", "", "", "", "", "", "" + } +}; + /* This is the version of the PICMG Extension */ static t_picmg_card_type PicmgCardType = PICMG_CARD_TYPE_RESERVED; diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c index d51c174..eb40b36 100644 --- a/lib/ipmi_sdr.c +++ b/lib/ipmi_sdr.c @@ -68,6 +68,152 @@ static struct sdr_record_list *sdr_list_head = NULL; static struct sdr_record_list *sdr_list_tail = NULL; static struct ipmi_sdr_iterator *sdr_list_itr = NULL; +/* unit description codes (IPMI v1.5 section 37.16) */ +#define UNIT_MAX 0x90 +static const char *unit_desc[] = { + "unspecified", + "degrees C", + "degrees F", + "degrees K", + "Volts", + "Amps", + "Watts", + "Joules", + "Coulombs", + "VA", + "Nits", + "lumen", + "lux", + "Candela", + "kPa", + "PSI", + "Newton", + "CFM", + "RPM", + "Hz", + "microsecond", + "millisecond", + "second", + "minute", + "hour", + "day", + "week", + "mil", + "inches", + "feet", + "cu in", + "cu feet", + "mm", + "cm", + "m", + "cu cm", + "cu m", + "liters", + "fluid ounce", + "radians", + "steradians", + "revolutions", + "cycles", + "gravities", + "ounce", + "pound", + "ft-lb", + "oz-in", + "gauss", + "gilberts", + "henry", + "millihenry", + "farad", + "microfarad", + "ohms", + "siemens", + "mole", + "becquerel", + "PPM", + "reserved", + "Decibels", + "DbA", + "DbC", + "gray", + "sievert", + "color temp deg K", + "bit", + "kilobit", + "megabit", + "gigabit", + "byte", + "kilobyte", + "megabyte", + "gigabyte", + "word", + "dword", + "qword", + "line", + "hit", + "miss", + "retry", + "reset", + "overflow", + "underrun", + "collision", + "packets", + "messages", + "characters", + "error", + "correctable error", + "uncorrectable error" +}; + +/* sensor type codes (IPMI v1.5 table 36.3) + / Updated to v2.0 Table 42-3, Sensor Type Codes */ +static const char *sensor_type_desc[] = { + "reserved", + "Temperature", + "Voltage", + "Current", + "Fan", + "Physical Security", + "Platform Security", + "Processor", + "Power Supply", + "Power Unit", + "Cooling Device", + "Other", + "Memory", + "Drive Slot / Bay", + "POST Memory Resize", + "System Firmwares", + "Event Logging Disabled", + "Watchdog1", + "System Event", + "Critical Interrupt", + "Button", + "Module / Board", + "Microcontroller", + "Add-in Card", + "Chassis", + "Chip Set", + "Other FRU", + "Cable / Interconnect", + "Terminator", + "System Boot Initiated", + "Boot Error", + "OS Boot", + "OS Critical Stop", + "Slot / Connector", + "System ACPI Power State", + "Watchdog2", + "Platform Alert", + "Entity Presence", + "Monitor ASIC", + "LAN", + "Management Subsys Health", + "Battery", + "Session Audit", + "Version Change", + "FRU State" +}; + void printf_sdr_usage(); /* From src/plugins/ipmi_intf.c: */