+/** Adds the given attribute ID and value to the reponse buffer, and advances the response buffer pointer past the added data.
+ *
+ *  \param[in] AttributeID          Attribute ID to add to the response buffer
+ *  \param[in] AttributeValue       Pointer to the start of the Attribute's value, located in PROGMEM
+ *  \param[in, out] ResponseBuffer  Pointer to a buffer where the Attribute and Attribute Value is to be added
+ *
+ *  \return Number of bytes added to the response buffer
+ */
+static uint16_t SDP_AddAttributeToResponse(const uint16_t AttributeID, const void* AttributeValue, void** ResponseBuffer)
+{
+       /* Retrieve the size of the attribute value from its container header */
+       uint8_t  AttributeHeaderLength;
+       uint32_t AttributeValueLength = SDP_GetLocalAttributeContainerSize(AttributeValue, &AttributeHeaderLength);
+
+       /* Add a Data Element header to the response for the Attribute ID */
+       *((uint8_t*)*ResponseBuffer) = (SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_16Bit);
+       *ResponseBuffer += sizeof(uint8_t);
+       
+       /* Add the Attribute ID to the created Data Element */
+       *((uint16_t*)*ResponseBuffer) = AttributeID;
+       *ResponseBuffer += sizeof(uint16_t);
+       
+       /* Copy over the Attribute value Data Element container to the response */
+       memcpy_P(*ResponseBuffer, AttributeValue, AttributeHeaderLength + AttributeValueLength);
+       *ResponseBuffer += AttributeHeaderLength + AttributeValueLength;
+       
+       return (sizeof(uint8_t) + sizeof(uint16_t) + AttributeHeaderLength + AttributeValueLength);
+}
+