Serial numbers abound when building devices. While individual boards and sub-assemblies may have serial numbers, the serial number that typically matters the most is the serial number assigned to the device as a whole. This is typically the key identifier of the device across many different perspectives, ranging from ownership, accounting, and depreciation to identity in device management. Serial numbers are commonly assigned during manufacturing, affixed to the physical device, and programmed into it. This allows the serial number to be identified externally and internally by software running on the device. For small devices, the serial number is inseparable from the device itself. These devices are typically not field-serviceable, so the only opportunity for the serial number label to get out of sync with the programmed serial number is during re-manufacturing, which is a controlled environment. However, larger devices are typically serviced in the field where internal parts, including the main processor board, can be replaced. In this case, there can be challenges in restoring the serial number in software so that it matches the physical label on the device. This can significantly impact device identity, causing equipment in device management to appear as new devices, duplicate devices, or even devices owned by other organizations. This means that while serial numbers are simple in concept, they can have an oversized impact when they aren’t correct in software. Serial numbers are critical to device management, and KOS provides several features designed to overcome serial number-related problems.
Serial number provider
Within KOS, managing a device serial number is abstracted and a pluggable component. This means that serial numbers can be managed by any standard number of methods or by a completely custom implementation. In some implementations, it’s possible that serial number data is not always available at boot time. For example, an external device may provide the serial number that may need to undergo a firmware update before it can be accessed. Similarly, the serial number may be stored on an EEPROM connected to the chassis, which may not be connected or broken. KOS provides lifecycle events for serial numbers, allowing services that depend on serial numbers to be notified once the serial number becomes available. Similarly, KOS provides a standard mechanism to set the serial number of the device regardless of the implementation of the serial number provider, simplifying provisioning and manufacturing processes.
Critical data service
For devices that rely on local disk storage for serial number storage, replacing the entire board effectively makes the serial number recovery impossible. However, if the device contains additional hardware with small amounts of available storage, on the order of 100-200 bytes, there is a service in KOS that can distribute critical data such as serial number across these small blocks of storage such that it can be recovered even when individual boards are swapped. KOS’s critical data service provides the ability to synchronize small amounts of data across multiple storage sources and implements a voting algorithm that allows for this data to be recovered. By using the critical data serial number provider, the serial number automatically leverages this infrastructure to provide a robust and transparent serial number recovery mechanism.
