IP Library Granted Patent US 9,118,565
Granted Patent B1
US 9,118,565 · App. 14/551,496 · Granted Aug 25, 2015

Hardware method for detecting timeout conditions in a large number of data connections

Inventor: Jeffrey T. McLamb (Raleigh, NC)
Assignee: EMC Corporation
H04L43/10
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 9,118,565
App. No.
14/551,496
Granted
Aug 25, 2015
Kind
B1
Abstract

Tracking several open data connections is difficult with a large number of connections. Checking for timeouts in software uses valuable processor resources. Employing a co-processor dedicated to checking timeouts uses valuable logic resources and consumes extra space. In one embodiment, a finite state machine implemented in hardware increases the speed connections can be checked for timeouts. The finite state machine stores a last accessed time stamp for each connection in a memory, and loops through the memory to compare each last accessed time stamp with a current time stamp of the system minus a global timeout value. In this manner, the finite state machine can efficiently find and react to timed out connections.

Claims (36)

1. A method comprising:

performing a timestamp analysis by:

a) when a status property of a location indicated by a memory pointer is active

reading a last accessed timestamp corresponding to the location indicated by the memory pointer;

determining whether a timeout has occurred based on the last accessed timestamp, a current timestamp and a stored time out value; and

if a timeout has occurred, and the location of the memory pointer is active, (i) notifying a higher communication layer, and (ii) updating the status property of the location indicated by the memory pointer to inactive; and

b) incrementing the memory pointer; and

if an incoming data packet is received, handling the incoming data packet by:

a) processing the incoming data packet with an incoming data handler configured to process the incoming data packet in the higher communication layer;

b) updating the status property of the location indicated by the memory pointer to active, and setting the last accessed timestamp in one of a plurality of locations in a memory buffer.

2. The method of claim 1 further comprising determining whether a timeout has occurred by calculating an expiration timestamp based on the difference of the current timestamp and the stored time out value and triggering a timeout if the expiration timestamp is greater than the last accessed timestamp.

3. The method of claim 1 further comprising incrementing the current timestamp on a clock cycle.

4. The method of claim 1 wherein the incoming data handler is Fibre Channel.

5. The method of claim 1 wherein the memory buffer includes a connection tracking memory buffer.

6. The method of claim 5 wherein the incoming data handler processes data by detecting a new frame on a receive buffer, reading the header of the new frame to update or create timestamp data in a location in the connection tracking memory buffer, and storing the new frame in one of a plurality of data storing memory locations.

7. The method of claim 1 wherein the stored timeout value is at least one of a global timeout value based on a connection protocol and a local timeout value based on an individual connection.

8. The method of claim 1 , wherein handling the packet further includes:

if the incoming data packet is part of a new connection, a new connection status of the incoming data packet indicated by a lack of an entry corresponding to a connection of the incoming data packet in the plurality of memory locations, storing the data packet in one of the locations in the memory buffer.

9. A system comprising:

a plurality of registers, wherein the system is configured to:

when a status property of a location indicated by a memory pointer is active

reading a last accessed timestamp corresponding to the location indicated by the memory pointer;

determining whether a timeout has occurred based on the last accessed timestamp, a current timestamp and a stored time out value; and

if a timeout has occurred, and the location of the memory pointer is active, (i) notifying a higher communication layer, and (ii) updating the status property of the location indicated by the memory pointer to inactive; and

incrementing the memory pointer; and

if an incoming data packet is received, handling the incoming data packet by:

processing the incoming data packet with an incoming data handler configured to process the incoming data packet in the higher communication layer;

updating the status property of the location indicated by the memory pointer to active, and setting the last accessed timestamp in one of a plurality of locations in a memory buffer.

10. The system of claim 9 , further comprising determining whether a timeout has occurred by calculating an expiration timestamp based on a difference of the current timestamp and the stored timeout value and triggering a timeout if the expiration timestamp is greater than the last accessed timestamp.

11. The system of claim 9 further comprising a clock cycle, wherein the state machine is further configured to increment the current timestamp on each clock cycle.

12. The system of claim 9 wherein the incoming data handler is Fibre Channel.

13. The system of claim 9 wherein the memory buffer includes a connection tracking memory buffer.

14. The system of claim 9 wherein the incoming data handler processes data by detecting a new frame on a receive buffer, reading the header of the new frame to update or create timestamp data in a location in the connection tracking memory buffer, and storing the new frame in one of a plurality of data storing memory locations.

15. The system of claim 9 wherein the stored timeout value is at least one of a global timeout value based on a connection protocol and a local timeout value based on an individual connection.

16. The system of claim 9 , wherein handling the packet further includes:

if the incoming data packet is part of a new connection, a new connection status of the incoming data packet indicated by a lack of an entry corresponding to a connection of the incoming data packet in the plurality of memory locations, storing the data packet in one of the locations in the memory buffer.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2015
From: MCLAMB, JEFFREY T.
To: EMC CORPORATION
Reel/Frame 035751/0126 →
Continuity (2)
Continuation 13907315 · May 31, 2013
Continuation 13247364 · Sep 28, 2011