Network Node Firmware Update via Blob Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network node firmware update methods face challenges in maintaining compatibility and efficient memory usage during Over The Air (OTA) upgrades, particularly when multiple blobs need to be updated simultaneously, which can lead to reboot issues and memory constraints.
Innovation Solution
The solution involves dividing firmware into binary large objects (blobs) with associated versions, generating a compatibility tree to determine a blob upgrade order, and upgrading each blob sequentially, with the client node restarting after each upgrade, while ensuring all blobs remain compatible and aborting the process if simultaneous upgrades are required.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple blobs are updated simultaneously during firmware upgrade, then the upgrade process is faster, but memory constraints are violated and reboot issues occur
Solution Approach 1:
The firmware update process is segmented into individual blob updates executed sequentially rather than simultaneously. Each blob is updated, validated, and tested independently before proceeding to the next blob, ensuring system stability while maintaining upgrade functionality.
Solution Approach 2:
The system performs preliminary actions by downloading and validating all blob files into non-volatile memory before executing any updates. The compatibility tree is constructed in advance, and the upgrade sequence is determined beforehand, ensuring that all prerequisites are met before the actual update process begins.
2Device complexity
If all blobs are updated at once, then the upgrade process is simpler, but memory usage exceeds available non-volatile memory capacity
Solution Approach 1:
The update process is divided into discrete segments corresponding to individual blobs. Each blob is processed separately through download, validation, and update stages, allowing memory management to operate within available capacity constraints while maintaining a manageable process structure.
Solution Approach 2:
The system downloads blob files to temporary storage in non-volatile memory, processes them, and then discards the temporary copies after successful validation. This approach allows the system to handle large firmware updates without permanently increasing memory usage beyond available capacity.
3Productivity
If blob updates are performed without compatibility verification, then the upgrade process is faster, but system compatibility is compromised
Solution Approach 1:
The system performs preliminary compatibility verification by constructing a compatibility tree that checks all blob version relationships before the update process begins. This preliminary action ensures that all blobs are compatible with each other, preventing future system failures while allowing the actual update execution to proceed efficiently.
Solution Approach 2:
The system implements feedback mechanisms by validating each blob's compatibility with existing blobs during the update process. If compatibility issues are detected, the system provides feedback to abort the update, ensuring system integrity while allowing valid updates to proceed.
Data Source
AI summary
An apparatus and method for updating the firmware version in a network node is described. The firmware is divided into a plurality of blobs, each blob having an associated blob version. Each blob version is associated with a firmware version. The method includes receiving notification from a client server network node of an updated version of a first blob and the compatible versions of the remaining blobs. A blob upgrade order is determined from the first blob updated version, the remaining blobs compatible versions, and the remaining blobs current versions. Each blob is upgraded in the blob upgrade order. The client is restarted after each blob upgrade.


