IP Library Granted Patent US 8,891,528
Granted Patent B2
US 8,891,528 · App. 13/530,094 · Granted Nov 18, 2014

Managing the capture of packets in a computing system

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,891,528
App. No.
13/530,094
Granted
Nov 18, 2014
Kind
B2
Abstract

A method for managing the capture of packets in a computing system comprises maintaining a buffer tail pointer in a memory of an instruction executing device, receiving a series of packets at an instruction executing device, for each received packet prepending a header comprising a packet length and a packet pointer set to a current value of the buffer tail pointer, determining a next free memory location by adding the current value of the buffer tail pointer to the length of a previous packet identified by the buffer tail pointer, temporarily writing the packet and prepend header to the next free memory location in a circular packet buffer in a memory coupled to the instruction executing device, and setting the buffer tail pointer to the next free memory location.

Claims (56)

1. A method for managing the capture of packets in a computing system, the method comprising:

maintaining a buffer tail pointer in a memory of an instruction executing device;

receiving a series of packets at the instruction executing device;

for each received packet:

prepending a header comprising a packet length and a packet pointer set to a current value of the buffer tail pointer;

determining a next free memory location by adding the current value of the buffer tail pointer to the length of a previous packet identified by the buffer tail pointer;

temporarily writing the packet and prepend header to the next free memory location in a circular packet buffer in a memory coupled to the instruction executing device; and

setting the buffer tail pointer to the next free memory location; and

upon receipt by the instruction executing device of a command to generate a packet capture file:

creating a forward linked list by a process including, for each packet in the circular buffer:

extracting from the prepend header of that packet the packet pointer to a previously stored packet; and

overwriting the packet pointer to reference a subsequently stored packet; and

storing the forward linked list in the packet capture file.

2. The method of claim 1 , wherein the instruction executing device is a configurable logic device.

3. The method of claim 1 , wherein the instruction executing device is a field programmable gate array (FPGA).

4. The method of claim 1 , wherein the received packets comprise ingress packets and egress packets.

5. The method of claim 4 , wherein ingress packets are linked separately from egress packets.

6. The method of claim 5 , wherein at least one additional pointer is used to separately link ingress and egress packets.

7. The method of claim 5 , wherein the prepend header further comprises a thread type configured to indicate whether the packet is an ingress packet or an egress packet.

8. A tangible, non-transitory computer-readable media comprising a configuration file that when loaded by a configurable logic device (CLD) configures the CLD to:

maintain a buffer tail pointer in a memory of the CLD;

receive a series of packets at the CLD;

for each received packet:

prepend a header comprising a packet length and a packet pointer set to a current value of the buffer tail pointer;

determine a next free memory location by adding the current value of the buffer tail pointer to the length of a previous packet identified by the buffer tail pointer;

temporarily write the packet and prepend header to the next free memory location in a circular packet buffer in a memory coupled to the CLD; and

set the buffer tail pointer to the next free memory location; and

upon receipt by the CLD of a command to generate a packet capture file:

create a forward linked list by a process including, for each packet in the circular buffer:

extract from the prepend header of that packet the packet pointer to a previously stored packet; and

overwrite the packet pointer to reference a subsequently stored packet; and

store the forward linked list in the packet capture file.

9. The media of claim 8 , wherein the CLD is a field programmable gate array (FPGA).

10. The media of claim 8 , wherein the received packets comprise ingress packets and egress packets.

11. The media of claim 10 , wherein ingress packets are linked separately from egress packets.

12. The media of claim 11 , wherein at least one additional pointer is used to separately link ingress and egress packets.

13. The media of claim 10 , wherein the prepend header further comprises a thread type configured to indicate whether the packet is an ingress packet or an egress packet.

14. A computing system comprising:

a configurable logic device (CLD) configured to:

maintain a buffer tail pointer in a memory of the CLD;

receive a series of packets at the CLD;

for each received packet:

prepend a header comprising a packet length and a packet pointer set to a current value of the buffer tail pointer;

determine a next free memory location by adding the current value of the buffer tail pointer to the length of a previous packet identified by the buffer tail pointer;

temporarily write the packet and prepend header to the next free memory location in a circular packet buffer in a memory coupled to the CLD; and

set the buffer tail pointer to the next free memory location; and

upon receipt by the CLD of a command to generate a packet capture file:

create a forward linked list by a process including, for each packet in the circular buffer:

extract from the prepend header of that packet the packet pointer to a previously stored packet; and

overwrite the packet pointer to reference a subsequently stored packet; and

store the forward linked list in the packet capture file.

15. The system of claim 14 , wherein the CLD is a field programmable gate array (FPGA).

16. The system of claim 14 , wherein the received packets comprise ingress packets and egress packets.

17. The system of claim 16 , wherein ingress packets are linked separately from egress packets.

18. The system of claim 17 , wherein at least one additional pointer is used to separately link ingress and egress packets.

19. The system of claim 16 , wherein the prepend header further comprises a thread type configured to indicate whether the packet is an ingress packet or an egress packet.

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 19, 2017
From: BREAKINGPOINT SYSTEMS, INC.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 043898/0980 →
RELEASE OF SECURITY INTEREST Recorded Apr 24, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 042126/0181 →
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: BREAKINGPOINT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0136 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2012
From: MORIARTY, MICHAEL; VETEIKIS, MARK; STROUD, JONATHAN
To: BREAKINGPOINT SYSTEMS, INC.
Reel/Frame 029406/0929 →