EP1417568A1 - Automated upgrading of memory data structures - Google Patents
Automated upgrading of memory data structuresInfo
- Publication number
- EP1417568A1 EP1417568A1 EP02706226A EP02706226A EP1417568A1 EP 1417568 A1 EP1417568 A1 EP 1417568A1 EP 02706226 A EP02706226 A EP 02706226A EP 02706226 A EP02706226 A EP 02706226A EP 1417568 A1 EP1417568 A1 EP 1417568A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data structure
- release
- existing data
- memory
- configuration information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Definitions
- This invention relates generally to upgrading software products in a computing device and more particularly to automatically upgrading data structures residing in memory of a computing device.
- Network devices such as routers, bridges, switches, hubs and gateways are typically controlled by embedded systems.
- An embedded system may have an operating system but often it is simple enough to be written as a single program.
- this program is a special purpose application program which starts running as soon as the device is turned on.
- User-defined configuration information used by the special purpose application program is typically stored in non-volatile random access memory (NVRAM) or other nonvolatile memory such as read-only memory, flash memory, etc.
- NVRAM non-volatile random access memory
- the NVRAM may contain one or more data structures in which the configuration information resides. The problem arises when the special purpose application program is upgraded to a new release which uses a different data structure for storing the configuration information.
- the upgraded application program when the upgraded application program begins to run, it tries to find user-defined configuration parameters in the NVRAM using a new NVRAM layout. Since the NVRAM layout corresponds to an old release of the application program, the upgraded program fails to find the configuration information and configures the device using default configuration parameters provided by the vendor.
- a method and system for automatically upgrading memory data structures are described.
- a determination is made as to whether an existing data structure residing in the memory of a computing device corresponds to an old release of a software product. The determination is made using a release identifier located in the memory of the computing device. If the determination is positive, configuration information that is stored in the existing data structure is collected. Further, the existing data structure is changed to a new data structure associated with a new release of the software product, and the collected configuration information is loaded into the new data structure.
- Figure 1 is a block diagram of one embodiment of a processing system
- Figure 2 is a block diagram of a system for automatically upgrading memory data structures, according to one embodiment of the present invention
- Figure 3 is a flow diagram of a method for automatically upgrading memory data structures, according to one embodiment of the present invention.
- Figure 4 is a flow diagram of a method for loading configuration information into a memory data structure associated with a new release of a software product, according to one embodiment of the present invention.
- Figures 5A and 5B are flow diagrams of a method for automatically upgrading NVRAM data structures using a cookie, according to one embodiment of the present invention.
- the present invention also relates to apparatus for performing the operations herein.
- This apparatus may be specially constructed for the required purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus.
- FIG. 1 is a block diagram of one embodiment of a processing system 100.
- Processing system 100 can be any type of a computing device including personal computers, network devices, hand-held devices, etc.
- Processing system 100 includes a bus or other communications means 108 for communicating information, and a processing means such as processor 102 coupled with bus 108 for processing information.
- Processing system 100 further comprises main memory 104, static memory 106 and network interface device 122.
- Processor 102 can be any type of processor capable of executing software, such as a microprocessor, digital signal processor, microcontroller, or the like.
- Main memory 104 can be a hard disk, a floppy disk, random access memory (RAM), flash memory, or any other type of machine medium readable by processor 102.
- Main memory 104 can store instructions (i.e., software) 126 for performing the execution of the various method embodiments of the present invention described below.
- Software 126 may also reside, completely or partially, within the processor 102.
- Processing system 100 also comprises static memory 106 (e.g., , NVRAM, flash memory, etc.) coupled to bus 108 for storing static information.
- static information may include configuration information used by software 126.
- Network interface device 122 is coupled to bus 108 for connecting processing system 100 to private and /or public networks.
- Network interface device 122 may include a network interface card or other well known interface devices, such as those used for interfacing with Ethernet, Token-ring, or other types of networks.
- Software 126 may be transmitted or received via the network interface device 122 and stored on a computer-readable medium of any device described above.
- computer- readable medium shall be taken to include any medium that is capable of storing or encoding a sequence of instructions for execution by the machine and that causes the machine to perform any one of the methodologies of the present invention.
- the term “computer-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic disks, and carrier wave signals.
- the present invention relates to automatic upgrades of memory data structures.
- a memory data structure can store configuration information that is used by software to configure the computing device.
- Each release of the software may use a different data structure for storing the configuration information.
- the upgraded software fails to find the configuration information and configures the device using default configuration parameters provided by the vendor.
- the user needs to save the configuration information into a configuration file, bring the upgraded system up, and then load this configuration file onto the upgraded system. That is, the user needs to be present on the premises of the computing device (e.g., in a basement of an apartment building where a router is located) during the upgrade process.
- the present invention provides a mechanism for automatically upgrading memory data structures, without user intervention.
- FIG. 2 is a block diagram of a system 200 for automatically upgrading memory data structures, according to one embodiment of the present invention.
- System 200 includes memory 210 and an upgrade module 220.
- Memory 210 may be, NVRAM, flash memory or any other static memory device.
- Memory 210 includes one or more data structures for storing configuration information (e.g., general configuration setup parameters, network interface configuration parameters, etc.).
- Memory 210 also stores a release identifier 202 that indicates which release of a software program corresponds to data structure(s) 204.
- release identifier 202 is stored as a cookie.
- release identifier 202 is stored in a text file or any other form known in the art.
- a software program may be any program capable of configuring the computing device based on the configuration information stored in memory 210.
- the software program may be a boot program or a special purpose application program which may start running as soon as the device is turned on.
- Upgrade module 220 may be a part of this software program or an independent program.
- Upgrade module 220 includes a release calculator 212, a configuration collector 214 and a data structure updator 216.
- Release calculator 212 is responsible for determining whether data structure 204 corresponds to an old release of the software program: This determination is made based on release identifier 202.
- release calculator 212 reads release identifier 202 from a known location in memory 210 and searches an upgrade table 206 for matching data as will be described in greater detail below.
- upgrade table 206 is stored in memory 210.
- upgrade table 206 is hardcoded in upgrade module 220.
- configuration collector 214 collects the configuration information stored in data structure(s) 204.
- the configuration information is collected using an appropriate read configuration function as will be described in greater detail below.
- data structure updator 216 changes the existing data structure 204 to a new data structure associated with a new release of the software program.
- the new data structure stores default configuration parameters provided by the vendor.
- the system prior to changing the old data structure 204, the system is automatically rebooted to enable the reset of data structure 204 to default configuration.
- data structure updator 216 loads the collected configuration information into the new data structure.
- the new release of the software program can now configure the computing device according to the user-defined configuration parameters.
- the configuration information includes parameters (e.g., IP address) that will not take effect until the system is rebooted.
- the system is automatically rebooted after loading the configuration information into the new data structure.
- FIG. 3 is a flow diagram of a method 300 for automatically upgrading memory data structures, according to one embodiment of the present invention.
- Method 304 begins with determining that an existing data structure residing in the memory of a computing device corresponds to an old release of a software program (processing block 306). The determination is made using a release identifier stored in the memory.
- the memory may be NVRAM, ROM, flash memory, or any other static memory device.
- One or more data structures may reside in the memory to store configuration information.
- a common release identifier is used to determine whether the data structures need to be upgraded.
- each data structure is associated with a corresponding release identifier, and each release identifier is checked to determine whether this particular data structure corresponds to a new release.
- a release identifier also indicates whether the configuration information stored in the data structure has been updated defined by the user or contains default configuration parameters supplied by the vendor. If the data structure does not store any user-defined configuration information, no special upgrade procedure is needed.
- the configuration information stored in the existing data structure(s) is collected. In one embodiment, the configuration information is collected from all data structures. Alternatively, the configuration information is collected from a selected number of data structures based on release identifiers associated with each data structure. In one embodiment, the collected configuration information is saved into a textual configuration file. Alternatively, the collected configuration information is saved in binary form.
- a read configuration function is provided for each release of the software program. Based on the release identifier, an appropriate read configuration function is selected and performed to collect the configuration information.
- the existing data structure is changed to a new data structure with default configuration parameters.
- the existing data structure is reset to the default configuration in response to the system reboot that is performed automatically after the configuration information is collected.
- the collected configuration information is loaded into the new data structure.
- all the configuration information is loaded.
- configuration parameters are loaded only if a determination is made that the use of these configuration parameters is more beneficial then the use of corresponding default parameters. This embodiment will be described in greater detail below in conjunction with Figure 4.
- the system may be automatically rebooted if necessary for the configuration information to take effect.
- memory data structures are upgraded automatically, allowing the user to upgrade a software program from a remote location.
- Figure 4 is a flow diagram of a method 400 for loading configuration information into a memory data structure associated with a new release of a software program, according to one embodiment of the present invention.
- user-defined configuration parameters contained in the configuration information collected at processing block 308 of Figure 3 are analyzed.
- one or more user-defined parameters that are less beneficial for use with a new release of a software program than corresponding default configuration parameters are identified.
- all user-defined configuration parameters, except the parameters identified at processing block 406, are loaded into a new memory data structure associated with the new release of the software program.
- processing block 410 the user is notified that certain user-defined configuration parameters will not be used with the new release unless the user specifically requests to keep these configuration parameters. In one embodiment, the user is informed that the use of these configuration parameters is less beneficial than the use of corresponding default configuration parameters.
- FIGS 5A and 5B are flow diagrams of a method 500 for automatically upgrading memory data structures in a network device using a cookie, according to one embodiment of the present invention.
- a network device e.g., a router, a bridge, a switch, a hub, a gateway, etc.
- configuration information is stored in NVRAM data structures. This configuration information is read by a special purpose application program which may start running as soon as the network device is turned on.
- a cookie is stored in the NVRAM to indicate which release of the application program is associated with the data structures residing in the NVRAM.
- method 500 is performed once to upgrade the entire set of NVRAM data structures.
- each NVRAM data structure is associated with a separate cookie which includes a release identifier associated with this data structure and indicates whether this data structure contains user-defined configuration parameters or default configuration parameters supplied by the vendor.
- a new release of the application program may use entirely different data structures. Alternatively, the new release may use some data structures from an old release.
- method 500 is performed (concurrently or consecutively) for each data structure that differs from a prior release and contains user-defined configuration parameters.
- Method 500 begins with booting the network device (processing block 504) and initializing the hardware (processing block 506). Then, a cookie value that represents a release identifier is read from a known offset location in the NVRAM (processing block 508) and a determination is made as to whether the cookie value corresponds to a new release of the application program (decision box 510). If the determination is positive, then no upgrade of NVRAM data structures is needed and the booting process continues in a usual manner (processing block 532). Alternatively, if the determination made at decision box 510 is negative, a further determination is made as to whether the cookie value corresponds to one of prior releases (decision box 512). In one embodiment, the determination is made using an upgrade table which contains cookie values of all prior releases.
- the upgrade table contains pointers to a read configuration function and a save configuration function that are associated with this particular release of the application program.
- the read configuration function is performed to collect the configuration information stored in the NVRAM data structure(s).
- the save configuration function is performed to save the configuration information into a configuration file.
- the configuration file is a text file that is stored in the file system and can subsequently be used by the user to update configuration parameters of the network device.
- the name of the configuration file is "cookie Value”. cnf where "cookie Value” is an ASCII to text translation of the NVRAM cookie value.
- an operation indicating that the existing data structure is ready to be updated is performed.
- this operation is a boolean logic NOT operation performed on the cookie value that results in flipping the bits of the cookie value.
- the resulting value is stored in the known offset location in the NVRAM, replacing the initial cookie value.
- any other operation can be performed to provide an indication that the configuration information has been already collected.
- the network device is automatically rebooted, and then blocks 506 through 512 are repeated. This time a determination made at decision box 512 should be negative because the bits of the cookie value have been flipped. Further, at processing block 520, the bits of the cookie value are flipped again to return to their initial values. If the resulting cookie value corresponds to any prior release (decision box 522), then the existing NVRAM data structure is changed to the default configuration of the new release of the application program (processing block 524) and the file system is searched for the configuration file (processing block 525).
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US911593 | 1997-08-14 | ||
US91159301A | 2001-07-23 | 2001-07-23 | |
PCT/US2002/003935 WO2003010661A1 (en) | 2001-07-23 | 2002-02-06 | Automated upgrading of memory data structures |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1417568A1 true EP1417568A1 (en) | 2004-05-12 |
Family
ID=25430521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02706226A Withdrawn EP1417568A1 (en) | 2001-07-23 | 2002-02-06 | Automated upgrading of memory data structures |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP1417568A1 (en) |
CA (1) | CA2454788A1 (en) |
WO (1) | WO2003010661A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100388678C (en) * | 2004-11-29 | 2008-05-14 | 中兴通讯股份有限公司 | Method for Automatically Obtaining Software and Hardware Versions of Telecom Transmission System Units |
WO2011144104A2 (en) * | 2011-05-27 | 2011-11-24 | 华为技术有限公司 | Method, apparatus and optical module for software upgrade |
CN102622246A (en) * | 2012-02-27 | 2012-08-01 | 神州数码国信信息技术(苏州)有限公司 | Automatic software upgrading method |
US10768819B2 (en) * | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
CN114531354B (en) * | 2022-04-22 | 2022-08-23 | 北京金山云网络技术有限公司 | Cluster upgrading method and device, cluster controller and server |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5528490A (en) * | 1992-04-10 | 1996-06-18 | Charles E. Hill & Associates, Inc. | Electronic catalog system and method |
US5764992A (en) * | 1995-06-06 | 1998-06-09 | Apple Computer, Inc. | Method and apparatus for automatic software replacement |
US5822581A (en) * | 1995-09-29 | 1998-10-13 | Intel Corporation | Method for CMOS configuration information storage and retrieval in flash |
US5867714A (en) * | 1996-10-31 | 1999-02-02 | Ncr Corporation | System and method for distributing configuration-dependent software revisions to a computer system |
TW325551B (en) * | 1997-01-04 | 1998-01-21 | Inventec Corp | Auto switching memory space method capable of judging if there is updated version stored in memory circuit to automatically select program stored in ROM or memory circuit as execution stating location |
-
2002
- 2002-02-06 CA CA002454788A patent/CA2454788A1/en not_active Abandoned
- 2002-02-06 WO PCT/US2002/003935 patent/WO2003010661A1/en not_active Application Discontinuation
- 2002-02-06 EP EP02706226A patent/EP1417568A1/en not_active Withdrawn
Non-Patent Citations (1)
Title |
---|
See references of WO03010661A1 * |
Also Published As
Publication number | Publication date |
---|---|
CA2454788A1 (en) | 2003-02-06 |
WO2003010661A1 (en) | 2003-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7743242B2 (en) | Method and system for automatic generation of operating system boot images | |
US6732267B1 (en) | System and method for performing remote BIOS updates | |
US6453469B1 (en) | Method and apparatus to automatically deinstall an application module when not functioning | |
US7694165B2 (en) | Automation of bare metal recoveries | |
US7073053B1 (en) | Method and apparatus for a boot progression scheme for reliably initializing a system | |
US7934213B2 (en) | Device driver rollback | |
US20090307475A1 (en) | Method and apparatus for performing multiple computer bootups in minimal mode | |
EP1631905B1 (en) | Dynamic bios execution and concurrent update for a blade server | |
CN112631625A (en) | System upgrading method and device of embedded equipment and embedded equipment | |
US6715043B1 (en) | Method and system for providing memory-based device emulation | |
US8683458B2 (en) | Automatic full install upgrade of a network appliance | |
US7269722B1 (en) | Preview of UNIX boot process from multi-user level | |
EP3843361A1 (en) | Resource configuration method and apparatus, and storage medium | |
CN118642763B (en) | Method and device for controlling starting of server, storage medium and electronic equipment | |
WO2003010661A1 (en) | Automated upgrading of memory data structures | |
CN103455750A (en) | High-security verification method and high-security verification system for embedded devices | |
CN118377515A (en) | Microcode upgrading method and server | |
US20240020103A1 (en) | Parallelizing data processing unit provisioning | |
US20070028228A1 (en) | Software upgrades with user advisement | |
CN115904450A (en) | Embedded device firmware upgrade device and method, embedded device, storage medium | |
US20230236819A1 (en) | Application status reporting via platform binary tables | |
KR100429903B1 (en) | Method for updating images in home gateway system | |
CN114661367B (en) | Method, device, equipment and medium for installing operating system in IPv6 environment | |
US12014185B2 (en) | Unified boot image for multiple operating systems | |
US20230350755A1 (en) | Coordinated operating system rollback |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20040126 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR |
|
AX | Request for extension of the european patent |
Extension state: AL LT LV MK RO SI |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1062601 Country of ref document: HK |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20050901 |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1062601 Country of ref document: HK |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230520 |