Capturing Packets With Parallel Capture Engines
AssigneeIxia
InventorsGerald Pepper, Manley Klassen, Dwayne Hunnicutt
Life of this patent
Estimating the term…
Abstract
There is disclosed a method of capturing packets and packet receivers to capture packets. A plurality of packets may be received form a network. A timestamp may be attached to each received packet. The timestamped received packet may be distributed among a plurality of capture engines. Each of the plurality of capture engines may store, in a respective capture memory of a plurality of capture memories, at least some timestamped received packets determined to match one or more of a plurality of predetermined capture criteria. A list in timestamp order of contiguous packets stored in the plurality of capture memories may be prepared.
Claims28
A method of capturing packets, comprising:
- receiving packets from a network
- attaching a timestamp to each received packet
- distributing the received packets among a plurality of capture engines, each capture engine associated with a respective one of a plurality of capture memories
- capturing at least some of the received packets, wherein each capture engine of the plurality of capture engine performs actions including:
- determining if each received packet distributed to the capture engine matches one or more of a plurality of predetermined capture criteria
- storing, in the associated capture memory, at least some of the received packets distributed to the capture engine that match one or more of the plurality of capture criteria
- discontinuing capturing received packets in accordance with a predetermined completion criteria
- after discontinuing capturing received packets, eliminating non-contiguous packets from the packets stored by the plurality of capture engines in the plurality of capture memories and preparing a list in timestamp order of contiguous packets stored by the plurality of capture engines.
The method of claim 8, wherein each received packet is held in one FIFO queue of the plurality of FIFO queues for a period equal to the predetermined delay time.
A traffic receiver, comprising:
- a plurality of capture engines to capture packets, each capture engine associated with a respective one of a plurality of capture memories
- a network interface unit to receive packets from a network
- a timestamper configured to attach a timestamp to each received packet
- a packet distribution engine configured to distribute the timestamped received packets among the plurality of capture engines
- wherein each of the plurality of capture engines is configured to capture packets by performing actions including
- determining if each received packet distributed to the capture engine matches one or more of a plurality of predetermined capture criteria
- storing, in the respective capture memory, at least some of the received packets that match one or more of the plurality of capture criteria.
A machine readable storage medium having programming code stored thereon which, when used to program a programmable circuit device, will cause the programmable circuit device to be configured to include a capture engine, the capture engine performing actions comprising:
- receiving a plurality of timestamped received packets
- determining if each timestamped received packet matches one or more of a plurality of predetermined capture criteria including a trigger criteria, a pre-trigger criteria, and post-trigger criteria, wherein a first time any one of the plurality of capture engines determines that a timestamped received packet matches the trigger criteria is considered a trigger event
- when the trigger event has not yet occurred, storing in an associated capture memory only timestamped received packets that match the pre-trigger criteria
- when the trigger event has occurred
- storing in the associated capture memory each timestamped received packet that matches one or more of the pre-trigger criteria, the trigger criteria, and the post-trigger criteria during a predetermined delay time after the trigger event
- after the predetermined delay time has elapsed, storing in the associated capture memory only timestamped received packets that match the post-trigger criteria.
A traffic receiver, comprising:
- a plurality of capture engines
- a network interface unit to receive packets from a network
- a timestamper that attaches a timestamp to each received packet
- a packet distribution engine that distributes timestamped received packet among a plurality of capture engines
- wherein each of the plurality of capture engines further comprises:
- a plurality of filters, each filter associated with a corresponding one of a plurality of predetermined capture criteria, each filter effective to determine if a received packet matches the associated capture criteria
- a delay buffer which delays packets that match at least one of the capture criteria for a predetermined delay time
- a capture memory
- a memory controller coupled to receive delayed packets from the delay buffer, the memory controller effective to store at least some of the delayed packets received from the delay buffer in the capture memory.
A machine readable storage medium having programming code stored thereon which, when used to program a programmable circuit device, will cause the programmable circuit device to be configured to include a capture engine, the capture engine comprising:
- a plurality of filters, each filter associated with a corresponding one of a plurality of predetermined capture criteria, each filter effective to determine if a received packet matches the associated capture criteria
- a delay buffer which delays received packets that match at least one of the capture criteria for a predetermined delay time
- a memory controller coupled to receive delayed packets from the delay buffer and effective to store at least some of the delayed packets from the delay buffer in a capture memory.
Dependencies are inferred from the claim text.