IP Library Granted Patent US 7,173,943
Granted Patent B1
US 7,173,943 · App. 10/082,886 · Granted Feb 6, 2007

Protocol analyzer and time precise method for capturing multi-directional packet traffic

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 7,173,943
App. No.
10/082,886
Granted
Feb 6, 2007
Kind
B1
Abstract

An apparatus and method for selecting and recording multi-directional communication packet traffic in a compact manner in realtime while maintaining relative time between the selected packets passing in one direction and the selected packets passing in another direction. The apparatus includes a protocol interface, a block datapath, a record resource, and a trace merge memory. The protocol interface receives X and Y channel packets with interspersed idle times, segments the packets into time-aligned X and Y blocks, and eliminates idle times. The block datapath merges the X and Y blocks, then filters unneeded X and Y channel packets by purging the X and Y blocks from those packets. The record resource compares patterns for identifying the unneeded packets and trigger events. The trace merge memory records the time-aligned filtered merged block stream in a compact form for later analysis.

Claims (77)

1. A method for receiving first and second packets from first and second directions, respectively, comprising:

segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium;

purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets; and

purging certain said Y blocks from said merged block stream when a Y purge pattern is identified within one of said certain Y blocks, wherein said certain Y blocks are said Y blocks segmented from a certain one of said second packets.

2. The method of claim 1 , further comprising:

recording said X and Y blocks not purged from said merged block stream into addresses ordered according to times said X and Y blocks are received from said medium.

3. The method of claim 1 , further comprising:

marking said X and Y blocks at the starts of said first and second packets as block_one blocks, a certain said X block_one starting said certain X blocks and a certain Y block_one block starting said certain Y blocks;

associating said X and Y block_one blocks with sequential packet addresses in said merge order, certain ones of said packet addresses associated with said certain X and Y block_one blocks;

pipelining said X and Y blocks in said merged block stream for providing pipelined said X and Y blocks, respectively, at a later time; and

while said certain X and Y blocks are pipelining for providing certain said pipelined X and Y blocks, respectively, examining said certain X and Y blocks for said X and Y purge patterns; and storing X and Y purge/record tags at said certain packet addresses, said purge/record tags having a purge sense when said X and Y purge patterns, respectively, are identified.

4. The method of claim 3 , further comprising:

pipelining said packet addresses at the same time as said X and Y blocks are pipelining for providing pipelined said packet addresses; and

using certain said pipelined packet addresses associated with said certain X and Y block_one blocks for retrieving said X and Y purge/record tags; wherein

the steps of purging said certain X and Y blocks includes purging said certain pipelined X and Y blocks when said X and Y purge/record tags, respectively, have said purge sense.

5. A method for receiving first and second packets from first and second directions, respectively, comprising:

segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium;

purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets;

stuffing blank said X blocks into an X stream of said X blocks when one of said second packets but not one of said first packets is present on said medium; and

stuffing blank said Y blocks into a Y stream of said Y blocks when one of said first packets but not said second packets is present on said medium; wherein:

the step of interleaving includes using said blank X and Y blocks as place holders for merging said X and Y streams and then discards said X and Y blank blocks from said merged block stream.

6. A method for receiving first and second packets from first and second directions, respectively, comprising:

segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium; and

purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets; wherein:

the step of segmenting includes generating X and Y streams for said X and Y blocks, respectively, when said first and second packets, respectively, are present on said medium; not generating said X and Y streams during idle times; and time stamping said X and Y block streams for reestablishing reception times of said X and Y blocks.

7. A method for receiving first and second packets from first and second directions, respectively, comprising:

segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium;

purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets;

pipelining said X and Y blocks in said merged block stream for providing pipelined said X and Y blocks, respectively, at a later time;

while said X blocks are pipelining, issuing a stop trigger when one of said X blocks includes a trigger pattern; and

recording said pipelined X and Y blocks not purged in a memory for a selected number of said pipelined X and Y blocks after said stop trigger is issued; wherein

the step segmenting includes marking at least one following one of said X blocks with said post trigger mark, said post trigger mark for use by a user for locating an event corresponding to said trigger pattern.

8. An apparatus for receiving first and second said packets from first and second directions, respectively, comprising:

X and Y block sequencers for segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

a block interleaver for interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium; and

a packet filter for purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets; wherein:

the packet filter is further for purging certain said Y blocks from said merged block stream when a Y purge pattern is identified within one of said certain Y blocks, wherein said certain Y blocks are said Y blocks segmented from a certain one of said second packets.

9. The apparatus of claim 8 , further comprising:

a trace merge memory for recording said X and Y blocks of said purged block stream at addresses ordered according to times said X and Y blocks are received from said medium.

10. The apparatus of claim 8 , wherein:

the X and Y block sequencers are further for marking said X and Y blocks at the starts of said first and second packets as block_one blocks, a certain said X block_one starting said certain X blocks and a certain Y block_one block starting said certain Y blocks; and

the block interleaver is further for associating said X and Y block_one blocks with sequential packet addresses in said merge order, certain ones of said packet addresses associated with said certain X and Y block_one blocks; further comprising:

a block pipeline for pipelining said X and Y blocks in said merged block stream for providing pipelined said X and Y blocks, respectively, at a later time;

a record resource for examining said certain X and Y blocks for said X and Y purge patterns while said certain X and Y blocks are pipelining for providing certain said pipelined X and Y blocks, respectively, and committing X and Y purge/record tags having a purge sense when said X and Y purge patterns are identified; and

a tag memory for storing X and Y purge/record tags at said certain packet addresses.

11. The apparatus of claim 10 , further comprising:

an address pipeline for pipelining said packet addresses at the same time as said X and Y blocks are pipelining for providing pipelined said packet addresses; wherein:

the packet filter uses certain said pipelined packet addresses associated with said certain X and Y block_one blocks for retrieving said X and Y purge/record tags, and purges said certain pipelined X and Y blocks when said X and Y purge/record tags, respectively, have said purge sense.

12. An apparatus for receiving first and second said packets from first and second directions, respectively, comprising:

X and Y block sequencers for segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

a block interleaver for interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium;

a packet filter for purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets; and

X and Y hold-off queues for stuffing blank said X blocks into an X stream of said X blocks when one of said first packets but not one of said second packets is present on said medium and stuffing blank said Y blocks into a Y stream of said Y blocks when one of said second packets but not said first packets is present on said medium, respectively; wherein:

the block interleaver uses said blank X and Y blocks as place holders for merging said X and Y streams and then discards said X and Y blank blocks for compacting said merged block stream.

13. An apparatus for receiving first and second said packets from first and second directions, respectively, comprising:

X and Y block sequencers for segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

a block interleaver for interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium; and

a packet filter for purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets; wherein:

the X and Y block sequencers are further for generating X and Y streams for said X and Y blocks, respectively, when said first and second packets, respectively, are present on said medium; not generating said X and Y streams during idle times; and time stamping said X and Y block streams for reestablishing reception times of said X and Y blocks.

14. An apparatus for receiving first and second said packets from first and second directions, respectively, comprising:

X and Y block sequencers for segmenting said first and second packets into one or more X blocks and one or more Y blocks, respectively;

a block interleaver for interleaving said X and Y blocks into a merged block stream in a merge order according to times when said X and Y blocks are received from a communication medium;

a packet filter for purging certain said X blocks from said merged block stream when an X purge pattern is identified within one of said certain X blocks, wherein said certain X blocks are said X blocks segmented from a certain one of said first packets;

a block pipeline for pipelining said X and Y blocks in said merged block stream for providing pipelined said X and Y blocks, respectively, at a later time;

a record resource for issuing a stop trigger while said X blocks are pipelining when one of said X blocks includes a trigger pattern; and

a trace merge memory for recording said pipelined X and Y blocks not purged in a memory for a selected number of said pipelined X and Y blocks after said stop trigger is issued; wherein:

the X and Y block sequencers are further for marking at least one following one of said X blocks with said post trigger mark, said post trigger mark for use by a user for locating an event corresponding to said trigger pattern.

15. A trace merge memory for storing a representation of packets of multi-directional communication traffic, comprising:

first addressable locations having data for X blocks of first direction packets of said bursts; and

second addressable locations having data for Y blocks of second direction packets of said bursts, said first addressable locations interspersed with said second addressable locations; wherein,

addresses of said first and second addressable locations are ordered within the memory according to reception times of said X and Y blocks in said communication traffic; wherein:

said X blocks are differentiated as first said X blocks for said X blocks at the starts of said first direction packets, respectively, last said X blocks at the ends said first direction packets, respectively, and middle said X blocks of said first direction packets, respectively, between said first X blocks and said last X blocks; and

said Y blocks are differentiated as first said Y blocks for said Y blocks at the starts of said second direction packets, respectively, last said Y blocks at the ends said second direction packets, respectively, and middle said Y blocks of said second direction packets, respectively, between said first Y blocks and said last Y blocks.

Assignments (11)
MERGER Recorded Jul 30, 2019
From: TELEDYNE COMPUTER ACCESS TECHNOLOGY CORPORATION
To: TELEDYNE LECROY, INC.
Reel/Frame 049908/0847 →
CHANGE OF NAME Recorded Feb 8, 2013
From: COMPUTER ACCESS TECHNOLOGY CORPORATION
To: TELEDYNE COMPUTER ACCESS TECHNOLOGY CORPORATION
Reel/Frame 029784/0945 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2012
From: RBS CITIZENS, N.A.
To: TELEDYNE LECROY, INC.
Reel/Frame 029155/0478 →
RELEASE OF SECURITY INTEREST Recorded Oct 15, 2012
From: MANUFACTURERS AND TRADERS TRUST COMPANY, AS AGENT
To: LECROY CORPORATION
Reel/Frame 029129/0880 →
RELEASE OF SECURITY INTEREST Recorded Oct 15, 2012
From: MANUFACTURERS AND TRADERS TRUST COMPANY, AS AGENT
To: LECROY CORPORATION
Reel/Frame 029128/0280 →
RELEASE OF SECURITY INTEREST Recorded Oct 13, 2012
From: MANUFACTURERS AND TRADERS TRUST COMPANY, AS AGENT
To: COMPUTER ACCESS TECHNOLOGY CORPORATION
Reel/Frame 029124/0544 →
SECURITY AGREEMENT Recorded Aug 30, 2011
From: LECROY CORPORATION
To: RBS CITIZENS, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 026826/0850 →
SECURITY AGREEMENT Recorded Aug 26, 2011
From: COMPUTER ACCESS TECHNOLOGY CORPORATION
To: RBS CITIZENS, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 026814/0767 →
SECURITY AGREEMENT Recorded Aug 27, 2010
From: LECROY CORPORATION
To: MANUFACTURERS AND TRADERS TRUST COMPANY
Reel/Frame 024892/0689 →
SECURITY AGREEMENT Recorded Aug 27, 2010
From: COMPUTER ACCESS TECHNOLOGY CORPORATION
To: MANUFACTURERS AND TRADERS TRUST COMPANY
Reel/Frame 024892/0717 →
SECURITY AGREEMENT Recorded May 23, 2007
From: LECROY CORPORATION
To: MANUFACTURERS AND TRADERS TRUST COMPANY
Reel/Frame 019331/0239 →