IP Library Granted Patent US 9,239,796
Granted Patent B2
US 9,239,796 · App. 13/115,078 · Granted Jan 19, 2016

Methods, systems, and computer readable media for caching and using scatter list metadata to control direct memory access (DMA) receiving of network protocol data

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,239,796
App. No.
13/115,078
Granted
Jan 19, 2016
Kind
B2
Abstract

Methods, systems, and computer readable media for caching and using scatter list metadata to control DMA receiving of network protocol data are described. According to one method, metadata associated with partially used scatter list entries is cached in memory of a scatter list caching engine. Data to be written to host system memory is received. The scatter list caching engine provides the metadata associated with partially used scatter list entries to a DMA controller to control the DMA writing of the data into host system memory.

Claims (37)

1. A method for caching and using scatter list metadata to control DMA receiving of network protocol data by a protocol emulator, the method comprising:

in a network and storage array test device comprising a protocol emulator for receiving and transferring, to system memory of the protocol emulator, fiber channel frames at line rate:

providing a protocol offload engine that receives the fiber channel frames and offloads at least some processing of the fiber channel frames from a central processing unit of the protocol emulator;

caching metadata associated with partially used scatter list entries in memory of a scatter list caching engine comprising a component of the protocol offload engine, the memory of the scatter list caching engine being separate from the system memory of the protocol emulator;

receiving network protocol data to be written to the system memory of the protocol emulator; and

providing, by the scatter list caching engine, the metadata associated with partially used scatter list entries to a DMA controller comprising a component of the protocol emulator to control the DMA writing of the network protocol data into the system memory of the protocol emulator.

2. The method of claim 1 wherein caching metadata associated with a partially used scatter list entry includes caching a current scatter list pointer that points to a next available location in a scatter list buffer corresponding to the scatter list entry following a previous DMA transfer to the scatter list buffer.

3. The method of claim 2 wherein caching metadata associated a partially used scatter list entry includes caching a current size of the scatter list buffer remaining after the previous DMA transfer to the scatter list buffer.

4. The method of claim 3 wherein providing the metadata associated with the scatter list entries to the DMA controller includes providing the current scatter list pointer and the current size of the scatter list buffer to the DMA controller.

5. The method of claim 1 wherein providing the metadata associated with the partially used scatter list entry includes providing metadata for fragmenting the writing of the data across at least one partially used scatter list entry and at least one unused scatter list entry.

6. The method of claim 1 comprising obtaining, by the scatter list caching engine, new scatter list entries from the system memory via burst reads of plural scatter list entries from the system memory.

7. The system of claim 6 wherein the burst reads occur simultaneously with the providing of the metadata to the DMA controller.

8. The method of claim 1 wherein the protocol emulator is configured to analyze received network protocol packets.

9. The method of claim 7 wherein the protocol emulator is configured to implement at least one storage array in a storage area network.

10. The method of claim 7 wherein the protocol emulator includes an aggregation engine for receiving the data and determining whether the data is associated with a fiber channel session.

11. A system for caching and using scatter list metadata to control DMA receiving of network protocol data by a protocol emulator, the system comprising:

a protocol emulator comprising a network and storage array test device for receiving and transferring, to system memory of the protocol emulator, fiber channel frames at line rate, the protocol emulator including:

a central processing unit;

a protocol offload engine that receives the fiber channel frames and offloads at least some processing of the fiber channel frames from the central processing unit;

wherein the system memory of the protocol emulator is accessible by the central processing unit;

an aggregation engine comprising a component of the protocol emulator for receiving data to be DMA transferred to the system memory;

a DMA controller comprising a component of the protocol emulator for controlling the DMA transfer of the network protocol data to the system memory of the protocol emulator; and

a scatter list caching engine comprising a component of the protocol offload engine for caching metadata associated with partially used scatter list entries in memory of the scatter list caching engine separate from the system memory of the protocol emulator and for providing the metadata associated with partially used scatter list entries to the DMA controller to control the DMA writing of the network protocol data into the system memory of the protocol emulator.

12. The system of claim 11 wherein the scatter list caching engine is configure to cache a current scatter list pointer that points to a next available location in a scatter list buffer corresponding to the scatter list entry following a previous DMA transfer to the scatter list buffer.

13. The system of claim 12 wherein the scatter list caching engine is configured to cache a current size of the scatter list buffer remaining after the previous DMA transfer to the scatter list buffer.

14. The system of claim 13 wherein the scatter list caching engine is configured to provide the current scatter list pointer and the current size of the scatter list buffer to the DMA controller.

15. The system of claim 11 wherein the scatter list caching engine is configured to provide metadata for fragmenting the writing of the data across at least one partially used scatter list entry and at least one unused scatter list entry to the DMA controller.

16. The system of claim 11 wherein the scatter list caching engine is configured to obtain new scatter list entries from the system memory via burst reads of plural scatter list entries from the system memory.

17. The system of claim 11 wherein the protocol emulator is configured to analyze received network protocol packets.

18. The system of claim 17 wherein the protocol emulator is configured to implement at least one storage array in a storage area network.

19. The system of claim 18 wherein the aggregation engine is configured to determine whether the data is associated with a fiber channel session.

20. A non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the computer to perform steps comprising:

in a network and storage array test device comprising a protocol emulator capable of receiving and transferring, to system memory of the protocol emulator, fiber channel frames at line rate:

providing a protocol offload engine that receives the fiber channel frames and offloads at least some processing of the fiber channel frames from a central processing unit of the protocol emulator;

caching metadata associated with partially used scatter list entries in memory of a scatter list caching engine comprising a component of the protocol offload engine, the memory of the scatter list caching engine being separate from the system memory of the protocol network emulator;

receiving network protocol data to be written to the system memory of the protocol emulator; and

providing, by the scatter list caching engine, the metadata associated with partially used scatter list entries to a DMA controller comprising a component of the protocol emulator to control the DMA writing of the network protocol data into the system memory of the protocol emulator.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: IXIA
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2011
From: RADU, OCTAVIAN MIHAI; LUKING, ROBERT BRIAN
To: IXIA
Reel/Frame 026673/0056 →