MANAGING FLOW CONTROL BUFFER
A count of data segments is maintained. The count includes data segments in a queue and data segments in transit between a data source and the queue. A flow of data segments from the data source is controlled, based on a value of the count.
1 . A network node for a packet data network, comprising:
a plurality of communication network interfaces configured to receive data packets from the packet data network and to transmit data packets on the packet data network;
a traffic management system coupled to the plurality of communication network interfaces, the traffic management system having a plurality of data paths, each data path comprising:
a respective first buffer;
a respective second buffer in communication with a respective processor and storing a respective queue;
at least one respective communication line in communication with the respective first buffer; and
a respective traffic management element configured:
to maintain a respective count of data segments, the respective count including data segments in the respective queue and data segments in transit between a respective one of the plurality of communication network interfaces and the respective queue; and
to control a flow of data segments from the respective one of the plurality of communication network interfaces based on a value of the respective count; and
a switch fabric in communication with the second buffers of the traffic management system, the switch fabric being configured to selectively couple a data packets between data paths of the traffic management system.
2 . The network node of claim 1 , wherein each data path of the plurality of data paths comprises a respective data pipeline between a respective first queue and a respective second queue; and
the data segments in transit comprise data segments in the respective data pipeline.
3 . The network node of claim 1 , wherein the respective traffic management element is configured to maintain the respective count of data segments by:
incrementing the respective count of data segments when a data segment leaves the respective communication network interface; and
decrementing the respective count of data segments when a data segment leaves the respective queue.
4 . The network node of claim 1 , wherein the respective queue has at least as many elements as a maximum number of data segments in transit.
5 . The network node of claim 1 , wherein the respective queue has fewer elements than twice a maximum number of data segments in transit.
6 . The network node of claim 1 , wherein each one of the plurality of communication network interfaces comprises a respective transceiver.
7 . The network node of claim 6 , wherein each one of the plurality of communication network interfaces comprises a respective physical access module coupled to the respective transceiver.
8 . The network node of claim 1 , wherein the traffic management element comprises a respective traffic manager module and a respective fabric access module.
9 . The network node of claim 8 , wherein:
the respective traffic manager module comprises a respective one of the first buffers, a respective one of the traffic management elements; and
the respective fabric access module comprises a respective one of the second buffers.
10 . The network node of claim 8 , wherein:
the respective traffic manager module comprises a respective one of the first buffers; and
the respective fabric access module comprises a respective one of the traffic management elements and a respective one of the second buffers.
11 . The network node of claim 1 , wherein the network node comprises a router.
12 . The network node of claim 1 , wherein the network node comprises a data switch.
13 . A network node for a packet data network, comprising:
a plurality of communication network interfaces configured to receive data packets from the packet data network and to transmit data packets on the packet data network;
a traffic management system coupled to the plurality of communication network interfaces, the traffic management system having a plurality of data paths, each data path comprising:
a respective first buffer;
a respective second buffer in communication with a respective processor and storing a respective queue;
at least one respective communication line in communication with the respective first buffer; and
a respective traffic management element configured:
to maintain a respective count of data segments, the respective count including data segments in the respective queue and data segments in transit between a respective one of the plurality of communication network interfaces and the queue; and
to control a flow of data segments from the respective one of the plurality of communication network interfaces based on a value of the respective count; and
a framer in communication with the respective second buffer of the traffic management system.
14 . The network node of claim 13 , wherein each data path of the plurality of data paths comprises a respective data pipeline between a respective first queue and a respective second queue, and the data segments in transit comprise data segments in the respective data pipeline.
15 . The network node of claim 13 , wherein the respective traffic management element is configured to maintain the respective count of data segments by:
incrementing the respective count of data segments when a data segment leaves the respective communication network interface; and
decrementing the respective count of data segments when a data segment leaves the respective queue.
16 . The network node of claim 13 , wherein the respective queue has at least as many elements as a maximum number of data segments in transit.
17 . The network node of claim 13 , wherein the respective queue has fewer elements than twice a maximum number of data segments in transit.
18 . The network node of claim 13 , wherein each one of the plurality of communication network interfaces comprises a respective transceiver.
19 . The network node of claim 18 , wherein each one of the plurality of communication network interfaces comprises a respective physical access module coupled to the respective transceiver.
20 . The network node of claim 13 , wherein the respective traffic management element comprises a respective traffic manager module and a respective fabric access module.
21 . The network node of claim 20 , wherein:
the respective traffic manager module comprises a respective one of the first buffers, a respective one of the traffic management elements; and
the respective fabric access module comprises a respective one of the second buffers.
22 . The network node of claim 20 , wherein:
the respective traffic manager module comprises a respective one of the first buffers; and
the respective fabric access module comprises a respective one of the traffic management elements and a respective one of the second buffers.