mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 10:37:22 +00:00
144 lines
5.1 KiB
C
144 lines
5.1 KiB
C
/*
|
|
* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
*
|
|
* Redistribution of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
*
|
|
* Redistribution in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* Neither the name of Sun Microsystems, Inc. or the names of
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* This software is provided "AS IS," without a warranty of any kind.
|
|
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
|
|
* INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
|
|
* PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.
|
|
* SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE
|
|
* FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
|
|
* OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
|
|
* SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA,
|
|
* OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
|
|
* PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
|
|
* LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
|
|
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
*
|
|
* You acknowledge that this software is not designed or intended for use
|
|
* in the design, construction, operation or maintenance of any nuclear
|
|
* facility.
|
|
*/
|
|
|
|
#ifndef _IPMI_LAN_H
|
|
#define _IPMI_LAN_H
|
|
|
|
#include <linux/ipmi.h>
|
|
#include "ipmi.h"
|
|
|
|
#define IPMI_LAN_SET_CONFIG 0x01
|
|
#define IPMI_LAN_GET_CONFIG 0x02
|
|
#define IPMI_LAN_SUSPEND_ARP 0x03
|
|
# define IPMI_LAN_SUSPEND_ARP_RESP (2)
|
|
# define IPMI_LAN_SUSPEND_ARP_GRAT (1)
|
|
#define IPMI_LAN_GET_STAT 0x04
|
|
|
|
#define IPMI_LAN_CHANNEL_1 0x07
|
|
#define IPMI_LAN_CHANNEL_2 0x06
|
|
#define IPMI_LAN_CHANNEL_E 0x0e
|
|
|
|
enum {
|
|
IPMI_LANP_SET_IN_PROGRESS,
|
|
IPMI_LANP_AUTH_TYPE,
|
|
IPMI_LANP_AUTH_TYPE_ENABLE,
|
|
IPMI_LANP_IP_ADDR,
|
|
IPMI_LANP_IP_ADDR_SRC,
|
|
IPMI_LANP_MAC_ADDR,
|
|
IPMI_LANP_SUBNET_MASK,
|
|
IPMI_LANP_IP_HEADER,
|
|
IPMI_LANP_PRI_RMCP_PORT,
|
|
IPMI_LANP_SEC_RMCP_PORT,
|
|
IPMI_LANP_BMC_ARP,
|
|
IPMI_LANP_GRAT_ARP,
|
|
IPMI_LANP_DEF_GATEWAY_IP,
|
|
IPMI_LANP_DEF_GATEWAY_MAC,
|
|
IPMI_LANP_BAK_GATEWAY_IP,
|
|
IPMI_LANP_BAK_GATEWAY_MAC,
|
|
IPMI_LANP_SNMP_STRING,
|
|
IPMI_LANP_NUM_DEST,
|
|
IPMI_LANP_DEST_TYPE,
|
|
IPMI_LANP_DEST_ADDR,
|
|
IPMI_LANP_OEM_ALERT_STRING=96,
|
|
IPMI_LANP_ALERT_RETRY=97,
|
|
IPMI_LANP_UTC_OFFSET=98,
|
|
IPMI_LANP_DHCP_SERVER_IP=192,
|
|
IPMI_LANP_DHCP_SERVER_MAC=193,
|
|
IPMI_LANP_DHCP_ENABLE=194,
|
|
IPMI_LANP_CHAN_ACCESS_MODE=201,
|
|
};
|
|
|
|
static struct lan_param {
|
|
int cmd;
|
|
int size;
|
|
char desc[24];
|
|
unsigned char * data;
|
|
} ipmi_lan_params[] __attribute__((unused)) = {
|
|
{ IPMI_LANP_SET_IN_PROGRESS, 1, "Set in Progress" },
|
|
{ IPMI_LANP_AUTH_TYPE, 1, "Auth Type" },
|
|
{ IPMI_LANP_AUTH_TYPE_ENABLE, 5, "Auth Type Enable" },
|
|
{ IPMI_LANP_IP_ADDR, 4, "IP Address" },
|
|
{ IPMI_LANP_IP_ADDR_SRC, 1, "IP Address Source" },
|
|
{ IPMI_LANP_MAC_ADDR, 6, "MAC Address" },
|
|
{ IPMI_LANP_SUBNET_MASK, 4, "Subnet Mask" },
|
|
{ IPMI_LANP_IP_HEADER, 3, "IP Header" },
|
|
{ IPMI_LANP_PRI_RMCP_PORT, 2, "Primary RMCP Port" },
|
|
{ IPMI_LANP_SEC_RMCP_PORT, 2, "Secondary RMCP Port" },
|
|
{ IPMI_LANP_BMC_ARP, 1, "BMC ARP Control" },
|
|
{ IPMI_LANP_GRAT_ARP, 1, "Gratituous ARP Intrvl" },
|
|
{ IPMI_LANP_DEF_GATEWAY_IP, 4, "Default Gateway IP" },
|
|
{ IPMI_LANP_DEF_GATEWAY_MAC, 6, "Default Gateway MAC" },
|
|
{ IPMI_LANP_BAK_GATEWAY_IP, 4, "Backup Gateway IP" },
|
|
{ IPMI_LANP_BAK_GATEWAY_MAC, 6, "Backup Gateway MAC" },
|
|
{ IPMI_LANP_SNMP_STRING, 18, "Community String" },
|
|
{ IPMI_LANP_NUM_DEST, 1, "Number of Destinations"},
|
|
{ IPMI_LANP_DEST_TYPE, 4, "Destination Type" },
|
|
{ IPMI_LANP_DEST_ADDR, 13, "Destination Addresses" },
|
|
{ IPMI_LANP_OEM_ALERT_STRING, 28, "OEM Alert String" },
|
|
{ IPMI_LANP_ALERT_RETRY, 1, "Alert Retry Algorithm" },
|
|
{ IPMI_LANP_UTC_OFFSET, 3, "UTC Offset" },
|
|
{ IPMI_LANP_DHCP_SERVER_IP, 4, "DHCP Server IP" },
|
|
{ IPMI_LANP_DHCP_SERVER_MAC, 6, "DHDP Server MAC" },
|
|
{ IPMI_LANP_DHCP_ENABLE, 1, "DHCP Enable" },
|
|
{ IPMI_LANP_CHAN_ACCESS_MODE, 2, "Channel Access Mode" },
|
|
{ -1 }
|
|
};
|
|
|
|
#define IPMI_SESSION_AUTHTYPE_NONE 0x0
|
|
#define IPMI_SESSION_AUTHTYPE_MD2 0x1
|
|
#define IPMI_SESSION_AUTHTYPE_KEY 0x4
|
|
#define IPMI_SESSION_AUTHTYPE_OEM 0x5
|
|
|
|
#define IPMI_SESSION_PRIV_CALLBACK 0x1
|
|
#define IPMI_SESSION_PRIV_USER 0x2
|
|
#define IPMI_SESSION_PRIV_OPERATOR 0x3
|
|
#define IPMI_SESSION_PRIV_ADMIN 0x4
|
|
#define IPMI_SESSION_PRIV_OEM 0x5
|
|
|
|
extern struct ipmi_session lan_session;
|
|
|
|
unsigned char ipmi_csum(unsigned char * d, int s);
|
|
|
|
struct ipmi_rsp * ipmi_lan_send_cmd(struct ipmi_intf * intf, struct ipmi_req * req);
|
|
int ipmi_lan_open(struct ipmi_intf * intf, char * hostname, int port, char * password);
|
|
void ipmi_lan_close(struct ipmi_intf * intf);
|
|
void ipmi_get_channel_info(struct ipmi_intf * intf, unsigned char channel);
|
|
int ipmi_lan_main(struct ipmi_intf *, int, char **);
|
|
|
|
struct ipmi_intf ipmi_lan_intf;
|
|
|
|
#endif /*_IPMI_LAN_H*/
|