IP Library › Granted Patent US 11,137,992
Granted Patent B2
US 11,137,992 · App. 16/432,820 · Granted Oct 5, 2021

Framework for checking the compatibility of new software images

Inventors: Mohammad Arif (Surrey, CA); Adam Calabrigo (San Jose, CA); Aaron Payment (Coquitlam, CA)
Assignee: Arista Networks, Inc.
G06F8/63G06F8/71G06F9/44589
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,137,992
App. No.
16/432,820
Granted
Oct 5, 2021
Kind
B2
Abstract

A framework for checking the compatibility of new software images to be installed on network devices is provided. In one set of embodiments, a network device running a first software image can receive, from a user, a command to install a second software image onto the network device in place of the first software image. Prior to installing the second software image, the network device can extract code for a compatibility check from a location within the second software image. The network device can then execute the code for the compatibility check and present a result value indicating a result of the compatibility check to the user.

Claims (56)

1. A method comprising:

receiving, by an agent on a network device running a first software image, a command from a user to install a second software image onto the network device in place of the first software image, wherein the agent invokes an interface function and the command specifies a category;

locating the second software image; and

prior to installing the second software image onto the network device:

selecting compatibility checks to be performed during an installation type associated with the category, wherein the compatibility checks are selected from a plurality of compatibility checks and the plurality of compatibility checks are within the second software image;

extracting, by the interface function, code for the selected compatibility checks from a predetermined location in the second software image, the compatibility checks comprising logic for determining whether the second software image can be successfully installed onto the network device based on one or more criteria;

for each compatibility check of the selected compatibility checks:

executing, by the interface function, the code for the compatibility check, the code for the compatibility check being structured according to a standardized format for the interface function; and

storing, by the network device, a result value indicating a result of the compatibility check; and

providing, by the network device, the stored result values to the user.

2. The method of claim 1 further comprising:

determining, based on the result value, whether to proceed with the installing of the second software image onto the network device.

3. The method of claim 1 wherein the one or more criteria include a characteristic of the second software image.

4. The method of claim 3 wherein the one or more criteria further include a characteristic of the first software image.

5. The method of claim 3 wherein the one or more criteria further include a characteristic of a hardware component of the network device.

6. The method of claim 1 wherein the result value includes a compatibility success indicator indicating that the compatibility check was successful, a compatibility failure indicator indicating that the compatibility check was unsuccessful, or an incomplete indicator indicating that the compatibility check could not be completed.

7. The method of claim 6 wherein the result value further includes a non-blocking warning or a blocking error generated by the executing.

8. The method of claim 1 wherein another compatibility check of the plurality of compatibility checks is not selected based on the category.

9. The method of claim 1 wherein the category indicates at least one of a regular upgrade process, an accelerated upgrade process, or a hitless upgrade process.

10. The method of claim 1 wherein the category is a first category-associated with a cold reboot of the network device, a second category associated with a warm reboot of the network device, or a third category associated with minimized downtime of the network device.

11. The method of claim 1 further comprising:

verifying the second software image using a digital signature.

12. The method of claim 1 further comprising:

storing, the extracted code for the selected compatibility checks in a temporary directory on the network device; and

loading the code for the compatibility check in a memory of the network device, wherein the command further specifies a storage location of the second software image.

13. A network device comprising:

a processor; and

a memory having stored thereon program code that, when executed by the processor, causes the processor to:

run a first software image;

while running the first software image, receive, by an agent on the network device, a command from a user to install a second software image onto the network device in place of the first software image, wherein the agent invokes an interface function and the command specifies a category;

locate the second software image; and

prior to installing the second software image onto the network device:

select compatibility checks to be performed during an installation type associated with the category, wherein the compatibility checks are selected from a plurality of compatibility checks and the plurality of compatibility checks are within the second software image;

extract, by the interface function, code for the selected compatibility checks from a predetermined location in the second software image, the compatibility checks comprising logic for determining whether the second software image can be successfully installed on the network device based on one or more criteria;

for each compatibility check of the selected compatibility checks:

execute, by the interface function, the code for the compatibility check, the code for the compatibility check being structured according to a standardized format for the interface function; and

store a result value indicating a result of the compatibility check; and

based on stored result values generated by the code for the selected compatibility checks, determine whether to proceed with installing of the second software image onto the network device.

14. The network device of claim 13 wherein the processor determines that the second software image should not be installed onto the network device if the result value includes a blocking error or a compatibility failure indicator.

15. A non-transitory computer readable storage medium have stored thereon program code for a first software image executable by a network device, the program code comprising:

code that causes an agent on the network device to receive a command from a user to install a second software image onto the network device, wherein the agent invokes an interface function and the command specifies a category;

code that causes the network device to locate the second software image;

code that causes the network device to, prior to installing the second software image onto the network device:

select compatibility checks to be performed during, an installation type associated with the category, wherein the compatibility checks are selected from a plurality of compatibility checks and the plurality of compatibility checks are within the second software image;

extract, by the interface function, code for the selected compatibility checks from a predetermined location in the second software image, the compatibility checks comprising logic for determining whether the second software image can be successfully installed onto the network device based on one or more criteria;

for each compatibility check of the selected compatibility checks:

execute, by the interface function, the code for the compatibility check; and

store a result value indicating a result of the compatibility check, the code for the compatibility check being structured according to a standardized format for the interface function; and

provide the stored result values to the user.

16. The non-transitory computer readable storage medium of claim 15 wherein the program code further comprises:

code that causes the network device to deter nine a version number of the second software image.

17. The non-transitory computer readable storage medium of claim 16 wherein the program code further comprises:

code that causes the network device to match the version number to an entry in a data dictionary; and

code that causes the network device to perform an action defined in the matched entry.

18. The non-transitory computer readable storage medium of claim 17 wherein the action causes the network device to block or override all compatibility checks defined within the second software image.

19. The non-transitory computer readable storage medium of claim 15 wherein the one or more criteria include a criterion that was not defined in the first software image.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2019
From: ARIF, MOHAMMAD; CALABRIGO, ADAM; PAYMENT, AARON
To: ARISTA NETWORKS, INC.
Reel/Frame 049384/0866 →
Continuity (1)
Related Publication 20200387365A1 · Dec 10, 2020
Cited By (2)
US 12,536,640 US 12,549,435