IP Library Granted Patent US 10,250,530
Granted Patent B2
US 10,250,530 · App. 15/063,527 · Granted Apr 2, 2019

Flexible buffer allocation in a network switch

Inventors: Niv Aibester (Herzliya, IL); Amir Roitshtein (Holon, IL); Barak Gafni (Kfar Malal, IL); George Elias (Tel Aviv, IL); Itamar Rabenstein (Petah Tikva, IL)
Assignee: Mellanox Technologies TLV Ltd.
H04L49/9005
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 10,250,530
App. No.
15/063,527
Granted
Apr 2, 2019
Kind
B2
Abstract

Communication apparatus includes multiple interfaces configured to be connected to a packet data network for receiving and forwarding of data packets of multiple types. A memory is coupled to the interfaces and configured as a buffer to contain packets received through the ingress interfaces while awaiting transmission to the network via the egress interfaces. Packet processing logic is configured to maintain multiple transmit queues, which are associated with respective ones of the egress interfaces, and to place both first and second queue entries, corresponding to first and second data packets of the first and second types, respectively, in a common transmit queue for transmission through a given egress interface, while allocating respective spaces in the buffer to store the first and second data packets against separate, first and second buffer allocations, which are respectively assigned to the first and second types of the data packets.

Claims (23)

1. Communication apparatus, comprising:

multiple interfaces configured to be connected to a packet data network so as to serve as both ingress and egress interfaces in receiving and forwarding of data packets of multiple different types, including at least first and second types, from and to the network by the apparatus;

a memory coupled to the interfaces and configured as a buffer to contain packets received through the ingress interfaces while awaiting transmission to the network via the egress interfaces; and

packet processing logic, which is configured to maintain multiple transmit queues, which are associated with respective ones of the egress interfaces, and to place both first and second queue entries, corresponding to first and second data packets of the first and second types, respectively, in a common transmit queue for transmission through a given egress interface, while allocating respective spaces in the buffer to store the first and second data packets against separate, first and second buffer allocations, which are respectively assigned to the first and second types of the data packets,

wherein the multiple transmit queues comprise at least two transmit queues that are both associated with the same, given egress interface and have different, respective levels of quality of service, and wherein the first and second data packets of the different, first and second types have a common level of quality of service.

2. The apparatus according to claim 1 , wherein the first and second types of the data packets are transmitted using different, respective, first and second transport protocols.

3. The apparatus according to claim 1 , wherein the packet processing logic is configured, when a given queue entry reaches a head of the common transmit queue, to transmit a corresponding data packet through the given egress interface and to release a corresponding space in a respective one of the first and second buffer allocations.

4. The apparatus according to claim 1 , wherein the first buffer allocation is shared over multiple transmit queues associated with multiple, different egress interfaces through which the data packets of the first type are transmitted.

5. The apparatus according to claim 1 , wherein the packet processing logic is configured to apply a congestion avoidance mechanism separately to the first and second types of the data packets responsively to respective fill levels of the first and second buffer allocations.

6. The apparatus according to claim 1 , wherein the first type of the data packets consists of unicast packets, while the second type of the data packets consists of multicast packets.

7. A method for communication, comprising:

receiving through ingress interfaces of a network element data packets of multiple different types, including at least first and second types;

allocating respective spaces in a buffer in the network element to store the first and second data packets against separate, first and second buffer allocations, which are respectively assigned to the first and second types of the data packets, while the data packets await transmission to the network via egress interfaces of the network element;

maintaining in the network element multiple transmit queues, which are associated with respective ones of the egress interfaces,

wherein maintaining the multiple transmit queues comprises associating at least two transmit queues, having different, respective levels of quality of service, with the same, given egress interface;

placing both first and second queue entries, corresponding to first and second data packets of the first and second types, respectively, in a common transmit queue for transmission through a given egress interface,

wherein the first and second data packets of the different, first and second types have a common level of quality of service; and

transmitting each the first and second data packets through the given egress interface when the corresponding queue entries reach a head of the common transmit queue.

8. The method according to claim 7 , wherein the first and second types of the data packets are transmitted using different, respective, first and second transport protocols.

9. The method according to claim 7 , wherein transmitting each of the first and second data packets comprises releasing a corresponding space in a respective one of the first and second buffer allocations upon transmitting a corresponding data packet through the given egress interface.

10. The method according to claim 7 , wherein allocating the respective spaces comprises sharing the first buffer allocation over multiple transmit queues associated with multiple, different egress interfaces through which the data packets of the first type are transmitted.

11. The method according to claim 7 , and comprising applying a congestion avoidance mechanism separately to the first and second types of the data packets responsively to respective fill levels of the first and second buffer allocations.

12. The method according to claim 7 , wherein the first type of the data packets consists of unicast packets, while the second type of the data packets consists of multicast packets.

Assignments (4)
MERGER Recorded Dec 15, 2021
From: MELLANOX TECHNOLOGIES TLV LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 058517/0564 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2016
From: AIBESTER, NIV; ROITSHTEIN, AMIR; GAFNI, BARAK; ELIAS, GEORGE; RABENSTEIN, ITAMAR
To: MELLANOX TECHNOLOGIES TLV LTD.
Reel/Frame 037914/0933 →
Continuity (1)
Related Publication 20170264571A1 · Sep 14, 2017
Cited By (4)
US 12,192,122 US 12,231,343 US 12,375,404 US 12,474,833