123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- /****************************************************************
- ****************************************************************
- ** **
- ** (C)Copyright 2005-2006, American Megatrends Inc. **
- ** **
- ** All Rights Reserved. **
- ** **
- ** 6145-F, Northbelt Parkway, Norcross, **
- ** **
- ** Georgia - 30071, USA. Phone-(770)-246-8600. **
- ** **
- ****************************************************************
- ****************************************************************/
- /*****************************************************************
- *
- * Session.h
- *
- *
- * Author: Govind Kothandapani <govindk@ami.com>
- * : Rama Bisa <ramab@ami.com>
- * : Basavaraj Astekar <basavaraja@ami.com>
- * : Bakka Ravinder Reddy <bakkar@ami.com>
- *
- *****************************************************************/
- #ifndef SESSION_H
- #define SESSION_H
- #include "com_BmcType.h"
- #include "com_IPMI_LANIfc.h"
- #include "com_IPMI_RMCP+.h"
- #include "com_IPMI_AppDevice.h"
- #include "com_IPMIDefs.h"
- #include "com_Message.h"
- #include "PMConfig.h"
- #pragma pack( 1 )
- /* Macros */
- #define SESSION_ID_INFO 1
- #define SESSION_HANDLE_INFO 2
- #define SESSION_INDEX_INFO 3
- #define SESSION_CHANNEL_INFO 4
- #define MGD_SYS_SESSION_ID_INFO 5
- #define SESSION_PAYLOAD_INFO 6
- #define SESSION_REMOTE_INFO 7
- #define MAX_INST_SUPPORTED 2
- #define SESSIONLESS_CHANNEL 0x00
- #define SINGLE_SESSION_CHANNEL 0x01
- #define MULTI_SESSION_CHANNEL 0x02
- #define SESSION_BASED_CHANNEL 0x03
- #define HASH_DATA_LENGTH 16
- #define NULL_USER_ID 1
- #define UDS_SESSION_COUNT_INFO 0x00
- #define UDS_SESSION_ID_INFO 0x01
- #define UDS_SESSION_HANDLE_INFO 0x02
- #define UDS_SESSION_INDEX_INFO 0x03
- #define UDS_SOCKET_ID_INFO 0x04
- #define UDS_SESSION_PID_INFO 0x05
- #define UDS_ACTIVE_SESSION_INDEX_LIST 0x06
- /* UDS Session Table Info */
- typedef struct
- {
- uint32_t SessionID;
- uint32_t LoggedInTime;
- uint32_t SessionTimeoutValue;
- int UDSSocket;
- uint8_t LoggedInUsername[MAX_USERNAME_LEN];
- uint8_t LoggedInPassword[MAX_PASSWORD_LEN];
- uint8_t LoggedInUserID;
- uint8_t Activated;
- uint8_t LoggedInSessionHandle;
- uint8_t UDSChannelNum;
- uint8_t LoggedInChannel;
- uint8_t LoggedInPrivilege;
- uint8_t AuthenticationMechanism;
- uint32_t ProcessID;
- uint32_t ThreadID;
- uint8_t IPAddr [IP6_ADDR_LEN];
- } UDSSessionTbl_T;
- typedef struct
- {
- uint16_t SessionCount;
- UDSSessionTbl_T *UDSSessionTbl;
- } UDSSessionTblInfo_T;
- /* SessPayloadInfo_T */
- typedef struct
- {
- uint8_t Type;
- uint8_t OemPldIANA [3];
- uint8_t OemPldID [2];
- uint8_t Version;
- uint16_t PortNum;
- uint16_t ActivatedInst;
- uint8_t AuxConfig [4];
- } SessPayloadInfo_T;
- /* structure to keep track the information about a session. */
- /* SessionInfo_T */
- typedef struct
- {
- uint8_t Used; /* Flag to indicate the slot used or not */
- uint32_t SessionID;
- // uint8_t Activated;
- uint8_t Channel;
- uint8_t AuthType;
- uint8_t Privilege;
- // uint8_t MaxPrivilege;
- // uint32_t InboundSeq;
- // uint32_t OutboundSeq;
- // uint32_t TimeOutValue;
- // uint8_t Password[MAX_PASSWORD_LEN];
- // uint8_t UserId;
- // uint8_t SessionHandle;
- // uint8_t ChallengeString[CHALLENGE_STR_LEN];
- // LANRMCPPkt_T LANRMCPPkt;
- // int hSocket;
- // BOOL SerialModemMode;
- // uint32_t Time;
- // #if (IPMI20_SUPPORT == 1)
- // uint8_t Lookup;
- // uint32_t RemConSessionID;
- // uint8_t RemConRandomNo [16];
- // uint8_t MgdSysRandomNo [16];
- // uint8_t AuthAlgorithm;
- // uint8_t IntegrityAlgorithm;
- // uint8_t ConfidentialityAlgorithm;
- // uint8_t Key1 [MAX_HASH_KEY_SIZE];
- // uint8_t Key2 [MAX_HASH_KEY_SIZE];
- // SessPayloadInfo_T SessPyldInfo [MAX_PYLDS_SUPPORT];
- // #endif
- // uint32_t InitialInboundSeq;
- // uint32_t InboundTrac[SIXTEEN_COUNT_WINDOW_LEN];
- // uint16_t InboundRecv;
- // uint8_t IsLoopBack;
- // uint8_t Linkstat;
- // uint8_t EventFlag;
- // uint8_t UserName[MAX_USERNAME_LEN];
- } SessionInfo_T;
- /* SessionTblInfo_T */
- typedef struct
- {
- uint16_t Count;
- SessionInfo_T *SessionTbl;
- } SessionTblInfo_T;
- typedef struct
- {
- uint32_t Time;
- uint8_t Index;
- } OldSessionInfo_T;
- typedef enum
- {
- KCS_IFC = 0x00,
- IPMB_IFC,
- LAN_IFC,
- SERIAL_IFC,
- }IfcType_T;
- #pragma pack( )
- // /*--------------------------
- // * Extern Declarations
- // *--------------------------*/
- // extern void SessionTimerTask (int BMCInst);
- // extern ChannelInfo_T* getChannelInfo (uint8_t ch,int BMCInst);
- // extern _FAR_ ChannelUserInfo_T* getChUserIdInfo (uint8_t userId, _NEAR_ uint8_t *index, _FAR_ ChannelUserInfo_T* pChUserInfo, int BMCInst);
- // extern _FAR_ SessionInfo_T* getSessionInfo (uint8_t Arg, _FAR_ void *Session, int BMCInst);
- // extern _FAR_ ChannelUserInfo_T* getChUserPrivInfo (_NEAR_ char *userName, _NEAR_ uint8_t Role, _NEAR_ uint8_t* chIndex, _FAR_ ChannelUserInfo_T *pChUserInfo, int BMCInst);
- // extern _FAR_ ChannelUserInfo_T* getChUserInfo (_NEAR_ char *userName, _NEAR_ uint8_t* chIndex, _FAR_ ChannelUserInfo_T *pChUserInfo, int BMCInst);
- extern int UpdateUserInfoTable(void);
- extern UserInfo_T* getUserIdInfo (uint8_t userId);
- extern UserInfo_T* getUserNameInfo (uint8_t *UserName);
- extern uint8_t CheckForDuplicateUsers (uint8_t* UserName);
- // extern _FAR_ ChannelUserInfo_T* AddChUser (_FAR_ ChannelUserInfo_T* pChUserInfo, _NEAR_ uint8_t* Index,int BMCInst);
- // extern _FAR_ ChannelInfo_T* GetNVRChConfigs(ChannelInfo_T *pChannelInfo, int BMCInst);
- // extern _FAR_ ChannelUserInfo_T* GetNVRChUserConfigs(ChannelInfo_T *pChannelInfo,int BMCInst);
- // extern uint8_t disableUser (uint8_t UserId, int BMCInst);
- // extern uint8_t GetNumOfActiveSessions (int BMCInst);
- // extern uint8_t GetNumOfUsedSessions (int BMCInst);
- // extern void DeleteSession (_FAR_ SessionInfo_T* pSessionInfo,int BMCInst);
- // extern void AddSession (_NEAR_ SessionInfo_T* pSessionInfo,int BMCInst);
- // extern uint8_t CleanSession(int BMCInst);
- // extern _FAR_ uint16_t getPayloadActiveInst (uint8_t PayloadType, int BMCInst);
- // extern _FAR_ uint32_t getPayloadInstInfo (uint8_t PayloadType, uint16_t PayloadInst,int BMCInst);
- // extern void PasswordViolation (int BMCInst);
- // extern void UDSSessionTimerTask (int BMCInst);
- // extern int AddUDSSession (_NEAR_ UDSSessionTbl_T* pUDSSessionInfo, int BMCInst);
- // extern int DeleteUDSSession(_FAR_ UDSSessionTbl_T* pUDSSessionInfo,int BMCInst);
- // extern _FAR_ UDSSessionTbl_T* GetUDSSessionInfo (uint8_t Type,void *Data,int BMCInst);
- // /*---------------------------------------------------
- // * @fn UpdateGetMsgTime
- // * @brief Updates the Current Uptime and timeout value
- // * for an IPMI Message
- // *
- // * @param pReq : IPMI Message Packet
- // * @param ResTimeOut : Timeout Macro string
- // * @param BMCInst : BMC Instance
- // *
- // * @return none
- // *----------------------------------------------------*/
- // extern void UpdateGetMsgTime (MsgPkt_T* pReq,IfcType_T IfcType, int BMCInst);
- // /*---------------------------------------------------
- // * @fn IsMsgTimedOut
- // * @brief Checks if the time taken to process
- // * the IPMI Command expires
- // *
- // * @param pReq : IPMI Message Packet
- // *
- // * @return 1 if timed out
- // * 0 if error or timeout not set
- // *----------------------------------------------------*/
- // extern BOOL IsMsgTimedOut (MsgPkt_T* pReq);
- // /*-----------------------------------------------------
- // * @fn IsResponseMatch
- // * @brief Checks if the Response Message corresponds to
- // * the Request Message
- // *
- // * @param pReq : IPMI Request Message Packet
- // * @param pRes : IPMI Response Message Packet
- // *
- // * @return 1 if match
- // * 0 if mismatch
- // *----------------------------------------------------*/
- // extern BOOL IsResponseMatch (MsgPkt_T* pReq, MsgPkt_T* pRes);
- // /*-------------------------------------------------------
- // * @fn FillIPMIResFailure
- // * @brief Frames the Response packet when the time taken
- // * to process an IPMI Command expires
- // *
- // * @param pReq : Request Message Packet
- // * pRes : Response Message Packet
- // * BMCInst : BMC Instance Number
- // *
- // * @return none
- // *------------------------------------------------------*/
- // extern void FillIPMIResFailure (_NEAR_ MsgPkt_T* pReq, _NEAR_ MsgPkt_T* pRes, int BMCInst);
- #endif /* SESSION_H */
|