IP Library Granted Patent US 8,924,915
Granted Patent B2
US 8,924,915 · App. 13/893,912 · Granted Dec 30, 2014

Use of metadata for seamless updates

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 8,924,915
App. No.
13/893,912
Granted
Dec 30, 2014
Kind
B2
Abstract

The invention provides a system and method for updating software in the CPU of a network device without interrupting the operation of the network device. The invention determines whether operating state information is recoverable. If it is not recoverable, then it will be stored in a metadata module or reload buffer. When the CPU is rebooted, after a software update or crash, it operates in a special reload mode and is able to recover any system state information not available in the network device from the metadata module.

Claims (60)

1. A network device, comprising:

a central processing unit (CPU) interface for communicating with a CPU; and

a memory configured to store operating state information;

wherein the network device is configured to:

receive one or more data packets for processing during a time period when the CPU is unavailable via the CPU interface;

determine if processing of the received one or more data packets requires assistance of the CPU;

when processing of the received one or more data packets does not require assistance of the CPU, process the received one or more data packets without assistance of the CPU; and

when processing of the received one or more data packets requires assistance of the CPU:

store the received one or more data packets for processing by the CPU when the CPU becomes available via the CPU interface; and

provide to the CPU, via the CPU interface, the received one or more data packets that require assistance of the CPU when the CPU becomes available.

2. The network device of claim 1 , wherein the network device is further configured to provide to the CPU, via the CPU interface, at least a portion of the operating state information from the memory when the CPU becomes available.

3. The network device of claim 1 , wherein the network device is further configured to:

determine at least a portion of the operating state information that is not recoverable; and

store the at least the portion of the operating state information that is not recoverable in a metadata module.

4. The network device of claim 3 , wherein the CPU is configured to retrieve, via another CPU interface, the at least the portion of the operating state information from the metadata module.

5. The network device of claim 1 , wherein the network device is further configured to:

when processing of the received one or more data packets requires assistance of the CPU:

discard at least some of the received one or more data packets based at least on a transmission protocol associated with the at least some of the received one or more data packets.

6. The network device of claim 1 , wherein when the CPU is operating in a reload mode, the network device is configured to update the CPU with information regarding the received one or more data packets processed by the network device while the CPU was unavailable.

7. The network device of claim 1 , wherein the unavailability of the CPU via the CPU interface is due to a crash or a software update.

8. A method of operating a network device, the method comprising:

receiving one or more data packets;

determining a first portion of the one or more data packets that does not require assistance of a central processing unit (CPU) for processing and a second portion of the one or more data packets that requires assistance of the CPU for processing;

during a time period when the CPU is available, processing the first portion of the one or more data packets without assistance of the CPU, and providing over a CPU interface the second portion of the one or more data packets for processing by the CPU; and

during a time period when the CPU is unavailable, processing the first portion of the one or more data packets without assistance of the CPU, storing the second portion of the one or more data packets for processing when the CPU becomes available and, when the CPU becomes available, providing to the CPU, over the CPU interface, the second portion of the data packets for processing by the CPU.

9. The method of claim 8 , further comprising:

storing operating state information in a memory, wherein the operating state information is associated with processing the first portion of the one or more data packets; and

providing to the CPU, over the CPU interface, the operating state information when the CPU becomes available.

10. The method of claim 9 , further comprising:

determining at least a portion of the operating state information that is non-recoverable; and

storing the at least the portion of the operating state information in a metadata module that is external to the network device.

11. The method of claim 10 , further comprising, when the CPU becomes available:

determining whether the operating state information stored in the memory is incomplete; and

when the operating state information stored in the memory is incomplete:

retrieving the at least the portion of the operating state information from the metadata module; and

providing to the CPU, over the CPU interface, the at least the portion of the operating state information retrieved from the metadata module.

12. The method of claim 8 , further comprising, when the CPU is operating in a reload mode, providing to the CPU, over the CPU interface, information regarding the first portion of the one or more data packets processed while the CPU was unavailable.

13. The method of claim 8 , further comprising determining an availability of the CPU via the CPU interface.

14. The method of claim 8 , further comprising:

during a time period when the CPU is unavailable, dropping at least some of the second portion of the one or more data packets based at least on a transmission protocol associated with the at least some of the second portion of the one or more data packets.

15. A computer program product comprising instructions stored in a non-transitory computer-readable storage medium, the instructions comprising:

instructions for receiving data packets;

instructions for determining one of the data packets that does not require assistance of a central processing unit (CPU) for processing and another of the data packets requires assistance of the CPU for processing;

instructions for determining whether the CPU is available;

instructions for, when the CPU is available, processing the one of the data packets that can be processed without assistance of the CPU;

instructions for, when the CPU is unavailable, storing the another of the data packets until the CPU becomes available; and

instructions for providing, over a CPU interface to the CPU, the another of the data packets when the CPU becomes available.

16. The computer program product of claim 15 , wherein the instructions further comprise:

instructions for storing, in a memory, operating state information; and

instructions for, when the CPU becomes available, providing at least some of the operating state information from the memory to the CPU via the CPU interface.

17. The computer program product of claim 16 , wherein the instructions further comprise:

instructions for determining at least a portion of the operating state information that is non-recoverable; and

instructions for storing the at least the portion of the operating state information that is non-recoverable in a metadata module.

18. The computer program product of claim 17 , wherein the instructions further comprise:

instructions for determining that the CPU is operating in a complete initialization mode after providing the at least some of the operating state information and the at least the portion of the operating state information; and

instructions for clearing the memory and the metadata module based at least on determining that the CPU is operating in the complete initialization mode.

19. The computer program product of claim 15 , wherein the instructions further comprise:

instructions for providing the CPU, via the CPU interface, with information regarding the one of the data packets that was processed.

20. The computer program product of claim 15 , wherein the instructions further comprise:

instructions for dropping the another of the data packets while the CPU is unavailable when the another of the data packets is associated with a retransmission protocol.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →