# US 7,609,617 B2 · BGP hitless upgrade approaches

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

- Number: US 7,609,617 B2
- Document ID: US7609617B2
- Status: Granted
- Kind: B2
- Application number: 11/108,053
- Filed: 2005-04-14
- Published: 2006-10-19
- Granted: 2009-10-27
- Earliest claimed: 2005-04-14
- Assignees: Cisco Technology, Inc.
- Inventors: Chandrashekhar Appanna; Anantha Ramaiah
- Web page: https://patentgrep.com/patent/US7609617B2

## CPC

- H04L 45/586: of virtual routers
- G06F 8/656: while running
- H04L 45/04: {Interdomain routing, e.g. hierarchical routing}
- H04L 45/563: {Software download or update}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method is disclosed for upgrading network protocol software, comprising receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement; transferring, from the active route processor to the standby route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor; transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions; progressively shutting down an active BGP process of the active route processor; and switching control of BGP data processing to the standby route processor. The route processors may be placed in a stateful switchover mode of operation temporarily only during the transferring, shutting down, and switching. Thus a hitless BGP upgrade approach is provided.

## Claims

### Claim 1

A method, comprising:
receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement;
in response to determining, by an active BGP process of the active route processor, one or more transport layer important connections, associated with BGP sessions of the active route processor, transferring, from the active route processor to the standby route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor, starting from the one or more transport layer important connections, and instructing an active transport layer protocol process of the active route processor to stop accepting further data on the transferred transport protocol connections;
transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions;
progressively shutting down an active BGP process of the active route processor; and
switching control of BGP data processing to the standby route processor.

### Claim 2 (depends on 1)

A method as recited in claim 1, wherein the active BGP process initiates a route refresh to provide the standby route processor with routing data.

### Claim 3 (depends on 1)

A method as recited in claim 1, wherein the active BGP process ceases generating updates and later ceases sending KEEPALIVE messages as part of progressively shutting down.

### Claim 4 (depends on 1)

A method as recited in claim 1, wherein the active BGP process instructs an active TCP process, hosted at the active route processor, to cease accepting packets on one or more active TCP connections, and later processes all packets previously received by the active TCP process.

### Claim 5 (depends on 1)

A method as recited in claim 1, wherein the standby BGP process determines best paths and re-advertises routes to all peers.

### Claim 6 (depends on 1)

A method as recited in claim 1, wherein the active BGP process determines one or more transport layer connections associated with BGP sessions that are important based on fees paid.

### Claim 7 (depends on 1)

A method as recited in claim 1, wherein the active BGP process further deletes out-of-order packet queues for the important connections; and wherein the standby BGP process replicates send queues for the important connections, and accepts the important connections.

### Claim 8 (depends on 1)

A method as recited in claim 1, wherein the active route processor and the standby route processor comprise a redundant router system for a packet-switched network.

### Claim 9 (depends on 1)

A method as recited in claim 1, wherein the transport layer protocol processes are TCP processes.

### Claim 10

A network routing apparatus, comprising:
an active route processor;
a standby route processor that is coupled to the active route processor in a redundant arrangement;
a volatile or non-volatile computer-readable medium that is accessible to the active route processor and the standby route processor, and comprising one or more sequences of instructions which, when executed by the route processors, cause the route processors to perform the steps of:
receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement;
in response to determining, by an active BGP process of the active route processor, one or more transport layer important connections, associated with BGP sessions of the active route processor, transferring, from the active route processor to the standby route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor, starting from the one or more transport layer important connections, and instructing an active transport layer protocol process of the active route processor to stop accepting further data on the transferred transport protocol connections;
transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions;
progressively shutting down an active BGP process of the active route processor; and
switching control of BGP data processing to the standby route processor.

### Claim 11 (depends on 10)

An apparatus as recited in claim 10, wherein the active BGP process initiates a route refresh to provide the standby route processor with routing data.

### Claim 12 (depends on 10)

An apparatus as recited in claim 10, wherein the active BGP process ceases generating updates and later ceases sending KEEPALIVE messages as part of progressively shutting down.

### Claim 13 (depends on 10)

An apparatus as recited in claim 10, wherein the active BGP process instructs an active TCP process, hosted at the active route processor, to cease accepting packets on one or more active TCP connections, and later processes all packets previously received by the active TCP process.

### Claim 14 (depends on 10)

An apparatus as recited in claim 10, wherein the standby BGP process determines best paths and re-advertises routes to all peers.

### Claim 15 (depends on 10)

An apparatus as recited in claim 10, wherein the active BGP process determines one or more transport layer connections associated with BGP sessions that are important based on fees paid.

### Claim 16 (depends on 10)

An apparatus as recited in claim 10, wherein the active BGP process; further deletes out-of-order packet queues for the important connections; and wherein the standby BGP process replicates send queues for the important connections, and accepts the important connections.

### Claim 17 (depends on 10)

An apparatus as recited in claim 10, wherein the active route processor and the standby route processor comprise a redundant router system for a packet-switched network.

### Claim 18 (depends on 10)

An apparatus as recited in claim 10, wherein the transport layer protocol processes are TCP processes.

### Claim 19

A network routing apparatus, comprising:
an active route processor;
a standby route processor that is coupled to the active route processor in a redundant arrangement;
means for receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement;
means for transferring, from the active route processor to the standby route processor, in response to determining, by an active BGP process of the active route processor one or more transport layer important connections associated with BGP sessions of the active route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor, starting from the one or more transport layer important connections, and instructing an active transport layer protocol process of the active route processor to stop accepting further data on the transferred transport protocol connections;
means for transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions;
means for progressively shutting down an active BGP process of the active route processor; and
means for switching control of BGP data processing to the standby route processor.

### Claim 20 (depends on 19)

An apparatus as recited in claim 19, wherein the active BGP process initiates a route refresh to provide the standby route processor with routing data.

### Claim 21 (depends on 19)

An apparatus as recited in claim 19, wherein the active BGP process ceases generating updates and later ceases sending KEEPALIVE messages as part of progressively shutting down.

### Claim 22 (depends on 19)

An apparatus as recited in claim 19, wherein the active BGP process instructs an active TCP process, hosted at the active route processor, to cease accepting packets on one or more active TCP connections, and later processes all packets previously received by the active TCP process.

### Claim 23 (depends on 19)

An apparatus as recited in claim 19, wherein the standby BGP process determines best paths and re-advertises routes to all peers.

### Claim 24 (depends on 19)

An apparatus as recited in claim 19, wherein the active BGP process determines one or more transport layer connections associated with BGP sessions that are important based on fees paid.

### Claim 25 (depends on 19)

An apparatus as recited in claim 19, wherein the active BGP process further deletes out-of-order packet queues for the important connections; and wherein the standby BGP process replicates send queues for the important connections, and accepts the important connections.

### Claim 26 (depends on 19)

An apparatus as recited in claim 19, wherein the active route processor and the standby route processor comprise a redundant router system for a packet-switched network.

### Claim 27 (depends on 19)

An apparatus as recited in claim 19, wherein the transport layer protocol processes are TCP processes.

### Claim 28

A volatile or non-volatile computer-readable medium carrying one or more sequences of instructions for upgrading network protocol software, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement;
in response to determining, by an active BGP process of the active route processor, one or more transport layer important connections, associated with BGP sessions of the active route processor, transferring, from the active route processor to the standby route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor, starting from the one or more transport layer important connections, and instructing an active transport layer protocol process of the active route processor to stop accepting further data on the transferred transport protocol connections;
transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions;
progressively shutting down an active BGP process of the active route processor; and
switching control of BGP data processing to the standby route processor.

### Claim 29

A method, comprising:
receiving a new version of Border Gateway Protocol (BGP) software on a standby route processor that is coupled to an active route processor in a redundant arrangement;
in response to determining, by an active BGP process of the active route processor, one or more transport layer important connections, associated with BGP sessions of the active route processor, transferring, from the active route processor to the standby route processor, one or more transport protocol connections that are associated with one or more active BGP sessions of the active route processor, starting from the one or more transport layer important connections, and instructing an active transport layer protocol process of the active route processor to stop accepting further data on the transferred transport protocol connections;
transferring, from the active route processor to the standby route processor, BGP session information representing the active BGP sessions;
progressively shutting down an active BGP process of the active route processor; and
switching control of BGP data processing to the standby route processor;
wherein the route processors are placed in a stateful switchover mode of operation temporarily only during the transferring, shutting down, and switching.
