IP Library › Granted Patent US 12,309,074
Granted Patent B2
US 12,309,074 · App. 18/509,810 · Granted May 20, 2025

Ethernet pause aggregation for a relay device

Inventors: Liron Mula (Hertzlia, IL); Zachy Haramaty (Hemed, IL); Shachar Bar Tikva (Petah Tikva, IL); Dekel Dadon (Ramat-Gan, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L47/32H04L47/30
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 12,309,074
App. No.
18/509,810
Granted
May 20, 2025
Kind
B2
Abstract

A relay device is provided that may identify a quantity of empty data byte locations in a data buffer of the relay device. The relay device may receive an indicator associated with transmitting data packets. The relay device may pause or enable a lossless flow of data between the relay device, a host device, and a peer device based on the quantity of empty data byte locations, the indicator, or both. The relay device may include a first data interface coupled with a peer device, a second data interface coupled with a host device, a data buffer configured to store data packets received from the host device, and a state machine that enables a lossless transmission of data between the host device and peer device. The state machine may transmit a pause frame to the host device based on a data buffer utilization reaching a data storage capacity.

Claims (51)

1. A device comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable by the processor to:

receive a control frame associated with transmitting data packets;

determine a state of a state machine based on the control frame;

transmit, when the state of the state machine is a first state, a pause request comprising the control frame to one or more of at least two other devices to pause a flow of data between the device and the one or more of the at least two other devices; and

enable the flow of data between the device and the one or more of the at least two other devices when the state of the state machine is a second state different than the first state, wherein the state of the state machine mirrors a state of one of the at least two other devices.

2. The device of claim 1 , wherein input bandwidth of the device is different than output bandwidth of the device.

3. The device of claim 1 , wherein input bandwidth of the device is greater than output bandwidth of the device.

4. The device of claim 1 , further comprising:

the state machine.

5. The device of claim 1 , further comprising:

a receive buffer that stores the data packets.

6. The device of claim 5 , wherein the memory includes instructions that are executable by the processor to:

determine a quantity of empty data byte locations within the receive buffer;

transmit the pause request to the one or more of the at least two other devices when the quantity of empty data byte locations is below a threshold; and

enable the flow of data between the device and the one or more of the at least two other devices when the quantity of empty data byte locations is above the threshold.

7. The device of claim 1 , wherein the data packets are secured with a security protocol.

8. The device of claim 7 , wherein the security protocol corresponds to Media Access Control Security (MACsec).

9. The device of claim 7 , wherein the security protocol corresponds to Internet Protocol security (IPsec).

10. A system comprising:

a host device;

a peer device; and

a relay device connected between the host device and the peer device, the relay device comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable by the processor to:

receive a control frame associated with data packets;

determine a state of a state machine based on the control frame;

transmit, when the state of the state machine is a first state, a pause request comprising the control frame to the host device or the peer device to pause a flow of data between the host device and the peer device; and

enable the flow of data between the host device and the peer device when the state of the state machine is a second state different than the first state, wherein the state of the state machine mirrors a state of one of the host device or the peer device.

11. The system of claim 10 , wherein bandwidth of the relay device at a side connected to the host device is different than bandwidth of the relay device at a side connected to the peer device.

12. The system of claim 11 , wherein the bandwidth of the relay device at the side connected to the host device is greater than the bandwidth of the relay device at the side connected to the peer device.

13. The system of claim 10 , wherein the relay device further comprises the state machine.

14. The system of claim 10 , wherein the relay device further comprises:

a receive buffer that stores the data packets.

15. The system of claim 14 , wherein the memory includes instructions that are executable by the processor to:

determine a quantity of empty data byte locations within the receive buffer;

transmit the pause request to the host device or the peer device when the quantity of empty data byte locations is below a threshold; and

enable the flow of data between the host device and the peer device when the quantity of empty data byte locations is above the threshold.

16. The system of claim 10 , wherein the data packets are secured with a security protocol.

17. A device, comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory, the instructions being executable by the processor to:

receive a control frame associated with data packets;

determine a state of a state machine based on the control frame;

transmit, when the state of the state machine is a first state, a pause request comprising the control frame to one or more of at least two other devices to pause a flow of data between the device and the one or more of the at least two other devices;

determine that the state of the state machine changes from the first state to a second state different than the first state; and

enable, in response to the first state changing to the second state, the flow of data between the device and the one or more of the at least two other devices, wherein the state of the state machine mirrors a state of the one or more of the at least two other devices.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2024
From: MULA, LIRON; HARAMATY, ZACHY; TIKVA, SHACHAR BAR; DADON, DEKEL
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 066438/0413 →
Continuity (2)
Continuation 17398677 · Aug 10, 2021
Related Publication 20240089211A1 · Mar 14, 2024
References Cited (41)
US 4093823A · Chu · 1978 [cited by examiner]
US 7930341B1 · Chayat · 2011 [cited by examiner]
US 7948883B1 · Croft, Jr. · 2011 [cited by examiner]
US 8910168B2 · Mital · 2014 [cited by examiner]
US 9871608B1 · Chang · 2018 [cited by examiner]
US 9929829B1 · Huang · 2018 [cited by examiner]
US 10129153B2 · Caulfield · 2018 [cited by examiner]
US 10505851B1 · Matthews · 2019 [cited by examiner]
US 10530869B2 · Brown · 2020 [cited by examiner]
US 20050182848A1 · McNeil · 2005 [cited by examiner]
US 20060092837A1 · Kwan · 2006 [cited by examiner]
US 20060198389A1 · Eriokson · 2006 [cited by examiner]
US 20070206496A1 · Roy · 2007 [cited by examiner]
US 20080259798A1 · Loh · 2008 [cited by examiner]
US 20100165846A1 · Yamaguchi · 2010 [cited by examiner]
US 20100322105A1 · Diab · 2010 [cited by examiner]
US 20120014253A1 · Rongong · 2012 [cited by examiner]
US 20120063493A1 · Hasegawa · 2012 [cited by examiner]
US 20120284757A1 · Rajapakse · 2012 [cited by examiner]
US 20120307637A1 · Diab · 2012 [cited by examiner]
US 20130215750A1 · Beecroft · 2013 [cited by examiner]
US 20130250762A1 · Assarpour · 2013 [cited by examiner]
US 20140086054A1 · Rongong · 2014 [cited by examiner]
US 20140146666A1 · Kwan · 2014 [cited by examiner]
US 20140369194A1 · Friedman · 2014 [cited by examiner]
US 20150109928A1 · Yang · 2015 [cited by examiner]
US 20150249529A1 · Zheng · 2015 [cited by examiner]
US 20150263994A1 · Haramaty · 2015 [cited by examiner]
US 20160330788A1 · Zheng · 2016 [cited by examiner]
US 20170279741A1 · Elias · 2017 [cited by examiner]
US 20190173793A1 · Liu · 2019 [cited by examiner]
US 20200106710A1 · Ryoo · 2020 [cited by examiner]
US 20200136985A1 · Sampathkumar · 2020 [cited by examiner]
US 20200396167A1 · Taheri · 2020 [cited by examiner]
US 20220210673A1 · Koshiji · 2022 [cited by examiner]
US 20230047454A1 · Mula et al. · 2023 [cited by applicant]
Extended European Search Report for Europe Patent Application No. 22189611.1, dated Dec. 9, 2022, 11 pages. [cited by applicant]
Official Action for U.S. Appl. No. 17/398,677, dated Sep. 29, 30 pages. [cited by applicant]
Official Action for U.S. Appl. No. 17/398,677, dated Feb. 9, 2023 30 pages. [cited by applicant]
Official Action for U.S. Appl. No. 17/398,677, dated Jun. 8, 2023 38 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/398,677, dated Sep. 21, 2023 11 pages. [cited by applicant]