IP Library Granted Patent US 8,121,148
Granted Patent B2
US 8,121,148 · App. 11/298,106 · Granted Feb 21, 2012

Protocol stack using shared memory

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,121,148
App. No.
11/298,106
Granted
Feb 21, 2012
Kind
B2
Abstract

There are disclosed processes and systems relating to optimized network traffic generation and reception. Application programs and a protocol stack may share a memory space. The protocol stack may designate available bandwidth for use by an application program. The application programs may store descriptors from which the protocol stack may form payload data for data units.

Claims (49)

1. A process of transmitting data units with a protocol stack, the protocol stack disposed in a kernel space and comprising a plurality of interfaced layers in which data units are received at the highest layer and logically passed down to and processed by succeeding lower layers, the process comprising

designating at least one region in kernel memory for storage of descriptors of headers and of payload data by an application program operative in user space

notifying the application about the region in kernel memory for storage of descriptors

retrieving from the kernel memory header and payload descriptors stored in the kernel memory by the application program

evaluating the retrieved payload descriptors to determine a type of payload data selected from the group including arbitrary, random, constant, mixed and macro

forming data units from the descriptors stored in the kernel memory based on a header indicated by the descriptors and based on the type of payload data indicated by the descriptors, including

when a particular descriptor is random or constant, the forming is performed in hardware

when a payload descriptor is mixed, including at least two of null, raw, constant, random and arbitrary data according to the payload descriptor

transmitting the data units.

2. The process of transmitting data units with a protocol stack of claim 1 further comprising

the protocol stack notifying the application program of bandwidth available and how to use the available bandwidth.

3. The process of transmitting data units with a protocol stack of claim 2

wherein notifying includes information about timing and amount of data.

4. The process of transmitting data units with a protocol stack of claim 1

wherein if a given descriptor indicates that the protocol stack can set the payload data to be arbitrary, then the protocol stack sets the payload data for the given descriptor to arbitrary data.

5. The process of transmitting data units with a protocol stack of claim 1

wherein if a given descriptor indicates that the payload data should be random, then the protocol stack setting the payload data for the given descriptor to random data.

6. The process of transmitting data units with a protocol stack of claim 1

wherein if a given descriptor indicates that the payload data should be set to arbitrary, then the protocol stack setting the payload data to a value which is efficient to generate.

7. The process of transmitting data units with a protocol stack of claim 1

wherein if a given descriptor indicates that the payload data should be set to a constant value, then the protocol stack setting the payload data for the given descriptor to the constant value.

8. The process of transmitting data units with a protocol stack of claim 1 wherein

if a given descriptor indicates that the payload data should be set to constant application data pointed to by a buffer, then the protocol stack setting the payload data for the given descriptor to the constant application data pointed to by the buffer.

9. A computing device for transmitting data units with a protocol stack, the computing device comprising

a memory including a kernel memory, a kernel space logically disposed in the kernel memory, the protocol stack disposed in the kernel space

a processor coupled to the memory, the memory having instructions stored therein which when executed by the processor cause the computing device to perform actions comprising

designating at least one region in the kernel memory for storage of descriptors of header and of payload data by an application program operative in user space

operating the protocol stack in the kernel space, the protocol stack comprising a plurality of interfaced layers in which data units are received at the highest layer and logically passed down to and processed by succeeding lower layers

notifying the application about the region in kernel memory for storage of descriptors

retrieving from the kernel memory header and payload descriptors stored in the kernel memory by the application program

evaluating the retrieved payload descriptors to determine a type of payload data selected from the group including arbitrary, random, constant, mixed, and macro

forming data units from the descriptors stored in the kernel memory based on a header indicated by the descriptors and based on the type of payload data indicated by the descriptors, including

when a particular descriptor is random or constant, the forming is performed in hardware

when a payload descriptor is mixed, including in a payload of the data unit at least two of null, raw, constant, random and arbitrary data according to the payload descriptor

transmitting the data units.

10. The computing device for transmitting data units with a protocol stack of claim 9 , further comprising

the protocol stack notifying the application program of bandwidth available and how to use the available bandwidth.

11. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein notifying includes information about timing and amount of data.

12. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein if a given descriptor indicates that the payload data should be arbitrary, then the protocol stack sets the payload data for the given descriptor to arbitrary data.

13. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein if a given descriptor indicates that the payload data should be random, then the protocol stack setting the payload data for the given descriptor to random data.

14. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein if a given descriptor indicates that the payload data should be arbitrary, then the protocol stack setting the payload data to a value which is efficient to generate.

15. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein if a given descriptor indicates that the payload data should be set to a constant value, then the protocol stack setting the payload data for the given descriptor to the constant value.

16. The computing device for transmitting data units with a protocol stack of claim 9 ,

wherein if a given descriptor indicates that the payload data should be set to constant application data pointed to by a buffer, then the protocol stack setting the payload data for the given descriptor to the constant application data pointed to by the buffer.

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 Jan 4, 2007
From: OLDERDISSEN, JAN RA
To: IXIA
Reel/Frame 018710/0529 →