IP Library Granted Patent US 7,307,979
Granted Patent B2
US 7,307,979 · App. 10/210,414 · Granted Dec 11, 2007

Configuration rollback

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 7,307,979
App. No.
10/210,414
Granted
Dec 11, 2007
Kind
B2
Abstract

A router rolls back a current running configuration to a selected prior running configuration without requiring interruption or reinitialization of the router or of its network connections. The router retrieves command line interface control settings associated with the selected prior running configuration and those associated with the current running configuration. The router then generates and executes a rollback script based on the difference between the prior control settings and the current control settings.

Claims (58)

1. A method of rolling back a current running configuration of a router having a command line interface to a selected prior running configuration of said router without requiring interruption or reinitialization of said router or of its network connections, said method comprising the steps of:

retrieving first control settings of said router associated with said selected prior running configuration;

retrieving second control settings of said router associated with said current running configuration;

generating a rollback script including a difference operation based on a difference between said first control settings and said second control settings; and

executing said rollback script, the execution implemented as an operating system process without rebooting the router or interrupting its operation, which spawns a shell script process in the operating system to perform the difference operation on the running configuration.

2. The method of claim 1 wherein said first control settings comprise at least one first text line of configuration commands at said command line interface and wherein said second control settings comprise at least one second text line of configuration commands at said command line interface.

3. The method of claim 2 wherein said at least one first text line of configuration commands comprises at least one first level-specific configuration command and at least one first level-command, such that said at least one first level-specific configuration command is accessed from a first configuration level, said first configuration level being entered by execution of one of said at least one first level-commands.

4. The method of claim 3 wherein said at least one second text line of configuration commands comprises at least one second level-specific configuration command and at least one second level-command, such that said at least one second level-specific configuration command is accessed from a second configuration level, said second configuration level being entered by execution of one of said at least one second level-commands.

5. The method of claim 1 implemented in a medium selected from the group consisting of hardware and software, as said operating system process, which spawns a shell script process in the operating system to perform the difference operation on the running configuration.

6. The method of claim 5 wherein said method utilizes a parser.

7. The method of claim 1 wherein said operating system process includes

a) a command that provides an ability to display to a user CLI commands that would be executed as a result of a rollback operation;

b) commands that provide an ability to force an automatic router configuration rollback after a specified time interval, unless said user enters a command to stop said automatic rollback; and

c) commands that provide said user an ability to create, delete or display saved rollback configuration files.

8. The method of claim 1 wherein said operating system process includes:

a) an operating system process, which spawns a shell script process in the operating system to perform the difference operation on the running configuration;

b) a command that provides an ability to display to a user CLI commands that would be executed as a result of a rollback operation;

c) commands that provide an ability to force an automatic router configuration rollback after a specified time interval, unless said user enters a command to stop said automatic rollback; and

d) commands that provide said user an ability to create, delete or display saved rollback configuration files.

9. A method of rolling back a current running configuration of a router having a command line interface to a selected prior running configuration of said router without requiring interruption or reinitialization of said router or of its network connections, said method comprising the steps of:

retrieving first control settings of said router associated with said selected prior running configuration;

retrieving second control settings of said router associated with said current running configuration;

generating a rollback script based on a difference between said first control settings and said second control settings; and

executing said rollback script,

wherein said step of generating further comprises the steps of

transforming said first control settings, such that each of said at least one first text lines of configuration commands is rewritten into a format wherein each of said first level-specific configuration commands is prepended in the same line of text with a delimiter, which is prepended in the same line of text with said first level-command for entering said first configuration level from which said first level-specific configuration command is accessed, wherein each said first text line comprising a configuration command without a level-command is prepended in said first text line with said delimiter, which is prepended with a base-command-level command, transforming said second control settings, such that each of said at least one second text lines of configuration commands is rewritten into a format wherein each of said second level-specific configuration commands is prepended in the same line of text with a delimiter, which is prepended in the same line of text with said second level-command for entering said second configuration level from which said second level-specific configuration command is accessed, wherein each said second text line comprising a configuration command without a level-command is prepended in said second text line with said delimiter, which is prepended with a base-command-level command, storing in sequence in a first file any of said lines of text that are present in said transformed first control settings but are not present in said transformed second control settings, storing in sequence in a second file any of said lines of text that are present in said transformed second control settings but are not present in said transformed first control settings, discarding any of said lines of text that are present in both said transformed first control settings and said transformed second control settings, in all of said lines of text in said second file, converting any positive configuration commands into negative configuration commands and converting any negative configuration commands into positive configuration commands, reversing the sequence of all of said lines of text in said second file, appending all of said lines of text in said first file in sequence to said reversed sequence lines of text in said second file, and transforming the result of said appending into the original format of said control settings;

and wherein said at least one first text line of configuration commands comprises at least one first level-specific configuration command and at least one first level-command, such that said at least one first level-specific configuration command is accessed from a first configuration level, said first configuration level being entered by execution of one of said at least one first level-commands;

and wherein said at least one second text line of configuration commands comprises at least one second level-specific configuration command and at least one second level-command, such that said at least one second level-specific configuration command is accessed from a second configuration level, said second configuration level being entered by execution of one of said at least one second level-commands.

10. A network including a router, said router operable to roll back a current running configuration to a selected prior running configuration of said router without requiring interruption or reinitialization of said router or of said router's network connections, said router comprising

a data plane including data interfaces;

a control plane comprising a command line interface; and

connections to peer network routers, said connections coupled with said data interfaces, said router operable to retrieve first control settings of said router associated with said selected prior running configuration, retrieve second control settings of said router associated with said current running configuration, generate a rollback script including a difference operation based on a difference between said first control settings and said second control settings, and execute said rollback script without rebooting the router or interrupting its operation, the execution implemented as an operating system process, which spawns a shell script process in the operating system to perform the difference operation on the running configuration.

11. The network of claim 10 wherein said router includes a processor operable to run routing software.

12. The network of claim 10 wherein said operating system process includes

a) a command that provides an ability to display to a user CLI commands that would be executed as a result of a rollback operation;

b) commands that provide an ability to force an automatic router configuration rollback after a specified time interval, unless said user enters a command to stop said automatic rollback; and

c) commands that provide said user an ability to create, delete or display saved rollback configuration files.

13. The network of claim 10 wherein said router includes a parser.

14. The network of claim 10 wherein said first control settings comprise at least one first text line of configuration commands at said command line interface and wherein said second control settings comprise at least one second text line of configuration commands at said command line interface.

15. The network of claim 14 wherein

said at least one first text line of configuration commands comprises at least one first level-specific configuration command and at least one first level-command, such that said at least one first level-specific configuration command is accessed from a first configuration level, said first configuration level being entered by execution of one of said at least one first level-commands; and

said at least one second text line of configuration commands comprises at least one second level-specific configuration command and at least one second level-command, such that said at least one second level-specific configuration command is accessed from a second configuration level, said second configuration level being entered by execution of one of said at least one second level-commands.

16. The network of claim 15 wherein said router is operable to

transform said first control settings, such that each of said at least one first text lines of configuration commands is rewritten into a format wherein each of said first level-specific configuration commands is prepended in the same line of text with a delimiter, which is prepended in the same line of text with said first level-command for entering said first configuration level from which said first level-specific configuration command is accessed, wherein each said first text line comprising a configuration command without a level-command is prepended in said first text line with said delimiter, which is prepended with a base-command-level command;

transform said second control settings, such that each of said at least one second text lines of configuration commands is rewritten into a format wherein each of said second level-specific configuration commands is prepended in the same line of text with a delimiter, which is prepended in the same line of text with said second level-command for entering said second configuration level from which said second level-specific configuration command is accessed, wherein each said second text line comprising a configuration command without a level-command is prepended in said second text line with said delimiter, which is prepended with a base-command-level command;

store in sequence in a first file any of said lines of text that are present in said transformed first control settings but are not present in said transformed second control settings;

store in sequence in a second file any of said lines of text that are present in said transformed second control settings but are not present in said transformed first control settings;

discard any of said lines of text that are present in both said transformed first control settings and said transformed second control settings; and

in all of said lines of text in said second file, convert any positive configuration commands into negative configuration commands and convert any negative configuration commands into positive configuration commands, reverse the sequence of all of said lines of text in said second file, append all of said lines of text in said first file in sequence to said reversed sequence lines of text in said second file, and transform the result of said appending into the original format of said control settings.

17. A method of rolling back a current running configuration of a router having a command line interface to a selected prior running configuration of said router without requiring interruption or reinitialization of said router or of its network connections, said method comprising the steps of:

retrieving first control settings of said router associated with said selected prior running configuration;

retrieving second control settings of said router associated with said current running configuration;

generating a configuration rollback script and a selected prior running configuration of the router based on a difference between said first control settings and said second control settings; and

executing said rollback script to roll back the router running configuration without disruption of router operation or connections with network routers.

18. The method of claim 17 wherein said first control settings comprise at least one first text line of configuration commands at said command line interface and wherein said second control settings comprise at least one second text line of configuration commands at said command line interface.

19. The method of claim 18 wherein:

said at least one first text line of configuration commands comprises at least one first level-specific configuration command and at least one first level-command, said at least one first level-specific configuration command accessed from a first configuration level, said first configuration level entered by execution of one of said at least one first level-commands; and

said at least one second text line of configuration commands comprises at least one second level-specific configuration command and at least one second level-command, said at least one second level-specific configuration command accessed from a second configuration level, said second configuration level entered by execution of one of said at least one second level-commands.

Assignments (9)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2015
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC
Reel/Frame 034804/0793 →
RELEASE OF SECURITY INTEREST Recorded Jan 21, 2015
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: BROCADE COMMUNICATIONS SYSTEMS, INC.; INRANGE TECHNOLOGIES CORPORATION; FOUNDRY NETWORKS, LLC
Reel/Frame 034792/0540 →
CHANGE OF NAME Recorded Jul 21, 2010
From: FOUNDRY NETWORKS, INC.
To: FOUNDRY NETWORKS, LLC
Reel/Frame 024733/0739 →
SECURITY AGREEMENT Recorded Jan 20, 2010
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, LLC; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION; MCDATA SERVICES CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 023814/0587 →
SECURITY AGREEMENT Recorded Dec 22, 2008
From: BROCADE COMMUNICATIONS SYSTEMS, INC.; FOUNDRY NETWORKS, INC.; INRANGE TECHNOLOGIES CORPORATION; MCDATA CORPORATION
To: BANK OF AMERICA, N.A. AS ADMINISTRATIVE AGENT
Reel/Frame 022012/0204 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2008
From: ADV. JEREMY BENJAMIN AS RECEIVER OF CHIARO NETWORKS LTD.
To: FOUNDRY NETWORKS, INC.
Reel/Frame 021731/0651 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2006
From: CHIARO NETWORKS LTD.
To: JEREMY BENJAMIN AS RECEIVER FOR CHIARO NETWORKS LTD.
Reel/Frame 018442/0980 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2002
From: VISSER, LANCE A.
To: CHIARO NETWORKS LTD.
Reel/Frame 013166/0436 →