# US 7,610,405 B1 · Router software upgrade employing redundant processors

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

- Number: US 7,610,405 B1
- Document ID: US7610405B1
- Status: Granted
- Kind: B1
- Application number: 10/825,850
- Filed: 2004-04-16
- Granted: 2009-10-27
- Earliest claimed: 2000-02-24
- Assignees: Cisco Technology, Inc.
- Inventors: Kenneth Moberg; Ronnie Kon
- Web page: https://patentgrep.com/patent/US7610405B1

## CPC

- H04L 45/58: Association of routers
- H04L 45/00: Routing or path finding of packets in data switching networks (routing or path finding in wireless networks H04W40/00)
- H04L 45/563: {Software download or update}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for replacing software controlling active routers while minimizing impact on network operation are provided by virtue of one embodiment of the present invention. The software replacement process takes advantage of packet processor redundancy. An active packet switching device to be reprogrammed is de-activated and a redundant packet switching device takes over. The no longer active packet switching device is reprogrammed before being reactivated.

## Claims

### Claim 1

A computer-implemented method for reprogramming an active packet switching router without interfering with packet flow, said method comprising:
receiving a software upgrade message at a currently active packet switching device (A);
halting receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
transferring protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
reprogramming said packet switching device (B);
sending a message requesting activation from said packet switching device (A) to said packet switching device (B);
de-activating said packet switching device (A) and activating said reprogrammed packet switching device (B) to handle packet flow previously handled by said packet switching device (A), including beginning receipt of new packets at said packet switching device (B);
reprogramming said packet switching device (A), including retrieving new packet processing software from a remote location; and thereafter
de-activating said packet switching device (B) and re-activating said packet switching device (A).

### Claim 2 (depends on 1)

The method of claim 1 wherein reprogramming said packet switching device (B) comprises retrieving new packet processing software from a remote location.

### Claim 3 (depends on 1)

The method of claim 1 wherein said protocol state information comprises register values.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
operating said packet switching device (A) as a back-up after de-activating said packet switching device (A).

### Claim 5

A computer-implemented method for reprogramming an active packet switching router without interfering with packet flow, said method comprising:
receiving a software upgrade message at a currently active packet switching device (A);
halting receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
transferring protocol state information comprising register values including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
sending a message requesting activation from said packet switching device (A) to said packet switching device (B);
de-activating said packet switching device (A) and activating said reprogrammed packet switching device (B) to handle packet flow previously handled by said packet switching device (A), including beginning receipt of new packets at said packet switching device (B);
reprogramming said packet switching device (A), including retrieving new packet processing software from a remote location; and thereafter
de-activating said packet switching device (B) and re-activating said packet switching device (A).

### Claim 6 (depends on 5)

The method of claim 5 further comprising:
reprogramming said packet switching device (B) prior to activating said packet switching device (B) including retrieving new packet processing software from a remote location.

### Claim 7 (depends on 5)

The method of claim 5 further comprising:
operating said packet switching device (A) as a back-up after de-activating said packet switching device (A).

### Claim 8

A computer-readable storage medium encoded with a computer program that reprograms an active packet switching router without interfering with packet flow, said computer program comprising:
code that receives a software upgrade message at a currently active packet switching device (A);
code that halts receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
code that transfers protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B);
code that reprograms said packet switching device (B) before said packet switching device (B) is activated;
code that de-activates said packet switching device (A) and activates said packet switching device (B) to handle packet flow previously handled by said packet switching device (A);
code that reprograms said packet switching device (A) after de-activation, including code that retrieves new packet processing software from a remote location; and
code that de-activates said packet switching device (B) and re-activates said packet switching device (A) after reprogramming.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8 wherein said code that reprograms said packet switching device (B) comprises code that retrieves new packet processing software from a remote location.

### Claim 10 (depends on 8)

The computer-readable storage medium of claim 8 wherein said protocol state information comprises register values.

### Claim 11 (depends on 8)

The computer-readable storage medium of claim 8 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 12

A computer-readable storage medium encoded with a computer program that reprograms an active packet switching router without interfering with packet flow, said computer program comprising:
code that receives a software upgrade message at a currently active packet switching device (A);
code that halts receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
code that transfers protocol state information comprising register values including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B);
code that de-activates said packet switching device (A) and activates said packet switching device (B) to handle packet flow previously handled by said packet switching device (A);
code that reprograms said packet switching device (A) after de-activation, including code that retrieves new packet processing software from a remote location; and
code that de-activates said packet switching device (B) and re-activates said packet switching device (A) after reprogramming.

### Claim 13 (depends on 12)

The computer-readable storage medium of claim 12 further comprising:
code that reprograms said packet switching device (B) before said packet switching device (B) is activated and further comprising code that retrieves new packet processing software from a remote location.

### Claim 14 (depends on 12)

The computer-readable storage medium of claim 12 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 15

A packet switching system comprising:
a currently active packet switching device (A);
a packet switching device (B); and
a memory system storing:
code that receives a software upgrade message at said packet switching device (A);
code that halts receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
code that transfers protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to said packet switching device (B);
code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B);
code that reprograms said packet switching device (B) before said packet switching device (B) is activated;
code that de-activates said packet switching device (A) and activates said packet switching device (B) to handle packet flow previously handled by said packet switching device (A);
code that reprograms said packet switching device (A) after de-activation, including code that retrieves new packet processing software from a remote location; and
code that de-activates said packet switching device (B) and re-activates said packet switching device (A) after reprogramming.

### Claim 16 (depends on 15)

The system of claim 15 wherein said code that reprograms said packet switching device (B) comprises code that retrieves new packet processing software from a remote location.

### Claim 17 (depends on 15)

The system of claim 15 wherein said protocol state information comprises register values.

### Claim 18 (depends on 15)

The system of claim 15 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 19

A packet switching system comprising:
a currently active packet switching device (A);
a packet switching device (B); and
a memory system storing:
code that receives a software upgrade message at said packet switching device (A);
code that halts receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
code that transfers protocol state information comprising register values including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to said packet switching device (B);
code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B);
code that de-activates said packet switching device (A) and activates said packet switching device (B) to handle packet flow previously handled by said packet switching device (A);
code that reprograms said packet switching device (A) after de-activation, including code that retrieves new packet processing software from a remote location; and
code that de-activates said packet switching device (B) and re-activates said packet switching device (A) after reprogramming.

### Claim 20 (depends on 19)

The system of claim 19 further comprising:
code that reprograms said packet switching device (B) before said packet switching device (B) is activated and further comprising code that retrieves new packet processing software from a remote location.

### Claim 21 (depends on 19)

The system of claim 19 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 22

A packet switching system comprising:
a currently active packet switching device (A);
a currently inactive packet switching device (B); and
a memory system storing:
code that receives a failover message at said currently active packet switching device (A);
code that then transfers protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to said packet switching device (B);
code that reprograms said packet switching device (B) before said packet switching device (B) is activated;
code that de-activates said packet switching device (A), including code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B) and code that halts receipt of new packets at said packet switching device (A) upon receipt of said failover message, and that activates said packet switching device (B), including code that begins receipt of new packets at said packet switching device (B);
code that reprograms said packet switching device (A) after said packet switching device (A) is de-activated, including code that retrieves new packet processing software from a remote location; and
code that reprograms said packet switching device (B) before said packet switching device (B) is activated.

### Claim 23 (depends on 22)

The system of claim 22 wherein said code that reprograms said packet switching device (B) comprises code that retrieves new packet processing software from a remote location.

### Claim 24 (depends on 22)

The system of claim 22 wherein said protocol state information comprises register values.

### Claim 25 (depends on 22)

The system of claim 22 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 26

A packet switching system comprising:
a currently active packet switching device (A);
a packet switching device (B); and
a memory system storing:
code that receives a software upgrade message at said packet switching device (A);
code that halts receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
code that transfers protocol state information comprising register values including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to said packet switching device (B);
code that sends a message requesting activation from said packet switching device (A) to said packet switching device (B);
code that de-activates said packet switching device (A) and activates said packet switching device (B) to handle packet flow previously handled by said packet switching device (A);
code that reprograms said packet switching device (A) after de-activation, including code that retrieves new packet processing software from a remote location;
code that de-activates said packet switching device (B) and re-activates said packet switching device (A) after reprogramming; and
code that reprograms said packet switching device (B) before said packet switching device (B) is activated.

### Claim 27 (depends on 26)

The system of claim 26 further comprising
code that reprograms said packet switching device (B) before said packet switching device (B) is activated and further comprising code that retrieves new packet processing software from a remote location.

### Claim 28 (depends on 26)

The system of claim 26 further comprising:
code that operates said packet switching device (A) as a back-up after said packet switching device (A) is de-activated.

### Claim 29

A packet switching router having a packet switching devices, said router comprising:
means for receiving a failover message at a currently active packet switching device (A);
means for then transferring protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
means for sending a message requesting activation from said packet switching device (A) to said packet switching device (B);
means for halting receipt of new packets at said packet switching device (A) upon receipt of said failover message;
means for de-activating said packet switching device (A) and activating said packet switching device (B), including beginning receipt of new packets at said packet switching device (B); and
means for reprogramming said packet switching device (A) after de-activating said packet switching device (A), including retrieving new packet processing software from a remote location.

### Claim 30 (depends on 29)

The router of claim 29 further comprising:
means for reprogramming said packet switching device (B) prior to activating said packet switching device (B).

### Claim 31 (depends on 30)

The router of claim 30 wherein reprogramming comprises retrieving new packet processing software from a remote location.

### Claim 32 (depends on 29)

The router of claim 29 further comprising:
means for operating said packet switching device (A) as a back-up after de-activating said packet switching device (A).

### Claim 33 (depends on 29)

The method of claim 29 wherein said protocol state information comprises register values.

### Claim 34

A packet switching router with a plurality of packet switching devices, said router comprising:
means for receiving a software upgrade message at a currently active packet switching device (A);
means for halting receipt of new packets at said packet switching device (A) upon receipt of said software upgrade message;
means for transferring protocol state information, including routing tables, negotiated state information, authorization status and learned routing state information, from said packet switching device (A) to a currently inactive packet switching device (B);
means for sending a message requesting activation from said packet switching device (A) to said packet switching device (B);
means for de-activating said packet switching device (A) and activating said packet switching device (B) to handle packet flow previously handled by said packet switching device (A), including beginning receipt of new packets at said packet switching device (B);
means for thereafter reprogramming said packet switching device (A), including retrieving new packet processing software from a remote location; and
means for thereafter de-activating said packet switching device (B) and re-activating said packet switching device (A).

### Claim 35 (depends on 34)

The router of claim 34 further comprising:
means for reprogramming said packet switching device (B) prior to activating said packet switching device (B).

### Claim 36 (depends on 35)

The router of claim 35 wherein reprogramming comprises retrieving new packet processing software from a remote location.

### Claim 37 (depends on 34)

The router of claim 34 further comprising:
means for operating said packet switching device (A) as a back-up after de-activating said packet switching device (A).

### Claim 38 (depends on 34)

The method of claim 34 wherein said protocol state information comprises register values.
