+// This function is a "weak symbol": if it is defined anywhere else, that symbol will take precedence at link time
+// In practice we provide a sensible default implementation that users can override
+__weak void construct_dhcp_clientid(unsigned int hw_addr, unsigned int ipmb_addr, unsigned int site_number, unsigned int site_type, const char *shelf_addr) {
+__weak void construct_dhcp_clientid(unsigned int hw_addr, const char *ipmb_addr, unsigned int site_number, unsigned int site_type, const char *shelf_addr) {