IP Library Granted Patent US 8,699,491
Granted Patent B2
US 8,699,491 · App. 13/189,593 · Granted Apr 15, 2014

Network element with shared buffers

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,699,491
App. No.
13/189,593
Granted
Apr 15, 2014
Kind
B2
Abstract

A method for communication, in a network element that includes multiple ports, includes buffering data packets entering the network element via the ports in input buffers that are respectively associated with the ports. Storage of the data packets is shared among the input buffers by evaluating a condition related to the ports, and, when the condition is met, moving at least one data packet from a first input buffer of a first port to a second input buffer of a second port, different from the first port. Respective output ports, via which the buffered data packets are to exit the network element, are selected from among the ports. The buffered data packets are forwarded to the selected output ports.

Claims (28)

1. A method for communication in a network element that includes multiple ports, the method comprising:

buffering data packets entering the network element via the ports in input buffers that are respectively associated with the ports;

sharing storage of the data packets among the input buffers by:

evaluating a condition related to the ports; and,

when the condition is met, moving at least one data packet from a first input buffer of a first port, via which the at least one data packet entered the network element, to a second input buffer of a second port, which is different from the first port and via which the at least one data packet did not enter the network element;

selecting from among the ports respective output ports via which the buffered data packets are to exit the network element; and

forwarding the buffered data packets to the selected output ports.

2. The method according to claim 1 , wherein selecting the output ports comprises adding to output queues that are respectively associated with the output ports entries, which indicate locations of the data packets in the input buffers, and wherein moving the data packet comprises updating an entry of the data packet to indicate the location of the data packet in the second input buffer.

3. The method according to claim 1 , wherein evaluating the condition comprises assessing a fill status of at least some of the input buffers.

4. The method according to claim 3 , wherein assessing the fill status comprises identifying an imbalance in the fill status of the at least some of the input buffers, and wherein moving the data packet comprises reducing the imbalance.

5. The method according to claim 3 , wherein assessing the fill status comprises selecting the first input buffer by detecting that the first input buffer is filled above a first threshold, and selecting the second input buffer by detecting that the second input buffer is filled below a second threshold.

6. The method according to claim 1 , wherein evaluating the condition comprises assessing spare capacities of respective interfaces that connect to at least some of the input buffers.

7. The method according to claim 6 , wherein assessing the spare capacities comprises identifying a subset of the input buffers whose respective interfaces have the spare capacities, and selecting the first and second input buffers from the subset.

8. The method according to claim 1 , wherein selecting the output ports and forwarding the buffered data packets to the output ports comprise executing a data-path process, and wherein sharing the storage of the data packets among the input buffers comprises executing a control-path process independently of the data-path process.

9. The method according to claim 8 , wherein executing the data-path and control-path processes comprises operating first and second packet switches independently of one another, such that the first packet switch selects the output ports and forwards the buffered data packets to the output ports, and the second packet switch shares the storage of the data packets among the input buffers.

10. The method according to claim 1 , and comprising adaptively assigning a first packet switch to select the output ports and forward the buffered data packets to the output ports, and a second packet switch to share the storage of the data packets among the input buffers.

11. A network element, comprising:

multiple ports comprising respective input buffers, which are configured to buffer data packets entering the network element at the respective ports; and

circuitry, which is configured to share storage of the data packets among the input buffers by evaluating a condition related to the ports and, when the condition is met, moving at least one data packet from a first input buffer of a first port, via which the at least one data packet entered the network element, to a second input buffer of a second port, which is different from the first port and via which the at least one data packet did not enter the network element, wherein the circuitry is further configured to select from among the ports respective output ports via which the buffered data packets are to exit the network element, and to forward the buffered data packets to the selected output ports.

12. The network element according to claim 11 , wherein, upon selecting the output ports, the circuitry is configured to add to output queues that are respectively associated with the output ports entries, which indicate locations of the data packets in the input buffers, and wherein, upon moving the data packet, the circuitry is configured to update an entry of the data packet to indicate the location of the data packet in the second input buffer.

13. The network element according to claim 11 , wherein the circuitry is configured to evaluate the condition by assessing a fill status of at least some of the input buffers.

14. The network element according to claim 13 , wherein the circuitry is configured to identify an imbalance in the fill status of the at least some of the input buffers, and to reduce the imbalance by moving the data packet.

15. The network element according to claim 13 , wherein the circuitry is configured to select the first input buffer by detecting that the first input buffer is filled above a first threshold, and to select the second input buffer by detecting that the second input buffer is filled below a second threshold.

16. The network element according to claim 11 , wherein the circuitry is configured to evaluate the condition by assessing spare capacities of respective interfaces that connect to at least some of the input buffers.

17. The network element according to claim 16 , wherein the circuitry is configured to identify a subset of the input buffers whose respective interfaces have the spare capacities, and to select the first and second input buffers from the subset.

18. The network element according to claim 11 , wherein the circuitry is configured to select the output ports and forward the buffered data packets to the output ports by executing a data-path process, and to share the storage of the data packets among the input buffers by executing a control-path process independently of the data-path process.

19. The network element according to claim 11 , wherein the circuitry comprises first and second packet switches that operate independently of one another, wherein the first packet switch is configured to select the output ports and forward the buffered data packets to the output ports, and wherein the second packet switch is configured to share the storage of the data packets among the input buffers.

20. The network element according to claim 11 , wherein the circuitry is configured to adaptively assign a first packet switch to select the output ports and forward the buffered data packets to the output ports, and a second packet switch to share the storage of the data packets among the input buffers.

Assignments (2)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37898/0959 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 046542/0699 →
PATENT SECURITY AGREEMENT Recorded Feb 23, 2016
From: MELLANOX TECHNOLOGIES TLV LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037898/0959 →