IPMI_LANIfc.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  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. * ipmi_LANIfc.h
  17. * LAN Interface structures
  18. *
  19. * Author: Govind Kothandapani <govindk@ami.com>
  20. * : Bakka Ravinder Reddy <bakkar@ami.com>
  21. *
  22. *****************************************************************/
  23. #ifndef IPMI_LANIFC_H
  24. #define IPMI_LANIFC_H
  25. #include "Types.h"
  26. #include "IPMI_RMCP.h"
  27. #pragma pack( 1 )
  28. /*** External Definitions ***/
  29. #define MAC_ADDR_LEN 6
  30. #define IP_ADDR_LEN 4
  31. #define MAX_AUTH_PARAM_SIZE 296
  32. /**
  33. * @struct MACHdr_T
  34. * @brief MAC header of LAN interface packet.
  35. **/
  36. typedef struct
  37. {
  38. INT8U DestAddr [MAC_ADDR_LEN];
  39. INT8U SrcAddr [MAC_ADDR_LEN];
  40. } PACKED MACHdr_T;
  41. typedef union
  42. {
  43. /*IPv6 Header */
  44. struct
  45. {
  46. INT32U Hdr1;/* Version Class and Flow Lable*/
  47. INT16U Payload_Len;
  48. INT8U Nxt_Hdr;
  49. INT8U HOPLIMIT;
  50. INT8U Srcv6Addr [IP6_ADDR_LEN];
  51. INT8U Destv6Addr [IP6_ADDR_LEN];
  52. };
  53. /*IPv4 Header */
  54. struct
  55. {
  56. INT8U Ver_HdrLen;
  57. INT8U Prec_SerType;
  58. INT16U TotalLen;
  59. INT16U Id;
  60. INT16U Flags_FragOffset;
  61. INT8U TTL;
  62. INT8U Protocol;
  63. INT16U IPHdrChecksum;
  64. INT8U Srcv4Addr [IP_ADDR_LEN];
  65. INT8U Destv4Addr [IP_ADDR_LEN];
  66. };
  67. }PACKED IPHdr_T;
  68. /**
  69. * @struct UDPHdr_T
  70. * @brief UDP header of LAN interface packet.
  71. **/
  72. typedef struct
  73. {
  74. INT16U SrcPort;
  75. INT16U DestPort;
  76. INT16U UDPLen;
  77. INT16U UDPChecksum;
  78. } PACKED UDPHdr_T;
  79. /**
  80. * @struct LANRMCPPkt_T
  81. * @brief LAN RMCP packet format.
  82. **/
  83. typedef struct
  84. {
  85. MACHdr_T MACHdr;
  86. INT16U FrameType;
  87. IPHdr_T IPHdr;
  88. UDPHdr_T UDPHdr;
  89. RMCPHdr_T RMCPHdr;
  90. } PACKED LANRMCPPkt_T;
  91. /**
  92. * @struct LANARPData_T
  93. * @brief ARP Request/Reply
  94. **/
  95. typedef struct
  96. {
  97. INT16U HardType;
  98. INT16U ProtType;
  99. INT8U HardSize;
  100. INT8U ProtSize;
  101. INT16U Op;
  102. INT8U SenderMACAddr [MAC_ADDR_LEN];
  103. INT8U SenderIPAddr [IP_ADDR_LEN];
  104. INT8U TargetMACAddr [MAC_ADDR_LEN];
  105. INT8U TargetIPAddr [IP_ADDR_LEN];
  106. INT8U PAD [18];
  107. } PACKED LANARPData_T;
  108. /**
  109. * @struct LANARPPkt_T
  110. * @brief LAN ARP Packet
  111. **/
  112. typedef struct
  113. {
  114. MACHdr_T MACHdr;
  115. INT16U FrameType;
  116. LANARPData_T LANARPHdr;
  117. } PACKED LANARPPkt_T;
  118. /**
  119. * @struct UDPPseudoHdr_T
  120. * @brief UDP Pseudo header - used in udp checksum calculation.
  121. **/
  122. typedef struct
  123. {
  124. INT8U Protocol;
  125. INT8U SrcAddr [IP_ADDR_LEN];
  126. INT8U DestAddr [IP_ADDR_LEN];
  127. INT16U UDPLen;
  128. } PACKED UDPPseudoHdr_T;
  129. #pragma pack( )
  130. #endif /* IPMI_LANIFC_H */