Method and apparatus for lossless behavior for multiple ports sharing a buffer pool
First Claim
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.
13 Assignments
0 Petitions
Accused Products
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.
31 Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 16, 17, 18)
-
-
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. - View Dependent Claims (14, 15)
-
Specification