1*c18ec02fSPetter Reinholdtsen /* 2*c18ec02fSPetter Reinholdtsen * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. 3*c18ec02fSPetter Reinholdtsen * 4*c18ec02fSPetter Reinholdtsen * Redistribution and use in source and binary forms, with or without 5*c18ec02fSPetter Reinholdtsen * modification, are permitted provided that the following conditions 6*c18ec02fSPetter Reinholdtsen * are met: 7*c18ec02fSPetter Reinholdtsen * 8*c18ec02fSPetter Reinholdtsen * Redistribution of source code must retain the above copyright 9*c18ec02fSPetter Reinholdtsen * notice, this list of conditions and the following disclaimer. 10*c18ec02fSPetter Reinholdtsen * 11*c18ec02fSPetter Reinholdtsen * Redistribution in binary form must reproduce the above copyright 12*c18ec02fSPetter Reinholdtsen * notice, this list of conditions and the following disclaimer in the 13*c18ec02fSPetter Reinholdtsen * documentation and/or other materials provided with the distribution. 14*c18ec02fSPetter Reinholdtsen * 15*c18ec02fSPetter Reinholdtsen * Neither the name of Sun Microsystems, Inc. or the names of 16*c18ec02fSPetter Reinholdtsen * contributors may be used to endorse or promote products derived 17*c18ec02fSPetter Reinholdtsen * from this software without specific prior written permission. 18*c18ec02fSPetter Reinholdtsen * 19*c18ec02fSPetter Reinholdtsen * This software is provided "AS IS," without a warranty of any kind. 20*c18ec02fSPetter Reinholdtsen * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, 21*c18ec02fSPetter Reinholdtsen * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 22*c18ec02fSPetter Reinholdtsen * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. 23*c18ec02fSPetter Reinholdtsen * SUN MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE 24*c18ec02fSPetter Reinholdtsen * FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING 25*c18ec02fSPetter Reinholdtsen * OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL 26*c18ec02fSPetter Reinholdtsen * SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, 27*c18ec02fSPetter Reinholdtsen * OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 28*c18ec02fSPetter Reinholdtsen * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 29*c18ec02fSPetter Reinholdtsen * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, 30*c18ec02fSPetter Reinholdtsen * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 31*c18ec02fSPetter Reinholdtsen */ 32*c18ec02fSPetter Reinholdtsen 33*c18ec02fSPetter Reinholdtsen #ifndef IPMI_ASF_H 34*c18ec02fSPetter Reinholdtsen #define IPMI_ASF_H 35*c18ec02fSPetter Reinholdtsen 36*c18ec02fSPetter Reinholdtsen #include <ipmitool/helper.h> 37*c18ec02fSPetter Reinholdtsen #include "lan.h" 38*c18ec02fSPetter Reinholdtsen 39*c18ec02fSPetter Reinholdtsen #define ASF_RMCP_IANA 0x000011be 40*c18ec02fSPetter Reinholdtsen 41*c18ec02fSPetter Reinholdtsen #define ASF_TYPE_PING 0x80 42*c18ec02fSPetter Reinholdtsen #define ASF_TYPE_PONG 0x40 43*c18ec02fSPetter Reinholdtsen 44*c18ec02fSPetter Reinholdtsen static const struct valstr asf_type_vals[] __attribute__((unused)) = { 45*c18ec02fSPetter Reinholdtsen { 0x10, "Reset" }, 46*c18ec02fSPetter Reinholdtsen { 0x11, "Power-up" }, 47*c18ec02fSPetter Reinholdtsen { 0x12, "Unconditional Power-down" }, 48*c18ec02fSPetter Reinholdtsen { 0x13, "Power Cycle" }, 49*c18ec02fSPetter Reinholdtsen { 0x40, "Presence Pong" }, 50*c18ec02fSPetter Reinholdtsen { 0x41, "Capabilities Response" }, 51*c18ec02fSPetter Reinholdtsen { 0x42, "System State Response" }, 52*c18ec02fSPetter Reinholdtsen { 0x80, "Presence Ping" }, 53*c18ec02fSPetter Reinholdtsen { 0x81, "Capabilities Request" }, 54*c18ec02fSPetter Reinholdtsen { 0x82, "System State Request" }, 55*c18ec02fSPetter Reinholdtsen { 0x00, NULL } 56*c18ec02fSPetter Reinholdtsen }; 57*c18ec02fSPetter Reinholdtsen 58*c18ec02fSPetter Reinholdtsen /* ASF message header */ 59*c18ec02fSPetter Reinholdtsen #ifdef HAVE_PRAGMA_PACK 60*c18ec02fSPetter Reinholdtsen #pragma pack(1) 61*c18ec02fSPetter Reinholdtsen #endif 62*c18ec02fSPetter Reinholdtsen struct asf_hdr { 63*c18ec02fSPetter Reinholdtsen uint32_t iana; 64*c18ec02fSPetter Reinholdtsen uint8_t type; 65*c18ec02fSPetter Reinholdtsen uint8_t tag; 66*c18ec02fSPetter Reinholdtsen uint8_t __reserved; 67*c18ec02fSPetter Reinholdtsen uint8_t len; 68*c18ec02fSPetter Reinholdtsen } ATTRIBUTE_PACKING; 69*c18ec02fSPetter Reinholdtsen #ifdef HAVE_PRAGMA_PACK 70*c18ec02fSPetter Reinholdtsen #pragma pack(0) 71*c18ec02fSPetter Reinholdtsen #endif 72*c18ec02fSPetter Reinholdtsen 73*c18ec02fSPetter Reinholdtsen int handle_asf(struct ipmi_intf * intf, uint8_t * data, int data_len); 74*c18ec02fSPetter Reinholdtsen 75*c18ec02fSPetter Reinholdtsen #endif /* IPMI_ASF_H */ 76