Nova Patents
US8654643B2

Wide field indexing for packet tracking

Summary by NHIP

Wide field packet indexing

The method accumulates traffic statistics by hashing a packet's flow identifier to retrieve and update records in a statistics memory. The flow identifier forms from unmasked bits of extracted packet fields, and the memory stores c columns and r rows of records.

Claim Score by NHIP

Read claim 1, the broadest

Abstract

Methods, apparatus, and computer readable storage media for accumulating traffic statistics. A traffic receiver may receive a packet and determine a flow identifier associated with the received packet. A hash function may be applied to the flow identifier to generate a memory pointer. One or more records may be retrieved from a statistics memory based on the memory pointer. A determination may be made if the flow identifier associated with the received packet matches a flow identifier value contained in one of the one or more retrieved records. When a match occurs, the retrieved record containing the matching flow identifier value may be updated and the updated record may be stored in the statistics memory.

US8654643B2, drawing sheet 1
Sheet 1 of 6

Term

5.2 yearsleft in the term

Expires 8 December 2031, including 134 days of term adjustment.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

21 claims: 3 independent, 18 dependent

  1. 1
    Broadest claimClaim Score 44, average(NHIP)A method to accumulate traffic statistics, comprising:receiving a packet;determining a flow identifier associated with the received packet;applying a hash function to the flow identifier to generate an address pointer;retrieving one or more records from a statistics memory based on the address pointer, the one or more records being a portion of a total number of records stored in the statistics memory, each of the one or more records containing a respective flow identifier;determining if the flow identifier associated with the received packet matches the flow identifier value contained in one of the one or more retrieved records;when a match occurs updating the retrieved record containing the matching flow identifier value, and storing the updated record in the statistics memory, when the flow identifier associated with the received packet does not match any of the flow identifier values contained in the one or more retrieved records, determining whether or not each of the one or more retrieved records contains valid statistics data;and when one or more retrieved records is identified as not containing valid statistics data, initializing the identified record based on the received packet and storing the initialized record in the statistics memory.
  2. 8
    A traffic receiver, comprising:a statistics memory configured to store a plurality of records;and logic circuits configured to: receive a packet;determine a flow identifier associated with the received packet;apply a hash function to the flow identifier to generate an address pointer;retrieve one or more records from the statistics memory based on the address pointer, the one or more records being a portion of a total number of records store in the statistics memory, each of the one or more records containing a respective flow identifier value;determine if the flow identifier associated with the received packet matches the flow identifier value contained in one of the one or more retrieved records;when a match occurs, update the retrieved record containing the matching flow identifier value and store the updated record in the statistics memory;when the flow identifier associated with the received packet does not match any of the flow identifier values contained in the one or more retrieved records, determining whether or not each of the one or more retrieved records contains valid statistics data;and when one or more retrieved records is identified as not containing valid statistics data, initializing the identified record based on the received packet and storing the initialized record in the statistics memory.
  3. 15
    A machine-readable storage medium storing configuration data that, when used to configure one or more programmable logic devices, causes the programmable logic devices to include logic circuits configured to:receive a packet;determine a flow identifier associated with the received packet;apply a hash function to the flow identifier to generate an address pointer;retrieve one or more records from the statistics memory based on the address pointer, the one or more records being a portion of a total number of records store in the statistics memory, each of the one or more records containing a respective flow identifier value;determine if the flow identifier associated with the received packet matches the flow identifier value contained in one of the one or more retrieved records;when a match occurs, update the retrieved record containing the matching flow identifier value and store the updated record in the statistics memory;when the flow identifier associated with the received packet does not match any of the flow identifier values contained in the one or more retrieved records, determining whether or not each of the one or more retrieved records contains valid statistics data;and when one or more retrieved records is identified as not containing valid statistics data, initializing the identified record based on the received packet and storing the initialized record in the statistics memory.