# US 10,372,437 B2 · Methods and apparatus for performing in-service software upgrading for a network device using system virtualization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,437 B2
- Document ID: US10372437B2
- Status: Granted
- Kind: B2
- Application number: 15/799,825
- Filed: 2017-10-31
- Published: 2018-02-22
- Granted: 2019-08-06
- Earliest claimed: 2012-06-18
- Assignees: Tellabs Operations, Inc.
- Applicants: Tellabs Operations, Inc.
- Inventors: Chakravarthi S. Chigurapati; Pawan Uberoy; Somnath Mani; Praveen Madhav; Duncan Stuart Ritchie; Sebastian Sapa
- Web page: https://patentgrep.com/patent/US10372437B2

## CPC

- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 8/656: while running
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- H04L 41/082: the condition being updates or upgrades of network functionality
- H04W 24/02: Arrangements for optimising operational condition
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A method and/or network system is able to perform an in-service software upgrade (“ISSU”) using virtualization technology while ongoing network service is maintained. After receipt of an upgrade signal such as a command of software upgrade, a new or second virtual machine (“VM”) is created in response to the upgrade signal. After downloading the new version of program to the second VM while maintaining the first version of program running on the first VM, the process for providing network management begins to migrate from the first version of program to the new version of program. The process simultaneously facilitates ISSU for a data-path module such as a line card to convert from the previous version of software to the new version of the software.

## Claims

### Claim 1

A method of modifying software via virtual machines (“VMs”) to a line card of a network device facilitated by a network processing card (“NPC”), comprising:
receiving a software upgrade command on a control card;
maintaining a first version of data structure containing a first data portion and a first metadata portion in a first VM, wherein maintaining the first version of data structure further includes maintaining first type region, first length region, and first offset region of the first metadata portion;
generating a second version of data structure containing a second data portion and a second metadata portion in a second VM in response to the software upgrade commend, wherein generating the second version of data structure includes creating a second type region, a second length region, and a second offset region of the second metadata portion;
activating a second version 2 (“V2”) in-service software upgrade (“ISSU”) manager for the NPC, and a V2 ISSU proxy for the line card;
activating the second VM on the NPC in response to the software upgrade signal while a first version 1 (“V1”) ISSU manage continuing providing network service based on V1 software operating in the first VM running on the NPC;
downloading new version software onto the second VM; and
switching over from the V1 software to the new version software for all nodes and obtaining checkpoint files for synchronizing execution state between the first VM and the second VM in accordance with information contained in checkpoint files.

### Claim 2 (depends on 1)

The method of claim 1, wherein generating a second version of data structure includes establishing a data structure containing a value field for identifying data, a length field for indicating number of bits representing identified data, and an offset field for indicating a starting bit location associated with the identified data.

### Claim 3 (depends on 1)

The method of claim 1, wherein generating a second version of data structure includes activating the ISSU manager and a virtual machine manager (“VMM”) to allow the second VM running concurrently with the first VM on the network device.

### Claim 4 (depends on 1)

The method of claim 1, wherein switching over from the V1 software to the new version software includes gradually transitioning hardware resource from the first VM to the second VM in accordance with a predefined resource allocation schedule.

### Claim 5 (depends on 1)

The method of claim 1, wherein the activating a V2 ISSU manager further includes activating a plurality of ISSU proxies for a plurality of LCs for synchronizing version transition between new version of microcode and old version of microcode.

### Claim 6 (depends on 1)

The method of claim 1, wherein the activating a V2 ISSU manager includes creating a new VM running on a network device in response to a program modification signal.

### Claim 7 (depends on 1)

The method of claim 1, wherein the activating a V2 ISSU manager includes building a second database having a second data structure in the new VM in accordance with requirements relating to a new version of software.

### Claim 8 (depends on 1)

The method of claim 1, wherein the activating a V2 ISSU manager includes accessing a first database having a first data structure in a first VM based on current version of software while the second database is being built.

### Claim 9 (depends on 1)

The method of claim 1, wherein the activating a V2 ISSU manager includes switching over from accessing the first database having the first data structure hosted by the first VM to the second database having the second data structure hosted by the second VM when a switchover command is received.

### Claim 10

An apparatus for network communication able to modify software via virtual machines (“VMs”) to a line card of a network device facilitated by a network processing card (“NPC”), comprising:
central processing unit (“CPU”) connected to a storage memory via buses;
a component of the NPC operable to receive a software upgrade command;
a first VM of the NPC configured to maintain a first version of data structure which includes first data, first metadata, first type region, first length region, and first offset region of the first metadata;
a second VM of the NPC configured to generate a second version of data structure which includes second data, second metadata, second type region, second length region, and a second offset region of the second metadata in response to the software upgrade commend;
a version 2 (“V2”) in-service software upgrade (“ISSU”) manager of the NPC configured to activate a V2 ISSU proxy for the line card; and
a VM manager of the NPC configured to facilitate activating the second VM in response to the software upgrade signal while a version 1 (“V1”) ISSU manager continuing providing network service based on V1 software operating in the first VM, wherein the VM manager, upon downloading new version software onto the second VM, facilitates to switch network service from the V1 software to the new version software for all nodes, wherein the VM manager is able to obtain checkpoint files for synchronizing execution state between the first VM and the second VM in accordance with information in the checkpoint files.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein the second version of data structure includes a value field for identifying data, a length field for indicating number of bits representing identified data, and an offset field for indicating a starting bit location associated with the identified data.

### Claim 12 (depends on 10)

The apparatus of claim 10, wherein the second version of data structure is managed by the ISSU manager.

### Claim 13 (depends on 10)

The apparatus of claim 10, wherein the NPC includes a virtual machine manager (“VMM”) configured to facilitate running the second VM concurrently with the first VM on the network device.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein the VMM is configured to gradually transitioning hardware resource from the first VM to the second VM in accordance with a predefined resource allocation schedule.

### Claim 15 (depends on 10)

The apparatus of claim 10, wherein the V2 ISSU manager is capable of activating a plurality of ISSU proxies for a plurality of LCs for synchronizing version transition between new version of microcode and old version of microcode.

### Claim 16 (depends on 10)

The apparatus of claim 10, wherein the V2 ISSU manager is capable of creating a new VM running on a network device in response to a program modification signal.

### Claim 17 (depends on 10)

The apparatus of claim 10, wherein the V2 ISSU manager is capable of accessing a first database having a first data structure in a first VM based on current version of software while the second database is being built.

### Claim 18 (depends on 10)

The apparatus of claim 10, wherein the V2 ISSU manager is capable of switching network service from accessing the first database having the first data structure hosted by the first VM to the second database having the second data structure hosted by the second VM when a switchover command is received.
