PMConfig.h 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011
  1. /*****************************************************************
  2. *****************************************************************
  3. *** **
  4. *** (C)Copyright 2005-2006, American Megatrends Inc. **
  5. *** **
  6. *** All Rights Reserved. **
  7. *** **
  8. *** 6145-F, Northbelt Parkway, Norcross, **
  9. *** **
  10. *** Georgia - 30071, USA. Phone-(770)-246-8600. **
  11. *** **
  12. *****************************************************************
  13. *****************************************************************
  14. ******************************************************************
  15. *
  16. * PMConfig.h
  17. * Platform management configuration structures
  18. *
  19. * Author: Govind Kothandapani <govindk@ami.com>
  20. * Basavaraj Astekar <basavaraja@ami.com>
  21. * Ravinder Reddy <bakkar@ami.com>
  22. ******************************************************************/
  23. #ifndef PMCONFIG_H
  24. #define PMCONFIG_H
  25. #include "Types.h"
  26. //#include "OSPort.h"
  27. #include "IPMI_AppDevice.h"
  28. #include "IPMI_ChassisDevice.h"
  29. #include "IPMI_PEF.h"
  30. #include "IPMI_LANConfig.h"
  31. #include "SerialModem.h"
  32. #include "BridgeMgmt.h"
  33. #include "Support.h"
  34. #include "IPMI_AMISmtp.h"
  35. #include "pmcfg.h"
  36. //#include "OemDefs.h"
  37. #include "lanchcfg.h"
  38. #include "SSIDefs.h"
  39. #include "IPMI_AMISmtp.h"
  40. #include "IPMI_DCM.h"
  41. #include "IPMI_AMI.h"
  42. /*** my add ****/
  43. #define COMMUNITY_STR_LEN 32
  44. #define READ_ENTIRE_TOKEN 0xFF
  45. #define MAX_EMAIL_CONFIGS 3
  46. #define EMAIL_ADDR_SIZE 64
  47. #define EMAIL_FORMAT_SIZE 64
  48. #define EMAIL_MSG_SIZE 32
  49. /*Zone Name Length*/
  50. #define TIME_ZONE_LEN 64
  51. #define TIMEZONE_OFFSET_PVE "Etc/GMT+"
  52. #define TIMEZONE_OFFSET_NVE "Etc/GMT-"
  53. /*** my add ****/
  54. /*** External Definitions ***/
  55. #define MAX_PRIVILEGE_TYPES 7
  56. #define MAX_CHFILE_NAME 50
  57. #define MAX_EVT_FILTER_ENTRIES 40
  58. #define ALERT_POLICY_SET_SIZE 4
  59. #define ALERT_POLICY_PER_CHANNEL 15
  60. #define LAN_DESTINATIONS_PER_CHANNEL 15
  61. #define NUM_LAN_DESTINATION LAN_DESTINATIONS_PER_CHANNEL
  62. #define MAX_ALERT_POLICY_ENTRIES (ALERT_POLICY_PER_CHANNEL * 4)
  63. //Added to Support 20 Alert Strings in Set/Get Pef Config.Parms ../
  64. /* It should equal to number of Event filter entries */
  65. #define MAX_ALERT_STRINGS MAX_EVT_FILTER_ENTRIES
  66. #define PEF_MAX_OEM_PARAMETERS 0x20
  67. #define MAX_SIZE_PET_GUID 0x11
  68. #define MAX_PLD_ENABLES_TYPES 4
  69. #define MAX_FF_CMD_CFGS 255
  70. /* RMCP+ Definitions */
  71. #define MAX_ALGORITHMS 2
  72. #define MAX_PAYLOADS 3
  73. #define HASH_KEY_LEN 20
  74. #define MAX_ID_PAIRS 7
  75. #define SERIAL_CONFIG_FILE(Instance,filename) \
  76. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"serialcfg.ini");
  77. #define CHASSIS_CONFIG_FILE(Instance,filename) \
  78. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"chassiscfg.ini");
  79. #define PEF_CONFIG_FILE(Instance,filename) \
  80. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"pefcfg.ini");
  81. #define PEFRECORDDETAILS_CONFIG_FILE(Instance,filename) \
  82. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"pefrecorddetailscfg.ini");
  83. #define WDT_CONFIG_FILE(Instance,filename) \
  84. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"wdogcfg.ini");
  85. #define BRIDGE_CONFIG_FILE(Instance,filename) \
  86. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"bridgecfg.ini");
  87. #define SYSINFO_CONFIG_FILE(Instance,filename) \
  88. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"systeminfo.ini");
  89. #define FIREWALL_CONFIG_FILE(Instance,filename) \
  90. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"fwfirewallcfg.ini");
  91. #define OPMA_CONFIG_FILE(Instance,filename) \
  92. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"opmacfg.ini");
  93. #define GENERIC_CONFIG_FILE(Instance,filename) \
  94. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"gencfg.ini");
  95. #define LAN_CONFIG_FILE(Instance,filename,ChIndex) \
  96. sprintf(filename,"%s%d/lancfg%d.ini",NV_DIR_PATH,Instance,ChIndex);
  97. #define RMCP_CONFIG_FILE(Instance,filename,ChIndex) \
  98. sprintf(filename,"%s%d/rmcpcfg%d.ini",NV_DIR_PATH,Instance,ChIndex);
  99. #define SOL_CONFIG_FILE(Instance,filename,ChIndex) \
  100. sprintf(filename,"%s%d/solcfg%d.ini",NV_DIR_PATH,Instance,ChIndex);
  101. #define SMTP_CONFIG_FILE(Instance,filename,ChIndex) \
  102. sprintf(filename,"%s%d/smtpcfg%d.ini",NV_DIR_PATH,Instance,ChIndex);
  103. #define USERCONFIG_FILE(Instance,filename) \
  104. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"UserConfig.ini");
  105. #define IPMBCHCONFIG_FILE(Instance,filename) \
  106. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"IpmbChCfg.ini");
  107. #define SYSCHCONFIG_FILE(Instance,filename) \
  108. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"SysifcChCfg.ini");
  109. #define LANCHCONFIG1_FILE(Instance,filename) \
  110. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"LanChcfg1.ini");
  111. #define LANCHCONFIG2_FILE(Instance,filename) \
  112. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"LanChcfg2.ini");
  113. #define LANCHCONFIG3_FILE(Instance,filename) \
  114. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"LanChcfg3.ini");
  115. #define LANCHCONFIG4_FILE(Instance,filename) \
  116. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"LanChcfg4.ini");
  117. #define SERIALCHCONFIG_FILE(Instance,filename) \
  118. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"SerialChcfg.ini");
  119. #define ICMBCHCONFIG_FILE(Instance,filename) \
  120. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"IcmbChcfg.ini");
  121. #define SMBUSCHCONFIG_FILE(Instance,filename) \
  122. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"Smbuschcfg.ini");
  123. #define SMLINKIPMBCHCONFIG_FILE(Instance,filename) \
  124. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"Smlinkipmbchcfg.ini");
  125. #define DCMICONFIG_FILE(Instance,filename) \
  126. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"DCMIConfig.ini");
  127. #define SMMCHCONFIG_FILE(Instance,filename) \
  128. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"Smmchcfg.ini");
  129. #define TRIGGEREVTCONFIG_FILE(Instance,filename) \
  130. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"TriggerEvtConfig.ini");
  131. #define LOGINAUDITCONFIG_FILE(Instance,filename) \
  132. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"loginadtcfg.ini");
  133. #define AMI_CONFIG_FILE(Instance,filename) \
  134. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"amicfg.ini");
  135. #define SSI_CONFIG_FILE(Instance,filename) \
  136. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"ssicfg.ini");
  137. #define VERSION_CONFIG_FILE(Instance,filename) \
  138. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"version.ini");
  139. #define ENC_USER_PSWD_FILE(Instance, filename) \
  140. sprintf(filename, "%s%d/%s", NV_DIR_PATH, Instance, "UserEncPswd.ini");
  141. #define LANIFC_CONFIG_FILE(Instance,filename) \
  142. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"LanIfccfg.ini");
  143. #define BOND_CONFIG_FILE(Instance,filename) \
  144. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance,"BondCfg.ini");
  145. #define SEL_DAT_FILE(Instance,filename) \
  146. sprintf(filename,"%s%d/%s",NV_DIR_PATH,Instance, "SEL.dat");
  147. #define IPMI_CONFIG_VERSION 17
  148. #define MAX_ENCRYPTED_PSWD_LEN 24
  149. /* The IPMI configuration version is maintained in IPMI_CONFIG_VERSION macro and the version
  150. number should be incremented in counts of '1' whenever there are changes in CDF files used in
  151. MDS and in CDF related structures used in this file.One should make sure that the version number incremented
  152. in IPMI_CONFIG_VERSION and version number maintained in libipmipar package should be same.
  153. The CDF version number for libipmipar should be configured using MDS. The IPMI Config version check
  154. will be done only when CONFIG_SPX_FEATURE_IPMI_CONFIG_VER_CHECK feature is enabled
  155. in PRJ file*/
  156. #pragma pack( 1 )
  157. /**
  158. * @struct WDTConfig_T
  159. * @brief Watchdog Timer configuration information.
  160. **/
  161. typedef struct
  162. {
  163. INT8U TmrUse;
  164. INT8U TmrActions;
  165. INT8U PreTimeOutInterval;
  166. INT8U ExpirationFlag;
  167. INT16U InitCountDown;
  168. INT8U PreTimeoutActionTaken;
  169. } PACKED WDTConfig_T;
  170. /**
  171. * @struct PEFConfig_T
  172. * PEF Configuration structure.
  173. **/
  174. typedef struct
  175. {
  176. INT8U PEFControl;
  177. INT8U PEFActionGblControl;
  178. INT8U PEFStartupDly;
  179. INT8U PEFAlertStartupDly;
  180. EvtFilterTblEntry_T EvtFilterTblEntry [MAX_EVT_FILTER_ENTRIES];
  181. AlertPolicyTblEntry_T AlertPolicyTblEntry [MAX_ALERT_POLICY_ENTRIES];
  182. INT8U SystemGUID [MAX_SIZE_PET_GUID];
  183. AlertStringTbl_T AlertStringEntry [MAX_ALERT_STRINGS];
  184. INT8U OEMParams [PEF_MAX_OEM_PARAMETERS];
  185. INT8U NumAlertPolicyEntries;
  186. } PACKED PEFConfig_T;
  187. /**
  188. * @struct PEFRecordDetailsConfig_T
  189. * Record ID Configuration structure.
  190. **/
  191. typedef struct
  192. {
  193. INT16U LastBMCProcessedEventID;
  194. INT16U LastSWProcessedEventID;
  195. INT16U LastSELRecordID;
  196. INT32U LastProcessedTimestamp;
  197. INT8U LastActionDone;
  198. } PACKED PEFRecordDetailsConfig_T;
  199. /**
  200. * @struct ChannelUserInfo_T
  201. * Structure for user information per channel.
  202. **/
  203. /*
  204. typedef struct
  205. {
  206. INT32U ID;
  207. INT8U UserId;
  208. INTU AccessLimit:4;
  209. INTU LinkAuth:1;
  210. INTU UserAccessCallback:1;
  211. INTU UserAccessCBCPCallback:1;
  212. INT8U UserCallbackCapabilities;
  213. INT8U CBCPNegOptions;
  214. INT8U CallBack1;
  215. INT8U CallBack2;
  216. INT8U CallBack3;
  217. INT8U FailureAttempts;
  218. INT8U Lock;
  219. INT32U LockedTime;
  220. INT8U PayloadEnables [MAX_PLD_ENABLES_TYPES];
  221. INT8U IPMIMessaging;
  222. INT8U ActivatingSOL;
  223. } PACKED ChannelUserInfo_T;
  224. */
  225. /**
  226. * @struct UserInfo_T
  227. * Structure for user information.
  228. **/
  229. //typedef struct
  230. //{
  231. // INT32U ID;
  232. // INT8U UserId;
  233. // INT8U UserName [MAX_USERNAME_LEN];
  234. // INT8U UserPassword [MAX_PASSWORD_LEN];
  235. // INT8U MaxPasswordSize; /**< Maximum password size */
  236. // INT8U UserShell; /**< user shell type */
  237. // INT8U UserEMailID [EMAIL_ADDR_SIZE]; /**< Email-ID registered for the user */
  238. // INT8U MaxSession; /**< max No of session allowed for User. */
  239. // INT8U CurrentSession; /**< No Current session for the User. */
  240. // INTU UserStatus:1; /**< User Enabled/Disabled Status. */
  241. // INTU FixedUser:1; /**< Is this user name fixed */
  242. // INT8U EmailFormat[EMAIL_FORMAT_SIZE]; /** Email Alert format */
  243. // INT32U ExtendedPrivilege; /** User Enhanced Privilege Flags */
  244. // INT8U UserPasswdConfigured; /* Flag to allow default Empty Password */
  245. //} PACKED UserInfo_T;
  246. /**
  247. * @struct DefaultChCfg_T
  248. * Structure of channel Information.
  249. **/
  250. //typedef struct
  251. //{
  252. // INT32U ID;
  253. // INTU ChannelIndex;
  254. // INTU ChannelNumber:4;
  255. // INTU ChannelType:7; /* Channel Type */
  256. // INTU ChannelMedium:7;
  257. // INTU ChannelProtocol:5;
  258. // INTU SessionSupport:2; /**< session support. */
  259. // INTU ActiveSession:6; /**< No of active session in this channel. */
  260. // INT8U AuthType [MAX_PRIVILEGE_TYPES]; /**< Authentication according to privilege. */
  261. // INT8U ProtocolVendorId [3];
  262. // INT8U AuxiliaryInfo [2];
  263. // INTU ReceiveMsgQ:1; /**< enable/disable message to Receive Message Queue. */
  264. // INTU AccessMode:4; /**< channel access mode - disabled/perboot/always/shared. */
  265. // INTU AccessModeSupported:4; /**< access mode supported by this channel. */
  266. // INTU Alerting:1; /**< enable/disable alerting through this channel. */
  267. // INTU PerMessageAuth:1; /**< enable/disable per message Auth through this channel. */
  268. // INTU UserLevelAuth:1; /**< enable/disable userlevel Auth through this channel. */
  269. // INTU MaxPrivilege:4; /**< max privilage level allowed by this channel. */
  270. // INTU reserved:1;
  271. // INTU SetUserAccess:1; /**< set user access command not allowed. */
  272. // INTU SetChPrivilege:2;
  273. // INTU SessionLimit:6;
  274. // INTU LoginStatusNUP:1;
  275. // INTU LoginStatusNUNP:1;
  276. // INTU LoginStatusNNU:1;
  277. // INTU MaxUser:6;
  278. // INTU NoCurrentUser:6;
  279. // INTU NoFixedUser:6;
  280. // INTU ChannelIndexRam:4;
  281. // INTU ChannelIndexNvRam:4;
  282. // ChannelUserInfo_T ChannelUserInfo [MAX_NUM_CH_USERS_MDS];
  283. //
  284. //} PACKED ChannelInfo_T;
  285. //
  286. /**
  287. * @struct ChassisConfig_T
  288. * Chassis Configuration.
  289. **/
  290. typedef struct
  291. {
  292. INT8U SysRestartCause;
  293. INT8U PowerRestorePolicy;
  294. ChassisPowerState_T ChassisPowerState;
  295. ChassisCapabilities_T ChassisCapabilities;
  296. INT8U PowerCycleInterval;
  297. AMI_BootOpt_T OemBootOpt; /**< AMI OEM BootOptions */
  298. INT8U SysPartitionScan;
  299. } PACKED ChassisConfig_T;
  300. /**
  301. * @struct VLANDestTags_T
  302. * VLAN Destination Tags.
  303. **/
  304. typedef struct
  305. {
  306. INT8U AddressFormat;
  307. INT16U VLANTag;
  308. } PACKED VLANDestTags_T;
  309. /**
  310. * @struct LANConfig_T
  311. * LAN Configuration.
  312. **/
  313. typedef struct {
  314. INT8U AuthTypeSupport;
  315. AuthTypeEnables_T AuthTypeEnables;
  316. INT8U IPAddr [IP_ADDR_LEN];
  317. INT8U IPAddrSrc;
  318. INT8U MACAddr [MAC_ADDR_LEN];
  319. INT8U SubNetMask [4];
  320. IPv4HdrParams_T Ipv4HdrParam;
  321. INT16U PrimaryRMCPPort;
  322. INT16U SecondaryPort;
  323. INT8U BMCGeneratedARPControl;
  324. INT8U GratitousARPInterval;
  325. INT8U DefaultGatewayIPAddr [IP_ADDR_LEN];
  326. INT8U DefaultGatewayMACAddr [MAC_ADDR_LEN];
  327. INT8U BackupGatewayIPAddr [IP_ADDR_LEN];
  328. INT8U BackupGatewayMACAddr [MAC_ADDR_LEN];
  329. INT8U CommunityStr [MAX_COMM_STRING_SIZE];
  330. INT8U NumDest;
  331. LANDestType_T DestType [NUM_LAN_DESTINATION];
  332. LANDestAddr_T DestAddr [NUM_LAN_DESTINATION];
  333. LANDestv6Addr_T Destv6Addr [NUM_LAN_DESTINATION];
  334. INT16U VLANID;
  335. INT8U VLANPriority;
  336. INT8U CipherSuitePrivLevels [MAX_NUM_CIPHER_SUITE_PRIV_LEVELS];
  337. VLANDestTags_T VLANDestTags [NUM_LAN_DESTINATION];
  338. BadPassword_T BadPasswd;
  339. INT8U IPv6_Enable;
  340. INT8U IPv6_IPAddrSrc;
  341. INT8U IPv6_IPAddr [16][IP6_ADDR_LEN];
  342. INT8U IPv6_PrefixLen[16];
  343. INT8U IPv6_GatewayIPAddr[IP6_ADDR_LEN];
  344. INT8U IPv4_Enable;
  345. INT8U AutoNegotiationEnable;
  346. INT16U Speed;
  347. INT8U Duplex;
  348. INT16U MTU_size;
  349. } PACKED LANConfig_T;
  350. /**
  351. * @struct PayloadSupport_T
  352. * Payload support.
  353. **/
  354. typedef struct
  355. {
  356. INT8U StandPldtype1;
  357. INT8U StandPldtype2;
  358. INT8U SessStpPldtype1;
  359. INT8U SessStpPldtype2;
  360. INT8U OemPldtype1;
  361. INT8U OemPldtype2;
  362. } PACKED PayloadSupport_T;
  363. /**
  364. * @struct PayloadInfo_T
  365. * Payload information.
  366. **/
  367. typedef struct
  368. {
  369. INT8U Type;
  370. INT8U OemPldIANA [3];
  371. INT8U OemPldID [2];
  372. INT8U Version;
  373. } PACKED PayloadInfo_T;
  374. /**
  375. * @struct RMCPPlus_T
  376. * RMCP+ information.
  377. **/
  378. typedef struct
  379. {
  380. BOOL LockKey [2];
  381. INT8U KGHashKey [HASH_KEY_LEN];
  382. INT8U PseudoGenKey [HASH_KEY_LEN];
  383. INT8U Algorithm [MAX_PAYLOADS] [MAX_PRIVILEGE_TYPES];
  384. PayloadSupport_T PayloadSupport;
  385. PayloadInfo_T PayloadInfo [MAX_PYLDS_SUPPORT];
  386. } PACKED RMCPPlus_T;
  387. /**
  388. * @struct FFCmdConfigTbl_T
  389. * Firmware Firewall Command Configuration Tbl.
  390. **/
  391. typedef struct
  392. {
  393. INT8U NetFn;
  394. INT8U Cmd;
  395. INT8U Config;
  396. } PACKED FFCmdConfigTbl_T;
  397. /**
  398. * @struct SOLConfig_T
  399. * SOL Configuration.
  400. **/
  401. typedef struct
  402. {
  403. INT8U SOLEnable;
  404. INT8U SOLAuth;
  405. INT16U CharAccThresh;
  406. INT8U SOLRetryCount;
  407. INT8U SOLRetryInterval;
  408. INT8U NVBitRate;
  409. INT8U VBitRate;
  410. INT8U PayldChannel;
  411. INT16U PayldPortNum;
  412. } PACKED SOLConfig_T;
  413. /**
  414. * @struct SystemInfoConfig_T
  415. * Get / Set System Info Parameters info.
  416. **/
  417. typedef struct
  418. {
  419. SysFWVersion_T SysFWVersion;
  420. SysName_T SysName;
  421. PrimaryOSName_T PrimaryOSName;
  422. }PACKED SystemInfoConfig_T;
  423. /**
  424. * @struct DCMIThermalCfg_T
  425. * brief Temperature limit for inlet sensors
  426. **/
  427. typedef struct
  428. {
  429. INT8U Valid;
  430. INT8U ExceptionAction;
  431. INT8U TemperatureLimit;
  432. INT16U ExceptionTime;
  433. }PACKED DCMIThermalCfg_T;
  434. typedef struct
  435. {
  436. BOOL IsValid;
  437. INT8U ActivePowerLimit;
  438. INT8U ExceptionAction;
  439. INT16U PwrLimitInWatts;
  440. INT32U CorrectionTimeLimitInMsec;
  441. INT16U MangSamplingTimeInSecs;
  442. DCMIThermalCfg_T ThermalCfg[MAX_TEMP_INSTANCE];
  443. } PACKED DCMICfg_T;
  444. typedef struct
  445. {
  446. INT8U CurrentNoUser;
  447. INT32U POHCounterReading;
  448. /* SEL Time UTC Offset information */
  449. INT16U SELTimeUTCOffset;
  450. INT32U SDREraseTime;
  451. /*Location of time (asia/calcutta)*/
  452. INT8U TimeZone[TIME_ZONE_LEN];
  453. }PACKED GENConfig_T;
  454. /**
  455. * @struct ChcfgInfo_T
  456. * Channel Configuration Information taken from respective channel .i files.
  457. **/
  458. //typedef struct
  459. //{
  460. // INT8U ChType;
  461. // ChannelInfo_T ChannelInfo;
  462. //} PACKED ChcfgInfo_T;
  463. /**
  464. * @struct AuthTypeEnable_T
  465. * @brief Authentication Enables.
  466. **/
  467. typedef struct
  468. {
  469. INT8U Callback;
  470. INT8U User;
  471. INT8U Operator;
  472. INT8U Admin;
  473. INT8U oem;
  474. } PACKED AuthTypeEnable_T;
  475. /**
  476. * @struct ChannelCallbackCtrl_T
  477. * @brief Channel Callback Control.
  478. **/
  479. typedef struct
  480. {
  481. INT8U CallBackEnable;
  482. INT8U CBCPnegopt;
  483. INT8U CallBackDes1;
  484. INT8U CallBackDes2;
  485. INT8U CallBackDes3;
  486. } PACKED ChannelCallbackCtrl_T;
  487. /**
  488. * @struct IpmiMsgCommSettings_T
  489. * @brief Communication Settings.
  490. **/
  491. typedef struct
  492. {
  493. INT8U FlowCtrl;
  494. INT8U BitRate;
  495. } PACKED IpmiMsgCommSettings_T;
  496. /**
  497. * @struct MuxSwitchCtrl_T
  498. * @brief MUX Switch Control.
  499. **/
  500. typedef struct
  501. {
  502. INT8U Data1;
  503. INT8U Data2;
  504. } PACKED MuxSwitchCtrl_T;
  505. /**
  506. * @struct ModemRingTime_T
  507. * @brief Modem Ring Time.
  508. **/
  509. typedef struct
  510. {
  511. INT8U RingDuration;
  512. INT8U RingDeadTime;
  513. } PACKED ModemRingTime_T;
  514. /**
  515. * @struct DestInfo_T
  516. * @brief Destination Information.
  517. **/
  518. typedef struct
  519. {
  520. INT8U DesType;
  521. INT8U AlertAckTimeout;
  522. INT8U Retries;
  523. INT8U DesTypeSpecific;
  524. } PACKED DestInfo_T;
  525. /**
  526. * @struct ModemDestCommSettings_T
  527. * @brief Modem Destination Communication Settings.
  528. **/
  529. typedef struct
  530. {
  531. INT8U FlowControl;
  532. INT8U BitRate;
  533. } PACKED ModemDestCommSettings_T;
  534. /**
  535. * @struct DestIPAddr_T
  536. * @brief Destination IP Address.
  537. **/
  538. typedef struct
  539. {
  540. INT8U ip [IP_ADDR_LEN];
  541. } PACKED DestIPAddr_T;
  542. /**
  543. * @struct TAPServiceSettings_T
  544. * @brief TAP Service Settings.
  545. **/
  546. typedef struct
  547. {
  548. INT8U TAPConfirmation;
  549. INT8U TAPServiceTypeChars [TAP_SERVICE_TYPE_FIELD_SIZE];
  550. INT32U TAPCtrlESCMask;
  551. INT8U TimeOutParam1;
  552. INT8U TimeOutParam2;
  553. INT8U TimeOutParam3;
  554. INT8U RetryParam1;
  555. INT8U RetryParam2;
  556. } PACKED TAPServiceSettings_T;
  557. /**
  558. * @struct TermConfig_T
  559. * @brief Terminal Configuration Data.
  560. **/
  561. typedef struct
  562. {
  563. INT8U Data1; /* Config Data1 deals with feature configuration */
  564. INT8U Data2; /* Config Data2 deals with i/o termination sequence */
  565. } PACKED TermConfig_T;
  566. /**
  567. * @struct PPPProtocolOptions_T
  568. * @brief PPP Protocol Options.
  569. **/
  570. typedef struct
  571. {
  572. INT8U SnoopControl;
  573. INT8U NegControl;
  574. INT8U NegConfig;
  575. } PACKED PPPProtocolOptions_T;
  576. /**
  577. * @struct PPPAccm_T
  578. * @brief PPP ACCM.
  579. **/
  580. typedef struct
  581. {
  582. INT32U ReceiveACCM;
  583. INT32U TransmitACCM;
  584. } PACKED PPPAccm_T;
  585. /**
  586. * @struct PPPSnoopAccm_T
  587. * @brief PPP Snoop ACCM
  588. **/
  589. typedef struct
  590. {
  591. INT32U ReceiveACCM;
  592. } PACKED PPPSnoopAccm_T;
  593. /**
  594. * @struct PPPUDPProxyIPHeaderData_T
  595. * @brief PPP UDP Proxy Header Data.
  596. **/
  597. typedef struct
  598. {
  599. INT8U SrcIPAddress [IP_ADDR_LEN];
  600. INT8U DestIPAddress [IP_ADDR_LEN];
  601. } PACKED PPPUDPProxyIPHeaderData_T;
  602. /**
  603. * @struct SMConfig_T
  604. * @brief Serial/Modem Configuration.
  605. **/
  606. typedef struct
  607. {
  608. INT8U SetInProgress;
  609. INT8U AuthTypeSupport;
  610. AuthTypeEnable_T AuthTypeEnable;
  611. INT8U ConnectionMode;
  612. INT8U SessionInactivity;
  613. ChannelCallbackCtrl_T ChannelCallBackCtrl;
  614. INT8U SessionTermination;
  615. IpmiMsgCommSettings_T IpmiMsgCommSet;
  616. MuxSwitchCtrl_T MUXSwitchCtrl;
  617. ModemRingTime_T RingTime;
  618. INT8U ModemInitString [MAX_MODEM_INIT_STR_BLOCKS] [MAX_MODEM_INIT_STR_BLOCK_SIZE];
  619. INT8U ModemEscapeSeq [MAX_MODEM_ESC_SEQ_SIZE + 1]; /*+1 for NULL Termination when */
  620. INT8U ModemHangup [MAX_MODEM_HANG_UP_SEQ_SIZE + 1]; /*full non null chars are provided*/
  621. INT8U ModemDialCmd [MAX_MODEM_DIAL_CMD_SIZE + 1];
  622. INT8U PageBlockOut;
  623. INT8U CommunityString [MAX_COMM_STRING_SIZE + 1];
  624. INT8U TotalAlertDest;
  625. DestInfo_T DestinationInfo [MAX_SERIAL_ALERT_DESTINATIONS];
  626. INT8U CallRetryInterval;
  627. ModemDestCommSettings_T DestComSet [MAX_SERIAL_ALERT_DESTINATIONS];
  628. INT8U TotalDialStr;
  629. INT8U DestDialStrings [MAX_MODEM_DIAL_STRS] [MAX_MODEM_DIAL_STR_BLOCKS] [MAX_MODEM_DIAL_STR_BLOCK_SIZE];
  630. INT8U TotalDestIP;
  631. DestIPAddr_T DestAddr [MAX_MODEM_ALERT_DEST_IP_ADDRS];
  632. INT8U TotalTAPAcc;
  633. INT8U TAPAccountSelector [MAX_MODEM_TAP_ACCOUNTS];
  634. INT8U TAPPasswd [MAX_MODEM_TAP_ACCOUNTS] [TAP_PASSWORD_SIZE + 1];
  635. INT8U TAPPagerIDStrings [MAX_MODEM_TAP_ACCOUNTS] [TAP_PAGER_ID_STRING_SIZE + 1];
  636. TAPServiceSettings_T TAPServiceSettings [MAX_MODEM_TAP_ACCOUNTS];
  637. TermConfig_T Termconfig;
  638. PPPProtocolOptions_T PPPProtocolOptions;
  639. INT16U PPPPrimaryRMCPPort;
  640. INT16U PPPSecondaryRMCPPort;
  641. INT8U PPPLinkAuth;
  642. INT8U CHAPName [MAX_MODEM_CHAP_NAME_SIZE];
  643. PPPAccm_T PPPACCM;
  644. PPPSnoopAccm_T PPPSnoopACCM;
  645. INT8U TotalPPPAcc;
  646. INT8U PPPAccDialStrSel [MAX_MODEM_PPP_ACCOUNTS];
  647. INT8U PPPAccIPAddress [MAX_MODEM_PPP_ACCOUNTS] [IP_ADDR_LEN];
  648. INT8U PPPAccUserNames [MAX_MODEM_PPP_ACCOUNTS] [PPP_ACC_USER_NAME_DOMAIN_PASSWD_SIZE + 1 ];
  649. INT8U PPPAccUserDomain [MAX_MODEM_PPP_ACCOUNTS] [PPP_ACC_USER_NAME_DOMAIN_PASSWD_SIZE + 1];
  650. INT8U PPPAccUserPasswd [MAX_MODEM_PPP_ACCOUNTS] [PPP_ACC_USER_NAME_DOMAIN_PASSWD_SIZE + 1];
  651. INT8U PPPAccAuthSettings [MAX_MODEM_PPP_ACCOUNTS];
  652. INT8U PPPAccConnHoldTimes [MAX_MODEM_PPP_ACCOUNTS];
  653. PPPUDPProxyIPHeaderData_T PPPUDPProxyIPHeadData;
  654. INT16U PPPUDPProxyTransmitBuffSize;
  655. INT16U PPPUDPProxyReceiveBuffSize;
  656. INT8U PPPRemoteConsoleIPAdd [IP_ADDR_LEN];
  657. BadPassword_T BadPasswd;
  658. } PACKED SMConfig_T;
  659. /*
  660. * SensorOffsetInfo_T Structure
  661. */
  662. typedef struct {
  663. INT8U SensorLUN;
  664. INT8U SensorNo;
  665. INT8S Offset;
  666. INT8U valid;
  667. } PACKED SensorOffsetInfo_T;
  668. /*
  669. * OPMA_IDPair_T Structure
  670. */
  671. typedef struct
  672. {
  673. INT16U OemId;
  674. INT16U ImplementationId;
  675. } PACKED OPMA_IDPair_T;
  676. /*
  677. * OPMA Config Structure
  678. * The OPMA specific Data are stored in this Structure
  679. */
  680. typedef struct
  681. {
  682. SensorOffsetInfo_T SensorOffsetInfo [256];
  683. INT8U SupportedSysCount;
  684. OPMA_IDPair_T OPMA_IdPairs [ MAX_ID_PAIRS ];
  685. OPMA_IDPair_T SystemIdentifier ;
  686. INT8U SysLocalAccessLockout;
  687. INT16U OPMASpecComplaince;
  688. } PACKED OPMA_Config_T;
  689. typedef struct
  690. {
  691. INT8U EnableDisableSMTP;
  692. INT8U EnableDisableSmtpAuth;
  693. INT8U ServerAddr [ IP_ADDR_LEN ];
  694. INT8U IP6_ServerAddr [ IP6_ADDR_LEN ];
  695. INT8U UserName [ MAX_SMTP_USERNAME_LEN ];
  696. INT8U Passwd [MAX_SMTP_PASSWD_LEN];
  697. INT8U NoofDestinations;
  698. INT8U Subject [MAX_EMAIL_DESTINATIONS+1][MAX_SUB_BLOCK_SIZE * MAX_SUB_BLOCKS];
  699. INT8U Msg [MAX_EMAIL_DESTINATIONS+1][MAX_MSG_BLOCK_SIZE * MAX_MSG_BLOCKS];
  700. INT8U SenderAddr[MAX_EMAIL_BLOCK_SIZE * MAX_EMAIL_ADDR_BLOCKS];
  701. INT8U Servername[MAX_SRV_NAME_BLOCK_SIZE * MAX_SRV_NAME_BLOCKS];
  702. INT16U SmtpPort;
  703. INT8U UserID[MAX_EMAIL_DESTINATIONS+1];
  704. INT8U EnableDisableSMTP2;
  705. INT8U EnableDisableSmtp2Auth;
  706. INT8U Server2Addr [ IP_ADDR_LEN ];
  707. INT8U IP6_Server2Addr [ IP6_ADDR_LEN ];
  708. INT8U UserName2 [ MAX_SMTP_USERNAME_LEN ];
  709. INT8U Passwd2 [MAX_SMTP_PASSWD_LEN];
  710. INT8U Sender2Addr[MAX_EMAIL_BLOCK_SIZE * MAX_EMAIL_ADDR_BLOCKS];
  711. INT8U Server2name[MAX_SRV_NAME_BLOCK_SIZE * MAX_SRV_NAME_BLOCKS];
  712. INT16U Smtp2Port;
  713. } PACKED Smtp_Config_T;
  714. /**
  715. * @struct TriggerEventCfg_T
  716. * Trigger Event Configuration.
  717. **/
  718. typedef struct
  719. {
  720. INT8U CriticalFlag;
  721. INT8U NONCriticalFlag;
  722. INT8U NONRecoverableFlag;
  723. INT8U FanTroubled;
  724. INT8U WDTTimeExpire;
  725. INT8U SysDConFlag;
  726. INT8U SysDCoffFlag;
  727. INT8U SysResetFlag;
  728. INT8U LPCResetFlag;
  729. INT8U SpecDateTime;
  730. INT32U Time;
  731. }PACKED TriggerEventCfg_T;
  732. /**
  733. * @struct LoginAuditConfig_T
  734. * Login Audit Configuration.
  735. **/
  736. typedef struct
  737. {
  738. INT8U WebEventMask;
  739. INT8U IPMIEventMask;
  740. INT8U TelnetEventMask;
  741. INT8U SSHEventMask;
  742. INT8U KVMEventMask;
  743. }PACKED LoginAuditConfig_T;
  744. /**
  745. * @struct AMIConfig_T
  746. * @brief AMI Specific Configuration.
  747. **/
  748. typedef struct
  749. {
  750. INT8U CircularSEL;
  751. INT8U CircularSELFlag;
  752. } PACKED AMIConfig_T;
  753. /**
  754. * @struct SSIConfig_T
  755. * @brief SSI Configuration.
  756. **/
  757. typedef struct
  758. {
  759. OpState CurrentState;
  760. INT32U CurrentConditions;
  761. INT8U CurrentPowerLevel;
  762. INT8U CMMIPAddr[IP_ADDR_LEN];
  763. } PACKED SSIConfig_T;
  764. typedef struct
  765. {
  766. INT32U Version;
  767. } PACKED VersionConfig_T;
  768. typedef struct
  769. {
  770. INT8U Host[200];
  771. INT8U Path[200];
  772. INT8U Retry;
  773. } PACKED ConnectionInfo_T;
  774. typedef struct
  775. {
  776. INT8U ProtocolType;
  777. ConnectionInfo_T ConnectionInfo;
  778. } PACKED FWConfig_T;
  779. typedef struct
  780. {
  781. char EncryptedPswd[MAX_ENCRYPTED_PSWD_LEN];
  782. } PACKED EncryptedUserInfo_T;
  783. #pragma pack( )
  784. /**
  785. * @brief Initialize PM configuration information.
  786. * @return 0 if success, -1 if error.
  787. **/
  788. extern int InitPMConfig (int BMCInst);
  789. /**
  790. *@fn InitChannelConfigs
  791. *@brief This function is Initialize to load all Channel Configs from NVRAM to RAM
  792. */
  793. extern int InitChannelConfigs(int BMCInst);
  794. /**
  795. *@fn InitDCMIConfig
  796. *@brief This function is invoked to Initialize all DCMI Configs from NVRAM to RAM
  797. */
  798. extern int initDCMIConfig(int BMCInst);
  799. /**
  800. *@fn InitUserConfig
  801. *@brief This function is invoked to Initialize UserConfigs from NVRAM to RAM
  802. */
  803. extern int InitUserConfig(int BMCInst);
  804. /**
  805. *@fn InitTriggerEventConfig
  806. *@brief This function is invoked to Initialize TriggerEventConfig from NVRAM to RAM
  807. */
  808. extern int InitTriggerEventConfig(int BMCInst);
  809. /**
  810. *@fn InitLoginAuditConfig
  811. *@brief This function is invoked to Initialize the login audit configuration from NVRAM to RAM
  812. */
  813. extern int InitLoginAuditConfig(int BMCInst);
  814. /**
  815. *@fn InitEncUserPswdConfig
  816. *@brief This function is invoked to Initialize EncUserPasswordsConfigs from NVRAM to RAM
  817. */
  818. extern int InitEncUserPswdConfig(int BMCInst);
  819. /**
  820. *@fn InitChannelPriv
  821. *@brief Add Channel Groups
  822. **/
  823. extern void InitChannelPrivtbl(int BMCInst);
  824. /**
  825. *@fn AddUserToChGroups
  826. *@brief Add users to Channel Groups
  827. **/
  828. extern void AddUserToChGroups(int BMCInst);
  829. #endif /* PMCONFIG_H */