123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /**
- * @file libipmi_rmcp.h
- * @author Rajasekhar (rajasekharj@amiindia.co.in)
- * @date 02-Sep-2004
- *
- * @brief Contains definition of RMCP layer API
- * required by Session layer for communicating with BMC.
- *
- */
- #ifndef __LIBIPMI_RMCP_H__
- #define __LIBIPMI_RMCP_H__
- //#include "RMCP.h"
- #include "com_IPMI_RMCP.h"
- #define PACK __attribute__ ((packed))
- /**
- * @def RMCPPing_T
- * @brief RMCP Ping Message
- */
- /* IPMI2.0 Specification Table 13-6 */
- typedef struct
- {
- RMCPHdr_T Hdr; /*< RMCP Header */
- uint8_t IANANum[4]; /*< 4542 (ASF IANA) */
- uint8_t MsgType; /*< 80h = Presence Ping */
- uint8_t MsgTag; /*< 0-FEh, generated by remote console */
- uint8_t Reserved1; /*< 00h */
- uint8_t DataLen; /*< 00h */
- } PACK RMCPPing_T;
- /**
- * @def RMCPPong_T
- * @brief RMCP Pong Response
- */
- /* IPMI2.0 Specification Table 13-7 */
- typedef struct
- {
- RMCPHdr_T Hdr; /*< RMCP Header */
- uint8_t IANANum[4]; /*< 4542 (ASF IANA) */
- uint8_t MsgType; /*< 40h = Presence Ping */
- uint8_t MsgTag; /*< From Pin Request */
- uint8_t Reserved1; /*< 00h */
- uint8_t DataLen; /*< 10h */
- uint8_t OEMIANANum [4]; /*< OEM's IANA Number */
- uint8_t OEM [4]; /*< OEM Defined field */
- uint8_t Support; /*< 81h for IPMI */
- uint8_t InteractionSupport; /*< Reserved */
- uint8_t Reserved [6];
- } PACK RMCPPong_T;
- #if defined (PACK)
- #undef PACK
- #endif
- /**
- \breif Connects to BMC's RMCP layer.
- @param LanInfo [in]Lan Info handle
- @param szIPAddress [in]IP Address of BMC
- @param wPort [in]socke port to be connected.
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- uint8_t RMCP_Connect(LAN_CHANNEL_T *LanInfo, char *szIPAddress, uint16 wPort);
- /**
- \breif Closes connection with BMC at RCMP layer
- @param LanInfo [in]Lan Info handle
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- void RMCP_Close(LAN_CHANNEL_T *LanInfo );
- /**
- \breif Fills RMCP Header and sends the data to network layer.
- @param LanInfo [in]Lan Info handle
- @param szBuffer [in]Data to be sent
- @param dwSize [in]Size of the data to be sent.
- @param timeout [in]timeout value in seconds.
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- uint8_t RMCP_SendData(LAN_CHANNEL_T *LanInfo, char *szBuffer, uint32 dwSize, int timeout);
- /**
- \breif Receives data from network layer and validates RMCP Header.
- @param LanInfo [in]Lan Info handle
- @param szBuffer [out]Data that will be received
- @param dwSize [out]Size of the data received.
- @param timeout [in]timeout value in seconds.
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- uint8_t RMCP_ReceiveData(LAN_CHANNEL_T *LanInfo, char *szBuffer, uint32* pdwSize, int timeout);
- /**
- \breif Sends RMCP Ping message to BMC
- @param LanInfo [in]Lan Info handle
- @param timeout [in]timeout value in seconds.
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- uint8_t RMCP_Ping(LAN_CHANNEL_T *LanInfo, int timeout);
- /**
- \breif Receives RMCP Pong message from BMC
- @param LanInfo [in]Lan Info handle
- @param timeout [in]timeout value in seconds.
- @retval Returns LIBIPMI_STATUS_SUCCESS on success and error codes on failure
- */
- uint8_t RMCP_Pong(LAN_CHANNEL_T *LanInfo, int timeout);
- #endif
|