diff --git a/libpldm/utils.h b/libpldm/utils.h
index df5b62a..1e15e18 100644
--- a/libpldm/utils.h
+++ b/libpldm/utils.h
@@ -10,6 +10,15 @@
 #include <stddef.h>
 #include <stdint.h>
 
+/** @struct variable_field
+ *
+ *  Structure representing variable filed in the pldm message
+ */
+struct variable_field {
+	const uint8_t *ptr;
+	size_t length;
+};
+
 /** @brief Compute Crc8(same as the one used by SMBUS)
  *
  *  @param[in] data - Pointer to the target data
@@ -35,37 +44,37 @@
  */
 int ver2str(const ver32_t *version, char *buffer, size_t buffer_size);
 
-/** @breif Convert bcd number(uint8_t) to decimal
+/** @brief Convert bcd number(uint8_t) to decimal
  *  @param[in] bcd - bcd number
  *  @return the decimal number
  */
 uint8_t bcd2dec8(uint8_t bcd);
 
-/** @breif Convert decimal number(uint8_t) to bcd
+/** @brief Convert decimal number(uint8_t) to bcd
  *  @param[in] dec - decimal number
  *  @return the bcd number
  */
 uint8_t dec2bcd8(uint8_t dec);
 
-/** @breif Convert bcd number(uint16_t) to decimal
+/** @brief Convert bcd number(uint16_t) to decimal
  *  @param[in] bcd - bcd number
  *  @return the decimal number
  */
 uint16_t bcd2dec16(uint16_t bcd);
 
-/** @breif Convert decimal number(uint16_t) to bcd
+/** @brief Convert decimal number(uint16_t) to bcd
  *  @param[in] dec - decimal number
  *  @return the bcd number
  */
 uint16_t dec2bcd16(uint16_t dec);
 
-/** @breif Convert bcd number(uint32_t) to decimal
+/** @brief Convert bcd number(uint32_t) to decimal
  *  @param[in] bcd - bcd number
  *  @return the decimal number
  */
 uint32_t bcd2dec32(uint32_t bcd);
 
-/** @breif Convert decimal number(uint32_t) to bcd
+/** @brief Convert decimal number(uint32_t) to bcd
  *  @param[in] dec - decimal number
  *  @return the bcd number
  */
