IP Library Granted Patent US 12,101,229
Granted Patent B2
US 12,101,229 · App. 17/531,468 · Granted Sep 24, 2024

Generation of data packets for high speed network testing using range variable field modifiers

Inventors: Jocelyn Kunimitsu (Aiea, HI); Craig Fujikami (Honolulu, HI)
Assignee: Spirent Communications, Inc.
H04L41/145H04L43/106
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,101,229
App. No.
17/531,468
Granted
Sep 24, 2024
Kind
B2
Abstract

The disclosed technology teaches techniques for generating a high quantity of internet traffic flows, such as in the form of data packets, to stress test network components by using range variable field modifiers. The techniques generate a large scale of flows at a relatively fast speed by using a process that may involve a finite state machine feedback loop and a multiple range variable field modifier process. Start and end range pointers for range entries of data packet modifiers are stored in memory and used with pointer and counter values, which are varied and updated in a relatively fast feedback loop. Data packet modifiers may be selected based on the pointer and counter values and are used to modify or generate data packets.

Claims (68)

1. A method of generating data packets for network stress testing, the method comprising:

storing in a memory a plurality of sets of range entries of data packet modifiers;

reading from the memory respective start and end range pointers, and determining an offset value and a maximum value, for each of the range entries of the data packet modifiers in each of the sets of range entries;

setting a pointer value;

varying a counter value;

when the counter value is not between the start and end range pointers of a range entry and is greater than the maximum value for the range entry, of the plurality of sets of range entries, of the data packet modifiers that correspond to the pointer value:

updating the pointer value to a corrected pointer value that corresponds to a different one of the range entries, of the plurality of sets of range entries of the data packet modifiers, wherein the different one of the range entries encompasses the counter value, and the counter value is less than the maximum value for the different one of the range entries; and

generating or modifying at least a portion of a header of a data packet based on the corrected pointer value and the counter value.

2. The method of claim 1 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

using the corrected pointer value and the counter value to retrieve from the memory a particular data packet modifier among the plurality of sets of range entries; and

generating or modifying the at least a portion of the header of the data packet based on the particular data packet modifier.

3. The method of claim 1 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

combining, via a mathematical operation, the counter value and a particular data packet modifier corresponding to the corrected pointer value to generate or modify the at least a portion of the header of the data packet.

4. The method of claim 3 , wherein the combining, via the mathematical operation, generates an address to a lookup table stored in the memory, the method further comprising:

based on the address, retrieving from the memory a particular value from the lookup table; and

modifying the at least a portion of the header of the data packet based on the particular value.

5. The method of claim 3 , further comprising:

receiving a modal input value; and

changing the mathematical operation based on the modal input value.

6. The method of claim 1 , wherein the at least a portion of the header of the data packet comprises an address portion.

7. The method of claim 1 , further comprising:

comparing the counter value to a threshold value;

when the counter value exceeds the threshold value, resetting the counter value to an initial value; and

repeating one or more of the reading, the setting, the varying, the updating, and the generating or modifying using the reset counter value.

8. A non-transitory computer-readable recording medium storing computer instructions thereon, the computer instructions, when executed by a processor, cause the processor to implement a method comprising:

storing in a memory a plurality of sets of range entries of data packet modifiers;

reading from the memory respective start and end range pointers, and determining an offset value and a maximum value, for each of the range entries of the data packet modifiers in each of the sets of range entries;

setting a pointer value;

varying a counter value;

when the counter value is not between the start and end range pointers of a range entry and is greater than the maximum value for the range entry, of the plurality of sets of range entries, of the data packet modifiers that correspond to the pointer value:

updating the pointer value to a corrected pointer value that corresponds to a different one of the range entries, of the plurality of sets of range entries of the data packet modifiers, wherein the different one of the range entries encompasses the counter value, and the counter value is less than the maximum value for the different one of the range entries; and

generating or modifying at least a portion of a header of a data packet based on the corrected pointer value and the counter value.

9. The non-transitory computer-readable recording medium of claim 8 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

using the corrected pointer value and the counter value to retrieve from the memory a particular data packet modifier among the plurality of sets of range entries; and

generating or modifying the at least a portion of the header of the data packet based on the particular data packet modifier.

10. The non-transitory computer-readable recording medium of claim 8 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

combining, via a mathematical operation, the counter value and a particular data packet modifier corresponding to the corrected pointer value to generate or modify the at least a portion of the header of the data packet.

11. The non-transitory computer-readable recording medium of claim 10 , wherein the combining, via the mathematical operation, generates an address to a lookup table stored in the memory, and the method further comprises:

based on the address, retrieving from the memory a particular value from the lookup table; and

modifying the at least a portion of the header of the data packet based on the particular value.

12. The non-transitory computer-readable recording medium of claim 10 , wherein the method further comprises:

receiving a modal input value; and

changing the mathematical operation based on the modal input value.

13. The non-transitory computer-readable recording medium of claim 8 , wherein the at least a portion of the header of the data packet comprises an address portion.

14. The non-transitory computer-readable recording medium of claim 8 , wherein the method further comprises:

comparing the counter value to a threshold value;

when the counter value exceeds the threshold value, resetting the counter value to an initial value; and

repeating one or more of the reading, the setting, the varying, the updating, and the generating or modifying using the reset counter value.

15. A system comprising one or more processors and a memory, the memory storing instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

storing in a memory a plurality of sets of range entries of data packet modifiers;

reading from the memory respective start and end range pointers, and determining an offset value and a maximum value, for each of the range entries of the data packet modifiers in each of the sets of range entries;

setting a pointer value;

varying a counter value;

when the counter value is not between the start and end range pointers of a range entry and is greater than the maximum value for the range entry, of the plurality of sets of range entries, of the data packet modifiers that correspond to the pointer value:

updating the pointer value to a corrected pointer value that corresponds to a different one of the range entries, of the plurality of sets of range entries of the data packet modifiers, wherein the different one of the range entries encompasses the counter value, and the counter value is less than the maximum value for the different one of the range entries; and

generating or modifying at least a portion of a header of a data packet based on the corrected pointer value and the counter value.

16. The system of claim 15 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

using the corrected pointer value and the counter value to retrieve from the memory a particular data packet modifier among the plurality of sets of range entries; and

generating or modifying the at least a portion of the header of the data packet based on the particular data packet modifier.

17. The system of claim 15 , wherein generating or modifying the at least a portion of the header of the data packet based on the corrected pointer value and the counter value further comprises:

combining, via a mathematical operation, the counter value and a particular data packet modifier corresponding to the corrected pointer value to generate or modify the at least a portion of the header of the data packet.

18. The system of claim 17 , wherein the combining, via the mathematical operation, generates an address to a lookup table stored in the memory, and the operations further comprise:

based on the address, retrieving from the memory a particular value from the lookup table; and

modifying the at least a portion of the header of the data packet based on the particular value.

19. The system of claim 17 , wherein the operations further comprise:

receiving a modal input value; and

changing the mathematical operation based on the modal input value.

20. The system of claim 15 , wherein the at least a portion of the header of the data packet comprises an address portion.

Assignments (5)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 73189/0873 Recorded May 28, 2026
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: INERTIAL LABS, INC.; VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC
Reel/Frame 075642/0381 →
SECURITY INTEREST Recorded Nov 14, 2025
From: VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC; INERTIAL LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 073571/0137 →
SECURITY AGREEMENT Recorded Oct 21, 2025
From: INERTIAL LABS, INC.; VIAVI SOLUTIONS INC.; VIAVI SOLUTIONS LICENSING LLC
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 073189/0873 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2025
From: SPIRENT COMMUNICATIONS, INC.
To: VIAVI SOLUTIONS LICENSING LLC
Reel/Frame 073121/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2022
From: KUNIMITSU, JOCELYN; FUJIKAMI, CRAIG
To: SPIRENT COMMUNICATIONS, INC.
Reel/Frame 059425/0142 →
Continuity (2)
Provisional Application 63117279 · Nov 23, 2020
Related Publication 20220166680A1 · May 26, 2022
Cited By (1)
US 12,580,840