IP Library Granted Patent US 10,785,317
Granted Patent B2
US 10,785,317 · App. 15/940,750 · Granted Sep 22, 2020

Keep-alive technique in a network device

Inventors: Rajib Dutta (Cupertino, CA); Michael Li (San Jose, CA); Aravindu Maneti (Bengaluru, IN)
Assignee: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
H04L67/145G06F9/45558H04L43/103H04L67/146H04L67/2842H04L67/322H04L69/28G06F2009/45595
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 10,785,317
App. No.
15/940,750
Granted
Sep 22, 2020
Kind
B2
Abstract

A network device may execute a software keep-alive process (SKAP) that enables the network device to continue to send keep-alive packets without interruption even during events such as a network operating system failover/switchover or an in-place system upgrade. The network device maintains a database of keep-alive network sessions storing information that is used to schedule and send keep-alive messages or packets for the keep-alive network sessions. The database may be shared between network operating subsystems and programs executed by the network device. The database may be updated by a network operating subsystem and the information may then be used by the SKAP to schedule and send out keep-alive messages or packets for the keep-alive network sessions. For example, a virtual machine may store information for a keep-alive network session in the database, which is used by SKAP to schedule transmission of keep-alive packets for that keep-alive network session.

Claims (66)

1. A network device comprising:

a database configured to store data for one or more keep-alive network sessions for the network device;

one or more processors executing a first virtual machine and a keep-alive subsystem process;

wherein the first virtual machine is configured to:

perform a set of functions to facilitate forwarding of data packets from the network device;

store information for a first keep-alive network session in the database, the information for the first keep-alive network session including information identifying a keep-alive protocol for the first keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the first keep-alive network session; and

store information for a second keep-alive network session to the database, the information for the second keep-alive network session including information identifying a keep-alive protocol for the second keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the second keep-alive network session; and

wherein the keep-alive subsystem process is configured to:

access the information for the first keep-alive network session from the database;

based at least in part on the time interval period for the first keep-alive network session stored in the database, schedule transmission of one or more keep-alive packets for the first keep-alive network session from the network device;

access the information for the second keep-alive network session from the database; and

based at least in part on the information for the second keep-alive network session stored in the database, schedule transmission of one or more keep-alive packets for the second keep-alive network session from the network device.

2. The network device of claim 1 , wherein:

the one or more processors execute a second virtual machine;

the first virtual machine operates in an active mode and performs the set of functions; and

the second virtual machine operates in a standby mode while the first virtual machine operates in the active mode, wherein the second virtual machine does not perform the set of functions when operating in the standby mode.

3. The network device of claim 2 , further comprising:

a set of one or more line cards; and

a backplane enabling communications between the set of line cards;

wherein the one or more processors and the database are located on a first line card from the set of line cards.

4. The network device of claim 1 , further comprising a packet processor configured to transmit the scheduled one or more keep-alive packets from the network device via one or more ports of the network device.

5. The network device of claim 1 , wherein the keep-alive subsystem process is, based at least in part on the information for the first keep-alive network session stored in the database, configured to:

determine a transmission time of a most recent transmitted keep-alive packet for the first keep-alive network session;

determine a keep-alive transmission frequency for the first keep-alive network session; and

determine, based upon the transmission time of the most recent transmitted keep-alive packet for the first keep-alive network session and the keep-alive transmission frequency for the first keep-alive network session, a transmission time for transmitting a next keep-alive packet from the network device for the first keep-alive network session.

6. The network device of claim 1 , wherein:

the one or more processors are configured to execute a host operating system; and

the keep-alive subsystem process is executed within a user space of the host operating system.

7. The network device of claim 1 , wherein the keep-alive protocol for the first keep-alive network session is same as the keep-alive protocol for the second keep-alive network session.

8. The network device of claim 1 , wherein the keep-alive protocol for the first keep-alive network session is different from the keep-alive protocol for the second keep-alive network session and the time interval period for transmitting keep-alive packets for the first keep-alive network session is different from the time interval period for transmitting keep-alive packets for the second keep-alive network session.

9. A method comprising:

executing, via a processor on a network device, a first virtual machine and a keep-alive subsystem process, wherein the first virtual machine is configured to:

perform a set of functions to facilitate forwarding of data packets from the network device;

store information for a first keep-alive network session in a database, the information for the first keep-alive network session including information identifying a keep-alive protocol for the first keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the first keep-alive network session; and

store information for a second keep-alive network session to the database, the information for the second keep-alive network session including information identifying a keep-alive protocol for the second keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the second keep-alive network;

accessing, via the keep-alive subsystem process, the information for the first keep-alive network session from the database and the information for the second keep-alive network session from the database;

based at least in part on the time interval period for the first keep-alive network session stored in the database, scheduling, via the keep-alive subsystem process, transmission of one or more keep-alive packets for the first keep-alive network session from the network device; and

based at least in part on the information for the second keep-alive network session stored in the database, scheduling, via the keep-alive subsystem process, transmission of one or more keep-alive packets for the second keep-alive network session from the network device.

10. The method of claim 9 , further comprising executing, via the processor, a second virtual machine, wherein:

the first virtual machine operates in an active mode and performs the set of functions; and

the second virtual machine operates in a standby mode while the first virtual machine operates in the active mode, wherein the second virtual machine does not perform the set of functions when operating in the standby mode.

11. The method of claim 10 , wherein the network device comprises:

a set of one or more line cards; and

a backplane enabling communications between the set of line cards;

wherein the one or more processors and the database are located on the set of line cards.

12. The method of claim 9 , further comprising transmitting, via a packet processor, the scheduled one more keep-alive packets from the network device via one or more ports of the network device.

13. The method of claim 9 , further comprising:

determining, via the keep-alive subsystem process and based at least in part on the information for the first keep-alive network session stored in the database, a transmission time of a most recent transmitted keep-alive packet for the first keep-alive network session;

determining, via the keep-alive subsystem process and based at least in part on the information for the first keep-alive network session stored in the database, a keep-alive transmission frequency for the first keep-alive network session; and

determining, via the keep-alive subsystem process and based upon the transmission time of the most recent transmitted keep-alive packet for the first keep-alive network session and the keep-alive transmission frequency for the first keep-alive network session, a transmission time for transmitting a next keep-alive packet from the network device for the first keep-alive network session.

14. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed by one or more computing devices, cause the one or more computing devices to:

execute, via a processor on a network device, a first virtual machine and a keep-alive subsystem process, wherein the first virtual machine is configured to:

perform a set of functions to facilitate forwarding of data packets from a network device;

store information for a first keep-alive network session in a database, the information for the first keep-alive network session including information identifying a keep-alive protocol for the first keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the first keep-alive network session; and

store information for a second keep-alive network session to the database, the information for the second keep-alive network session including information identifying a keep-alive protocol for the second keep-alive network session and information identifying a time interval period for transmitting keep-alive packets for the second keep-alive network session, and;

access, via the keep-alive subsystem process, the information for the first keep-alive network session from the database and the information for the second keep-alive network session from the database;

based at least in part on the time interval period for the first keep-alive network session stored in the database, schedule, via the keep-alive subsystem process, transmission of one or more keep-alive packets for the first keep-alive network session from the network device; and

based at least in part on the information for the second keep-alive network session stored in the database, schedule, via the keep-alive subsystem process, transmission of one or more keep-alive packets for the second keep-alive network session from the network device.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions, when executed by the one or more computing devices, cause the one or more computing devices to execute, via the processor, a second virtual machine, wherein:

the first virtual machine operates in an active mode and performs the set of functions; and

the second virtual machine operates in a standby mode while the first virtual machine operates in the active mode, wherein the second virtual machine does not perform the set of functions when operating in the standby mode.

16. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions, when executed by the one or more computing devices, cause the one or more computing devices to transmit, via a packet processor, the scheduled one more keep-alive packets from the network device via one or more ports of the network device.

17. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions, when executed by the one or more computing devices, cause the one or more computing devices to:

determine, via the keep-alive subsystem process and based at least in part on the information for the first keep-alive network session stored in the database, a transmission time of a most recent transmitted keep-alive packet for the first keep-alive network session;

determine, via the keep-alive subsystem process and based at least in part on the information for the first keep-alive network session stored in the database, a keep-alive transmission frequency for the first keep-alive network session; and

determine, via the keep-alive subsystem process and based upon the transmission time of the most recent transmitted keep-alive packet for the first keep-alive network session and the keep-alive transmission frequency for the first keep-alive network session, a transmission time for transmitting a next keep-alive packet from the network device for the first keep-alive network session.

Assignments (3)
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 →
CHANGE OF NAME Recorded Aug 24, 2018
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 046943/0776 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2018
From: DUTTA, RAJIB; LI, MICHAEL; MANETI, ARAVINDU
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 046688/0356 →
Priority Claims (1)
IN 201641018590 · May 31, 2016 · national
Continuity (2)
Continuation PCTUS2017035030 · May 30, 2017
Related Publication 20180288167A1 · Oct 4, 2018