|
Packit Service |
ed0f68 |
/*
|
|
Packit Service |
ed0f68 |
* Copyright (c) 2005 Sun Microsystems, Inc. All Rights Reserved.
|
|
Packit Service |
ed0f68 |
* Use is subject to license terms.
|
|
Packit Service |
ed0f68 |
*/
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
/*
|
|
Packit Service |
ed0f68 |
* Redistribution and use in source and binary forms, with or without
|
|
Packit Service |
ed0f68 |
* modification, are permitted provided that the following conditions
|
|
Packit Service |
ed0f68 |
* are met:
|
|
Packit Service |
ed0f68 |
*
|
|
Packit Service |
ed0f68 |
* Redistribution of source code must retain the above copyright
|
|
Packit Service |
ed0f68 |
* notice, this list of conditions and the following disclaimer.
|
|
Packit Service |
ed0f68 |
*
|
|
Packit Service |
ed0f68 |
* Redistribution in binary form must reproduce the above copyright
|
|
Packit Service |
ed0f68 |
* notice, this list of conditions and the following disclaimer in the
|
|
Packit Service |
ed0f68 |
* documentation and/or other materials provided with the distribution.
|
|
Packit Service |
ed0f68 |
*
|
|
Packit Service |
ed0f68 |
* Neither the name of Sun Microsystems, Inc. or the names of
|
|
Packit Service |
ed0f68 |
* contributors may be used to endorse or promote products derived
|
|
Packit Service |
ed0f68 |
* from this software without specific prior written permission.
|
|
Packit Service |
ed0f68 |
*
|
|
Packit Service |
ed0f68 |
* This software is provided "AS IS," without a warranty of any kind.
|
|
Packit Service |
ed0f68 |
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
|
|
Packit Service |
ed0f68 |
* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
|
Packit Service |
ed0f68 |
* PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
|
|
Packit Service |
ed0f68 |
* SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE
|
|
Packit Service |
ed0f68 |
* FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
|
|
Packit Service |
ed0f68 |
* OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
|
|
Packit Service |
ed0f68 |
* SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
|
|
Packit Service |
ed0f68 |
* OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
|
|
Packit Service |
ed0f68 |
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
|
|
Packit Service |
ed0f68 |
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
|
|
Packit Service |
ed0f68 |
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
Packit Service |
ed0f68 |
*/
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_intf.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_main.h>
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_sdr.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_gendev.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_sel.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_fru.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_sol.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_isol.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_tsol.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_lanp.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_chassis.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_mc.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_sensor.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_channel.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_session.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_event.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_user.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_raw.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_pef.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_oem.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_sunoem.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_fwum.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_picmg.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_kontronoem.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_firewall.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_hpmfwupg.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_delloem.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_ekanalyzer.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_ime.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_dcmi.h>
|
|
Packit Service |
ed0f68 |
#include <ipmitool/ipmi_vita.h>
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
#ifdef HAVE_CONFIG_H
|
|
Packit Service |
ed0f68 |
# include <config.h>
|
|
Packit Service |
ed0f68 |
#endif
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
#ifdef HAVE_READLINE
|
|
Packit Service |
ed0f68 |
extern int ipmi_shell_main(struct ipmi_intf * intf, int argc, char ** argv);
|
|
Packit Service |
ed0f68 |
#endif
|
|
Packit Service |
ed0f68 |
extern int ipmi_echo_main(struct ipmi_intf * intf, int argc, char ** argv);
|
|
Packit Service |
ed0f68 |
extern int ipmi_set_main(struct ipmi_intf * intf, int argc, char ** argv);
|
|
Packit Service |
ed0f68 |
extern int ipmi_exec_main(struct ipmi_intf * intf, int argc, char ** argv);
|
|
Packit Service |
ed0f68 |
extern int ipmi_lan6_main(struct ipmi_intf *intf, int argc, char **argv);
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
int csv_output = 0;
|
|
Packit Service |
ed0f68 |
int verbose = 0;
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
struct ipmi_cmd ipmitool_cmd_list[] = {
|
|
Packit Service |
ed0f68 |
{ ipmi_raw_main, "raw", "Send a RAW IPMI request and print response" },
|
|
Packit Service |
ed0f68 |
{ ipmi_rawi2c_main, "i2c", "Send an I2C Master Write-Read command and print response" },
|
|
Packit Service |
ed0f68 |
{ ipmi_rawspd_main, "spd", "Print SPD info from remote I2C device" },
|
|
Packit Service |
ed0f68 |
{ ipmi_lanp_main, "lan", "Configure LAN Channels" },
|
|
Packit Service |
ed0f68 |
{ ipmi_chassis_main, "chassis", "Get chassis status and set power state" },
|
|
Packit Service |
ed0f68 |
{ ipmi_power_main, "power", "Shortcut to chassis power commands" },
|
|
Packit Service |
ed0f68 |
{ ipmi_event_main, "event", "Send pre-defined events to MC" },
|
|
Packit Service |
ed0f68 |
{ ipmi_mc_main, "mc", "Management Controller status and global enables" },
|
|
Packit Service |
ed0f68 |
{ ipmi_mc_main, "bmc", NULL }, /* for backwards compatibility */
|
|
Packit Service |
ed0f68 |
{ ipmi_sdr_main, "sdr", "Print Sensor Data Repository entries and readings" },
|
|
Packit Service |
ed0f68 |
{ ipmi_sensor_main, "sensor", "Print detailed sensor information" },
|
|
Packit Service |
ed0f68 |
{ ipmi_fru_main, "fru", "Print built-in FRU and scan SDR for FRU locators" },
|
|
Packit Service |
ed0f68 |
{ ipmi_gendev_main, "gendev", "Read/Write Device associated with Generic Device locators sdr" },
|
|
Packit Service |
ed0f68 |
{ ipmi_sel_main, "sel", "Print System Event Log (SEL)" },
|
|
Packit Service |
ed0f68 |
{ ipmi_pef_main, "pef", "Configure Platform Event Filtering (PEF)" },
|
|
Packit Service |
ed0f68 |
{ ipmi_sol_main, "sol", "Configure and connect IPMIv2.0 Serial-over-LAN" },
|
|
Packit Service |
ed0f68 |
{ ipmi_tsol_main, "tsol", "Configure and connect with Tyan IPMIv1.5 Serial-over-LAN" },
|
|
Packit Service |
ed0f68 |
{ ipmi_isol_main, "isol", "Configure IPMIv1.5 Serial-over-LAN" },
|
|
Packit Service |
ed0f68 |
{ ipmi_user_main, "user", "Configure Management Controller users" },
|
|
Packit Service |
ed0f68 |
{ ipmi_channel_main, "channel", "Configure Management Controller channels" },
|
|
Packit Service |
ed0f68 |
{ ipmi_session_main, "session", "Print session information" },
|
|
Packit Service |
ed0f68 |
{ ipmi_dcmi_main, "dcmi", "Data Center Management Interface"},
|
|
Packit Service |
ed0f68 |
{ ipmi_nm_main, "nm", "Node Manager Interface"},
|
|
Packit Service |
ed0f68 |
{ ipmi_sunoem_main, "sunoem", "OEM Commands for Sun servers" },
|
|
Packit Service |
ed0f68 |
{ ipmi_kontronoem_main, "kontronoem", "OEM Commands for Kontron devices"},
|
|
Packit Service |
ed0f68 |
{ ipmi_picmg_main, "picmg", "Run a PICMG/ATCA extended cmd"},
|
|
Packit Service |
ed0f68 |
{ ipmi_fwum_main, "fwum", "Update IPMC using Kontron OEM Firmware Update Manager" },
|
|
Packit Service |
ed0f68 |
{ ipmi_firewall_main,"firewall","Configure Firmware Firewall" },
|
|
Packit Service |
ed0f68 |
{ ipmi_delloem_main, "delloem", "OEM Commands for Dell systems" },
|
|
Packit Service |
ed0f68 |
#ifdef HAVE_READLINE
|
|
Packit Service |
ed0f68 |
{ ipmi_shell_main, "shell", "Launch interactive IPMI shell" },
|
|
Packit Service |
ed0f68 |
#endif
|
|
Packit Service |
ed0f68 |
{ ipmi_exec_main, "exec", "Run list of commands from file" },
|
|
Packit Service |
ed0f68 |
{ ipmi_set_main, "set", "Set runtime variable for shell and exec" },
|
|
Packit Service |
ed0f68 |
{ ipmi_echo_main, "echo", NULL }, /* for echoing lines to stdout in scripts */
|
|
Packit Service |
ed0f68 |
{ ipmi_hpmfwupg_main,"hpm", "Update HPM components using PICMG HPM.1 file"},
|
|
Packit Service |
ed0f68 |
{ ipmi_ekanalyzer_main,"ekanalyzer", "run FRU-Ekeying analyzer using FRU files"},
|
|
Packit Service |
ed0f68 |
{ ipmi_ime_main, "ime", "Update Intel Manageability Engine Firmware"},
|
|
Packit Service |
ed0f68 |
{ ipmi_vita_main, "vita", "Run a VITA 46.11 extended cmd"},
|
|
Packit Service |
ed0f68 |
{ ipmi_lan6_main, "lan6", "Configure IPv6 LAN Channels"},
|
|
Packit Service |
ed0f68 |
{ NULL },
|
|
Packit Service |
ed0f68 |
};
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
int
|
|
Packit Service |
ed0f68 |
main(int argc, char ** argv)
|
|
Packit Service |
ed0f68 |
{
|
|
Packit Service |
ed0f68 |
int rc;
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
rc = ipmi_main(argc, argv, ipmitool_cmd_list, NULL);
|
|
Packit Service |
ed0f68 |
|
|
Packit Service |
ed0f68 |
if (rc < 0)
|
|
Packit Service |
ed0f68 |
exit(EXIT_FAILURE);
|
|
Packit Service |
ed0f68 |
else
|
|
Packit Service |
ed0f68 |
exit(EXIT_SUCCESS);
|
|
Packit Service |
ed0f68 |
}
|