IPMI_LANConfig.h 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  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. *
  17. * ipmi_lanconfig.h
  18. * Lan configuration command handler
  19. *
  20. * Author: Bakka Ravinder Reddy <bakkar@ami.com>
  21. *
  22. *****************************************************************/
  23. #ifndef IPMI_LANCONFIG_H
  24. #define IPMI_LANCONFIG_H
  25. #include "Types.h"
  26. //#include "nwcfg.h"
  27. /*** External Definitions ***/
  28. #define IP_ADDR_LEN 4
  29. #define IP6_ADDR_LEN 16
  30. #define MAC_ADDR_LEN 6
  31. #define MAX_COMM_STRING_SIZE 18
  32. #define MAX_NUM_CIPHER_SUITE_PRIV_LEVELS 10
  33. #define MAX_IPV6_ADDR_STRLEN 41
  34. #define MAX_NUM_LAN_ALERT_DESTINATIONS 15 //1h to Fh
  35. #define MAX_LAN_CONF_PARAM 0x1A
  36. #define MIN_LAN_OEM_CONF_PARAM 192
  37. #define MAX_LAN_OEM_CONF_PARAM 255
  38. /**
  39. * @struct AuthTypeEnables_T
  40. * @brief Authentication Type Enables
  41. **/
  42. #pragma pack(1)
  43. typedef struct
  44. {
  45. INT8U AutoNegotiationEnable;
  46. INT16U Speed;
  47. INT8U Duplex;
  48. INT8U Interface;
  49. INT8U CapabilitiesSupported;
  50. } PACKED PHYConfig_T;
  51. typedef struct
  52. {
  53. INT8U AuthTypeCallBack;
  54. INT8U AuthTypeUser;
  55. INT8U AuthTypeOperator;
  56. INT8U AuthTypeAdmin;
  57. INT8U AuthTypeOem;
  58. } PACKED AuthTypeEnables_T;
  59. /**
  60. * @struct LANDestType_T
  61. * @brief LAN Destination Type
  62. **/
  63. typedef struct
  64. {
  65. INT8U SetSelect;
  66. INT8U DestType;
  67. INT8U AlertAckTimeout;
  68. INT8U Retries;
  69. } PACKED LANDestType_T;
  70. /**
  71. * @struct LANDestAddr_T
  72. * @brief LAN Destination Address
  73. **/
  74. typedef struct
  75. {
  76. INT8U SetSelect;
  77. INT8U AddrFormat;
  78. INT8U GateWayUse;
  79. INT8U IPAddr [IP_ADDR_LEN];
  80. INT8U MACAddr [MAC_ADDR_LEN];
  81. } PACKED LANDestAddr_T;
  82. typedef struct
  83. {
  84. INT8U SetSelect;
  85. INT8U AddrFormat;
  86. INT8U GateWayUse;
  87. INT8U IPAddr [IP6_ADDR_LEN];
  88. INT8U MACAddr [MAC_ADDR_LEN];
  89. } PACKED LANDestv6Addr_T;
  90. /**
  91. * @struct IPv4HdrParams_T
  92. * @brief IPv4 Header Parameters
  93. **/
  94. typedef struct
  95. {
  96. INT8U TimeToLive;
  97. INT8U IpHeaderFlags;
  98. INT8U TypeOfService;
  99. } PACKED IPv4HdrParams_T;
  100. typedef struct
  101. {
  102. INT8U GenEvent;
  103. INT8U ThreshNum;
  104. INT16U ResetInterval;
  105. INT16U LockoutInterval;
  106. }PACKED BadPassword_T;
  107. typedef struct
  108. {
  109. INT8U EthIndex;
  110. INT8U MACAddress[MAC_ADDR_LEN];
  111. }PACKED EnableSetMACAddress_T;
  112. typedef struct
  113. {
  114. INT8U Interface;
  115. INT8U PackageId;
  116. INT8U ChannelId;
  117. } PACKED NCSIPortConfig_T;
  118. typedef struct
  119. {
  120. INT8U Interface;
  121. INT8U NCSIMode;
  122. } PACKED NCSIModeConfig_T;
  123. typedef struct
  124. {
  125. INT8U Command;
  126. INT8U Interface;
  127. INT8U VetoBit;
  128. } PACKED NCSIPHYConfigSet_T;
  129. typedef struct
  130. {
  131. INT8U Interface;
  132. INT8U VetoBit;
  133. } PACKED NCSIPHYConfigGet_T;
  134. /**
  135. * @struct IPv6Addr_T
  136. * @brief Setting Multiple static IPv6 address
  137. **/
  138. typedef struct
  139. {
  140. INT8U IPv6_Cntr;
  141. INT8U IPv6_IPAddr [IP6_ADDR_LEN];
  142. }IPv6Addr_T;
  143. /**
  144. * @struct IPv6Prefix_T
  145. * @brief Setting Multiple static IPv6 prefix length
  146. **/
  147. typedef struct
  148. {
  149. INT8U IPv6_Prepos;
  150. INT8U IPv6_PrefixLen;
  151. }IPv6Prefix_T;
  152. /**
  153. * @struct LANConfigUn_T
  154. * @brief LAN Configuration Parameters.
  155. **/
  156. typedef union {
  157. INT8U SetInProgress;
  158. INT8U AuthTypeSupport;
  159. AuthTypeEnables_T AuthTypeEnables;
  160. INT8U IPAddr [4];
  161. INT8U IPAddrSrc;
  162. INT8U MACAddr [6];
  163. INT8U SubNetMask [4];
  164. IPv4HdrParams_T Ipv4HdrParam;
  165. INT16U PrimaryRMCPPort;
  166. INT16U SecondaryPort;
  167. INT8U BMCGeneratedARPControl;
  168. INT8U GratitousARPInterval;
  169. INT8U DefaultGatewayIPAddr [IP_ADDR_LEN];
  170. INT8U DefaultGatewayMACAddr [MAC_ADDR_LEN];
  171. INT8U BackupGatewayIPAddr [IP_ADDR_LEN];
  172. INT8U BackupGatewayMACAddr [MAC_ADDR_LEN];
  173. INT8U CommunityStr [MAX_COMM_STRING_SIZE];
  174. INT8U NumDest;
  175. LANDestType_T DestType;
  176. LANDestAddr_T DestAddr;
  177. LANDestv6Addr_T Destv6Addr;
  178. INT16U VLANID;
  179. INT8U VLANPriority;
  180. INT8U CipherSuiteSup;
  181. INT8U CipherSuiteEntries [17];
  182. INT8U CipherSuitePrivLevels [MAX_NUM_CIPHER_SUITE_PRIV_LEVELS];
  183. BadPassword_T BadPasswd;
  184. INT8U EthIndex;
  185. INT8U ChangeMACEnabled;
  186. INT8U IPv6_Enable;
  187. INT8U IPv6_IPAddrSrc;
  188. INT8U IPv6_LinkAddr [IP6_ADDR_LEN];
  189. IPv6Addr_T IPv6Addr;
  190. IPv6Prefix_T IPv6Prefix;
  191. INT8U IPv6_LinkAddrPrefix;
  192. INT8U IPv6_GatewayIPAddr[IP6_ADDR_LEN];
  193. INT8U NumNCSIPortConfigs;
  194. NCSIPortConfig_T NCSIPortConfig;
  195. PHYConfig_T PHYConfig;
  196. INT8U SSI2ndPriEthMACAddr[MAC_ADDR_LEN];
  197. INT8U SSILinkControl;
  198. INT8U CMMIPAddr[IP_ADDR_LEN];
  199. INT16U MTU_size;
  200. NCSIModeConfig_T NCSIModeConfig;
  201. NCSIPHYConfigSet_T NCSIPHYConfigSet;
  202. NCSIPHYConfigGet_T NCSIPHYConfigGet;
  203. } LANConfigUn_T;
  204. /* GetLanCCRev_T */
  205. typedef struct
  206. {
  207. INT8U CompletionCode;
  208. INT8U ParamRevision;
  209. } PACKED GetLanCCRev_T;
  210. /* GetLanConfigReq_T */
  211. typedef struct
  212. {
  213. INT8U ChannelNum;
  214. INT8U ParameterSelect;
  215. INT8U SetSelect;
  216. INT8U BlockSelect;
  217. } PACKED GetLanConfigReq_T;
  218. /* GetLanConfigRes_T */
  219. typedef struct
  220. {
  221. GetLanCCRev_T CCParamRev;
  222. LANConfigUn_T ConfigData;
  223. } PACKED GetLanConfigRes_T;
  224. /* GetLanConfigOEM_T */
  225. typedef struct
  226. {
  227. GetLanCCRev_T CCParamRev;
  228. /* OEM parameter should be added below*/
  229. } PACKED GetLanConfigOEMRes_T;
  230. /* SetLanConfigReq_T */
  231. typedef struct
  232. {
  233. INT8U ChannelNum;
  234. INT8U ParameterSelect;
  235. /* OEM parameter should be added below*/
  236. } PACKED SetLanConfigOEMReq_T;
  237. /* SetLanConfigReq_T */
  238. typedef struct
  239. {
  240. INT8U ChannelNum;
  241. INT8U ParameterSelect;
  242. LANConfigUn_T ConfigData;
  243. } PACKED SetLanConfigReq_T;
  244. /* SetLanConfigRes_T */
  245. typedef struct
  246. {
  247. INT8U CompletionCode;
  248. } PACKED SetLanConfigRes_T;
  249. /* SuspendBMCArpsReq_T */
  250. typedef struct
  251. {
  252. INT8U ChannelNo;
  253. INT8U ArpSuspend;
  254. } PACKED SuspendBMCArpsReq_T;
  255. /* SuspendBMCArpsRes_T */
  256. typedef struct
  257. {
  258. INT8U CompletionCode;
  259. INT8U ArpSuspendStatus;
  260. } PACKED SuspendBMCArpsRes_T;
  261. /* GetIPUDPRMCPStatsReq_T */
  262. typedef struct
  263. {
  264. INT8U ChannelNo;
  265. INT8U ClearStatus;
  266. } PACKED GetIPUDPRMCPStatsReq_T;
  267. /* GetIPUDPRMCPStatsRes_T */
  268. typedef struct
  269. {
  270. INT8U CompletionCode;
  271. INT16U IPPacketsRecv;
  272. INT16U IPHeaderErr;
  273. INT16U IPAddrErr;
  274. INT16U FragIPPacketsRecv;
  275. INT16U IPPacketsTrans;
  276. INT16U UDPPacketsRecv;
  277. INT16U ValidRMCPPackets;
  278. } PACKED GetIPUDPRMCPStatsRes_T;
  279. typedef struct
  280. {
  281. INT16S RegValue;
  282. INT8U RegNumber;
  283. INT8U IsReplace;
  284. } PACKED SetPHYReg_T;
  285. #pragma pack()
  286. #endif /* IPMI_LANCONFIG_H */