Patent ID: 8180616

Claim:
A method for gathering packet processing information in a packet processing system having a plurality of components, comprising: representing, in a memory, a directed graph of the packet processing system, wherein nodes of the graph represent respective components, and arcs between the nodes represent packet connections between the components of the packet processing system; in response to each network packet input to the system, establishing an associated, unique packet identifier for the network packet; processing each input network packet by one or more components of the system; storing, for each input network packet, respective log data by each of the one or more components of the system that processed the input network packet, the respective log data including data from the input network packet, and the associated identifier, the respective log data further including input log data in order of the component commencing processing of each packet and including memory access log data describing a memory access by a particular component in order of each memory access; determining components of the plurality of components that processed a packet having a selected, associated packet identifier by traversing the graph and for each component represented by a node in the directed graph, searching the respective log data of the represented component for stored input log data with the selected packet identifier; determining that a particular packet having the selected packet identifier caused a memory access by the particular component in response to the stored memory access log data being stored after stored input log data of the particular component for the particular packet and being stored before log input data of the particular component for a packet other than the particular packet; and outputting the memory access log data and data indicating the components that processed the packet having the selected packet identifier.