IP Library Granted Patent US 7,349,960
Granted Patent B1
US 7,349,960 · App. 09/670,455 · Granted Mar 25, 2008

Throttling distributed statistical data retrieval in a network device

Assignee: Ciena Corporation
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,349,960
App. No.
09/670,455
Granted
Mar 25, 2008
Kind
B1
Abstract

The present invention provides a method and apparatus for managing distributed statistical data retrieval in a network device. Periodically, statistical data is gathered by processes on one or more remote cards in a network device and transferred to a central process. The statistical data may comprise, for example, management/historical data including accounting, performance, security and fault logging data (or some portion thereof). In one embodiment, the central process may notify each process as to when gathered statistical data may be reported. This allows the central process to throttle the amount of data sent to the central process in accordance with any existing backlog of data to be processed by the central process.

Claims (94)

1. A method of managing distributed statistical data retrieval in a network device, comprising:

a. gathering statistical data on at least one card within the network device periodically, wherein, upon each start, upgrade, or reboot, a device driver on the at least one card informs a usage data monitoring library on the at least one card which statistical data the device driver is able to gather;

b. sending a predetermined number of packets from the card to a central process, wherein one of the predetermined number of packets is a registration packet comprising one or more string names corresponding to the types of statistical data that the usage data monitoring library will send to the central process, wherein each packet includes at least a portion of the statistical data, and wherein the predetermined number of packets is determined via a negotiation between the card and the central process upon a registration of the card with the central process;

c. sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number; and

d. controlling the number of packets sent from the card to the central process, including:

sending an acknowledge packet from the central process to the card indicating a time that the card can resume sending packets to the central process, said time being based on an estimate of a time interval needed by the central process to process a sufficient number of the received packets to reduce the number of packets awaiting processing below a predetermined threshold, wherein the controlling the number of packets sent from the card to the central process load balances the statistical data across a control plane, smoothes out control plane bandwidth utilization, and reduces data buffering and data loss,

repeating steps b, c and d when the acknowledge packet is received at the card and the time indicated has elapsed.

2. The method of claim 1 , wherein sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number, comprises:

sending the acknowledge request embedded within the last packet in the predetermined number.

3. The method of claim 1 , wherein sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number, comprises:

sending the acknowledge request in an acknowledge request packet separate from the last packet in the predetermined number.

4. The method of claim 1 , wherein sending an acknowledge packet from the central process to the card, comprises:

detecting an acknowledge request at the central process in a packet received from the card, and

sending the acknowledge packet to the card from the central process.

5. A method of managing distributed statistical data retrieval in a network device, comprising:

a. gathering statistical data on at least one card within the network device periodically, wherein, upon each start, upgrade, or reboot, a device driver on the at least one card informs a usage data monitoring library on the at least one card which statistical data the device driver is able to gather;

b. sending a predetermined number of packets from the card to a central process, wherein one of the predetermined number of packets is a registration packet comprising one or more string names corresponding to the types of statistical data that the usage data monitoring library will send to the central process, wherein each packet includes at least a portion of the statistical data, and wherein the predetermined number of packets is determined via a negotiation between the card and the central process upon a registration of the card with the central process;

c. sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number; and

d. controlling the number of packets sent from the card to the central process, including:

sending an acknowledge packet from the central process to the card; and

repeating steps b, c and d when the acknowledge packet is received at the card,

wherein sending an acknowledge packet from the central process to the card, comprises:

detecting an acknowledge request at the central process in a packet received from the card;

determining a number of packets to be processed by the central process;

comparing the number of packets to be processed to a predetermined threshold periodically; and

sending the acknowledge packet to the card from the central process when the number of packets to be processed is less than the predetermined threshold, and

wherein the controlling the number of packets sent from the card to the central process load balances the statistical data across a control plane, smoothes out control plane bandwidth utilization, and reduces data buffering and data loss.

6. The method of claim 1 , wherein sending an acknowledge packet from the central process to the card further comprises:

detecting an acknowledge request at the central process-in a packet received from the card;

determining a number of packets to be processed by the central process;

comparing the number of packets to be processed to a predetermined threshold; and

estimating when the number of packets to be processed will be below the predetermined threshold.

7. The method of claim 6 , wherein if the number of packets to be processed is below the predetermined threshold, then the indicated time is immediately.

8. The method of claim 1 , wherein gathering statistical data on at least one card within the network device periodically, comprises:

gathering a current statistical data sample on the card periodically at a first period.

9. The method of claim 8 , wherein gathering statistical data on at least one card within the network device periodically further comprises:

adding the current statistical data sample to a data summary each time the current statistical data sample is gathered.

10. The method of claim 9 , wherein sending packets from the card to a central process comprises:

sending packets containing at least a portion of the current statistical data sample from the card to the central process periodically at a first period; and

sending packets containing at least a portion of the data summary from the card to the central process periodically at a second period.

11. The method of claim 10 , wherein, in normal operation, the second period is longer than the first period.

12. The method of claim 1 , wherein the card is a first card and the statistical data is first statistical data and wherein the method further comprises:

e. gathering second statistical data on a second card within the network device periodically;

f. sending the predetermined number of packets from the second card to the central process, wherein each packet includes at least a portion of the second statistical data;

g. sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number; and

h. controlling the number of packets sent from the second card to the central process, including:

sending an acknowledge packet from the central process to the second card; and

repeating steps f, g and h when the acknowledge packet is received at the second card.

13. The method of claim 1 , wherein the statistical data is first statistical data and wherein the method further comprises:

e. gathering second statistical data on the card periodically;

f. sending the predetermined number of packets from the card to the central process, wherein each packet includes at least a portion of the second statistical data;

g. sending an acknowledge request to the central process in conjunction with sending the last packet in the predetermined number; and

h. controlling the number of packets including a portion of the second statistical data sent from the card to the central process, including:

sending an acknowledge packet from the central process to the card; and

repeating steps f, g and h when the acknowledge packet is received at the card.

14. A method of managing distributed statistical data retrieval in a network device, comprising:

a. gathering statistical data on a plurality of cards within the network device periodically, wherein, upon each start, upgrade, or reboot, a device driver on at least one card informs a usage data monitoring library on the card which statistical data the device driver is able to gather;

b. sending a predetermined number of packets from each card to the central process, wherein one of the predetermined number of packets is a registration packet comprising one or more string names corresponding to the types of statistical data that the usage data monitoring library will send to the central process, wherein each packet includes at least a portion of the statistical data, and wherein the predetermined number of packets is determined via a negotiation between the card and the central process upon a registration of the card with the central process; and

c. sending an acknowledge request from each card to the central process in conjunction with sending the last packet in the predetermined number; and

d. controlling the number of packets sent from the cards to the central process, including:

sending an acknowledge packet from the central process to each card indicating a time at which the card can resume sending packets to the central process, said time being based on an estimate of time a interval needed by the central process to process a sufficient number of the received packets to reduce the number of packets awaiting processing below a predetermined threshold, wherein the controlling the number of packets sent from the card to the central process load balances the statistical data across a control plane, smoothes out control plane bandwidth utilization, and reduces data buffering and data loss; and

repeating steps b, c and d when the acknowledge packet is received at each card and the time indicated has elapsed.

15. The method of claim 14 , wherein sending an acknowledge request from each card to the central process in conjunction with sending the lack packet in the predetermined number, comprises:

sending the acknowledge request from each card embedded within the last packet in the predetermined number.

16. The method of claim 14 , wherein sending an acknowledge request from each card to the central process in conjunction with sending the last packet in the predetermined number, comprises:

sending the acknowledge request from each card in an acknowledge request packet separate from the last packet in the predetermined number.

17. The method of claim 14 , wherein sending an acknowledge packet from the central process to each card, comprises:

detecting an acknowledge request at the central process in a packet received from one of the cards; and

sending the acknowledge packet to that card from the central process.

18. The method of claim 14 , wherein sending an acknowledge packet from the central process to each card, comprises:

detecting an acknowledge request at the central process in a packet received from one of the cards;

determining a number of packets to be processed by the central process;

comparing the number of packets to be processed to a predetermined threshold periodically; and

sending the acknowledge packet to that card from the central process when the number of packets to be processed is less than the predetermined threshold.

19. The method of claim 14 , wherein sending an acknowledge packet from the central process to each card, comprises:

detecting an acknowledge request at the central process in a packet received from one of the cards;

determining a number of packets to be processed by the central process;

comparing the number of packets to be processed to a predetermined threshold;

estimating when the number of packets to be processed will be below the predetermined threshold; and

sending the acknowledge packet from the central process to the card indicating a time that that card may resume sending packets to the central process.

20. The method of claim 14 , wherein gathering statistical data on a plurality of cards within the network device periodically, comprises:

gathering a current statistical data sample on each card periodically at a first period.

21. The method of claim 20 , wherein gathering statistical data on a plurality of cards within the network device periodically further comprises:

adding the current statistical data sample to a data summary on each card each time the current statistical data sample is gathered.

22. The method of claim 21 , wherein sending a predetermined number of packets from each card to the central process comprises:

sending packets containing at least a portion of the current statistical data sample from each card to the central process periodically at a first period; and

sending packets containing at least a portion of the data summary from each card to the central process periodically at a second period.

23. The method of claim 22 , wherein, in normal operation, the second period is longer than the first period.

24. A method of managing distributed statistical data retrieval in a network device, comprising:

gathering a plurality of different types of statistical data on at least one card within the network device periodically, wherein, upon each start, upgrade, or reboot, a device driver on the at least one card informs a usage data monitoring library on the at least one card which statistical data the device driver is able to gather; and

sending groups of packets from the card to a central process at staggered times, wherein each group of packets includes one of different types of statistical data wherein the staggered times are determined by a plurality of polling timers, each corresponding to one of said statistical data types, wherein one of the packets is a registration packet comprising one or more string names corresponding to the types of statistical data that the usage data monitoring library will send to the central process, and wherein a size of each of the groups of packets is determined via a negotiation between the card and the central process upon a registration of the card with the central process; and

wherein the sending groups of packets from the card to a central process at staggered times load balances the statistical data across a control plane, smoothes out control plane bandwidth utilization, and reduces data buffering and data loss.

25. The method of claim 24 , wherein gathering a plurality of different types of statistical data on at least one card, comprises:

gathering each of the different types of statistical data at a different time.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2023
From: BANK OF AMERICA, N.A.
To: CIENA CORPORATION
Reel/Frame 065630/0232 →
PATENT SECURITY AGREEMENT Recorded Nov 8, 2019
From: CIENA CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 050969/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 30, 2019
From: DEUTSCHE BANK AG NEW YORK BRANCH
To: CIENA CORPORATION
Reel/Frame 050938/0389 →
PATENT SECURITY AGREEMENT Recorded Jul 16, 2014
From: CIENA CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033347/0260 →
SECURITY INTEREST Recorded Jul 15, 2014
From: CIENA CORPORATION
To: DEUTSCHE BANK AG NEW YORK BRANCH
Reel/Frame 033329/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2005
From: EQUIPE COMMUNICATIONS CORPORATION
To: CIENA CORPORATION
Reel/Frame 016135/0680 →
Continuity (15)
Continuation In Part 0966394700 · Sep 18, 2000
Continuation In Part 0965612300 · Sep 6, 2000
Continuation In Part 0965370000 · Aug 31, 2000
Continuation In Part 0963780000 · Aug 11, 2000
Continuation In Part 0963367500 · Aug 7, 2000
Continuation In Part 0962510100 · Jul 24, 2000
Continuation In Part 0961647700 · Jul 14, 2000
Continuation In Part 0961394000 · Jul 11, 2000
Continuation In Part 0959605500 · Jun 16, 2000
Continuation In Part 0959303400 · Jun 13, 2000
Continuation In Part 0957444000 · May 20, 2000
Continuation In Part 0959119300 · Jun 9, 2000
Continuation In Part 0958839800 · Jun 6, 2000
Continuation In Part 0957434100 · May 20, 2000
Continuation In Part 0957434300 · May 20, 2000