IP Library Granted Patent US 8,867,360
Granted Patent B2
US 8,867,360 · App. 13/426,902 · Granted Oct 21, 2014

Method and apparatus for lossless behavior for multiple ports sharing a buffer pool

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,867,360
App. No.
13/426,902
Granted
Oct 21, 2014
Kind
B2
Abstract

Packets are colored and stored in a shared packet buffer without assigning fixed page allocations per port. The packet buffer is divided into three areas—an unrestricted area, an enforced area, and a headroom area. Regardless of the fullness level, when a packet is received it will be stored in the packet buffer. If the fullness level is in the unrestricted area, no flow control messages are generated. If the fullness level is in the enforced region, a probabilistic flow control generation process is used determine if a flow control messages will be generated. If the fullness level is in the headroom area, flow control is automatically generated. Quanta timers are used to control regeneration of flow control messages.

Claims (36)

1. A method of managing a shared buffer pool of memory to implement lossless packet forwarding at a network element, the shared buffer pool of memory being shared between a plurality of ports on the network element, the method comprising:

receiving a packet on a first of the ports of the network element;

coloring the packet as in-profile or out-of-profile;

determining a fullness level of the shared buffer pool of memory;

storing the packet in the shared buffer pool regardless of the fullness level of the shared buffer pool and regardless of the color of the packet;

transmitting a flow control message on the first of the ports if the fullness level of the shared buffer pool is above a first threshold;

not transmitting the flow control message on the first of the ports if the fullness level of the shared buffer pool is below a second threshold; and

using a statistical process to determine whether the flow control message should be transmitted on the first of the ports if the fullness level of the shared buffer pool is above the second threshold and below the first threshold;

wherein a single threshold is used for the first threshold regardless of the color of the packet, and wherein a single threshold is used for the second threshold regardless of the color of the packet, and wherein separate probability curves are used in the statistical process for packets that are colored in-profile and packets that are colored out-of-profile in connection with determining whether the flow control message should be transmitted when the fullness level of the shared buffer pool is above the second threshold and below the first threshold.

2. The method of claim 1 , wherein the step of coloring the packet is implemented using a three color packet meter.

3. The method of claim 1 , wherein the first threshold is a headroom threshold set to enable the shared buffer pool of memory to accommodate packets in transit to the network element when the flow control message is sent.

4. The method of claim 1 , wherein all ports share the shared buffer pool of memory without having allocated pages of memory specified for each of the ports.

5. The method of claim 1 , wherein the amount of shared buffer pool of memory used by any one of the ports is not tracked in the network element.

6. The method of claim 1 , wherein the statistical process comprises the steps of generating a random number, obtaining a probability value based on the fullness level of the shared buffer pool of memory; and comparing the random number with the probability value.

7. The method of claim 6 , wherein the probability value is based on the probability curves and is different for a given fullness level depending on whether the packet is colored as in profile or out of profile.

8. The method of claim 1 , wherein the step of coloring the packet is implemented using a three color packet meter; and wherein the statistical process comprises the steps of generating a random number, obtaining a probability value based on the fullness level of the shared buffer pool of memory and the color of the packet from the probability curves; and comparing the random number with the probability value.

9. The method of claim 8 , wherein a green probability curve is used to obtain the probability value for green colored packets; wherein a yellow probability curve is used to obtain the probability value for yellow colored packets; and wherein a red probability curve is used to obtain the probability value for red colored packets.

10. The method of claim 1 , further comprising monitoring the fullness level of the shared buffer pool after transmission of the flow control message on the first of the ports to prevent underflow of the shared buffer pool.

11. The method of claim 10 , further comprising the step of transmitting a subsequent flow control message having a small quanta timer value on the first of the ports, prior to expiration of a local port quanta timer, if the fullness level of the shared buffer falls below a third threshold.

12. The method of claim 11 , wherein the small quanta timer value is zero seconds.

13. A method of managing a shared buffer pool of memory to implement lossless packet forwarding at a network element, the shared buffer pool of memory being shared between a plurality of ports on the network element, the method comprising:

receiving a packet on a first of the ports of the network element;

determining a fullness level of the shared buffer pool of memory;

storing the packet in the shared buffer pool regardless of the fullness level of the shared buffer pool;

transmitting a flow control message on the first of the ports if the fullness level of the shared buffer pool is above a first threshold;

not transmitting the flow control message on the first of the ports if the fullness level of the shared buffer pool is below a second threshold;

coloring the packet using a three color packet meter; and

using a statistical process to determine whether the flow control message should be transmitted on the first of the ports if the fullness level of the shared buffer pool is above the second threshold and below the first threshold, the statistical process comprising the steps of generating a random number, obtaining a probability value based on the fullness level of the shared buffer pool of memory and the color of the packet; and comparing the random number with the probability value;

wherein a green probability curve is used to obtain the probability value for green colored packets; wherein a yellow probability curve is used to obtain the probability value for yellow colored packets; and wherein a red probability curve is used to obtain the probability value for red colored packets;

wherein at least one of the green probability curve, yellow probability curve, and red probability curve is a implemented as a table having values associated with discretized fullness levels of the buffer pool; and

wherein a single threshold is used for the first threshold regardless of the color of the packet, and wherein a single threshold is used for the second threshold regardless of the color of the packet, and wherein separate probability curves are used in the statistical process for packets that are colored in-profile and packets that are colored out-of-profile in connection with determining whether the flow control message should be transmitted when the fullness level of the shared buffer pool is above the second threshold and below the first threshold.

14. The method of claim 13 , wherein the fullness level of the buffer pool is determined by counting a number of pages of memory used by packets stored in the buffer pool.

15. The method of claim 13 , wherein the fullness level of the buffer pool is determined by a count of a number of pages of memory used by packets stored in the buffer pool, and wherein the discretized fullness levels are based on a set of most significant bits of the count of the number of pages of memory used by packets stored in the buffer pool.

16. The method of claim 1 , further comprising the steps of setting a remote port quanta value in the flow control message; setting a local port quanta timer to a value smaller than the remote port quanta value; and initiating the local port quanta timer upon transmission of the flow control message.

17. The method of claim 16 , further comprising the step of automatically transmitting a subsequent flow control message on the first of the ports if the fullness level of the shared buffer pool is above the first threshold upon expiration of the local port quanta timer.

18. The method of claim 16 , further comprising the step of waiting for a second packet prior to transmitting a subsequent flow control message on the first of the ports if the fullness level of the shared buffer pool is below the first threshold upon expiration of the local port quanta timer.

Assignments (13)
AMENDED SECURITY AGREEMENT Recorded Aug 18, 2023
From: EXTREME NETWORKS, INC.; AEROHIVE NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 064782/0971 →
SECURITY INTEREST Recorded May 1, 2018
From: EXTREME NETWORKS, INC.
To: BANK OF MONTREAL
Reel/Frame 046050/0546 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: SILICON VALLEY BANK
To: EXTREME NETWORKS, INC.
Reel/Frame 046051/0775 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 030083/0639 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 045012/0666 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 029608/0256 Recorded Dec 15, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVAYA INC.
Reel/Frame 044891/0801 →
BANKRUPTCY COURT ORDER RELEASING ALL LIENS INCLUDING THE SECURITY INTEREST RECORDED AT REEL/FRAME 041576/0001 Recorded Dec 15, 2017
From: CITIBANK, N.A.
To: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS LLC (FORMERLY KNOWN AS OCTEL COMMUNICATIONS CORPORATION); VPNET TECHNOLOGIES, INC.
Reel/Frame 044893/0531 →
THIRD AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Oct 31, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 044639/0300 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: AVAYA INC.; AVAYA COMMUNICATION ISRAEL LTD; AVAYA HOLDINGS LIMITED
To: EXTREME NETWORKS, INC.
Reel/Frame 043569/0047 →
SECOND AMENDED AND RESTATED PATENT AND TRADEMARK SECURITY AGREEMENT Recorded Jul 14, 2017
From: EXTREME NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 043200/0614 →
SECURITY INTEREST Recorded Jan 27, 2017
From: AVAYA INC.; AVAYA INTEGRATED CABINET SOLUTIONS INC.; OCTEL COMMUNICATIONS CORPORATION; VPNET TECHNOLOGIES, INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 041576/0001 →
SECURITY AGREEMENT Recorded Mar 13, 2013
From: AVAYA, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., THE
Reel/Frame 030083/0639 →
SECURITY AGREEMENT Recorded Jan 10, 2013
From: AVAYA, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 029608/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2012
From: ASSARPOUR, HAMID
To: AVAYA INC.
Reel/Frame 028026/0329 →