Flow table aging optimized for DRAM access

US11960413B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11960413-B2
Application numberUS-202318114698-A
CountryUS
Kind codeB2
Filing dateFeb 27, 2023
Priority dateMay 17, 2019
Publication dateApr 16, 2024
Grant dateApr 16, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A flow table management system can include a hardware memory module communicatively coupled to a network interface card. The hardware memory module is configured to store a flow table including a plurality of network flow entries. The network interface card further includes a flow table age cache configured to store a set of recently active network flows and a flow table management module configured to manage a duration for which respective network flow entries in the flow table stored in the hardware memory module remain in the flow table using the flow table age cache. In some implementations, age information about each respective flow in the flow table is stored in the hardware memory module in an age state table that is separate from the flow table.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of managing a flow table, comprising: providing a hardware memory module coupled to a network component, the hardware memory module storing a flow table including a plurality of entries, each entry corresponding to a network flow, and the hardware memory module storing age information in an age state table, the flow table and the age state table being stored in respective data structures that are separate and independently accessible; providing on the network component, a flow table age cache configured to store a set of recently active network flows; providing on the network component, a flow table management module configured to manage a duration for which respective entries in the flow table remain in the flow table by: updating the flow table age cache with information indicating activity associated with the network flow; periodically conducting a scan of the entries in the flow table, the scan including for each entry in the flow table: looking up the network flow associated with the entry in the flow table age cache; in response to the network flow associated with the entry being found in the flow table age cache, updating timer information for the network flow stored in the memory module; and in response to the network flow associated with the entry not being found in the flow table age cache, evaluating an age of the entry based on the age information retrieved from the age state table, and removing the entry from the flow table in response to the age of the entry exceeding a threshold time value associated with the network flow. 2. The method of claim 1 , wherein the flow table management module evaluates the age of each entry based on a status of the network flow associated with entry and respective age thresholds that correspond to possible statuses of the network flow. 3. The method of claim 2 , wherein the flow table management module is configured to evaluate the age of a flow entry by comparing a last active timer value stored in association to a timer, and to scan the entries with a periodicity that is less than 1 2 bit ⁢ length ⁢ of ⁢ Last ⁢ Active ⁢ time times the smallest age threshold associated with the possible statuses. 4. The method of claim 1 , wherein the network component comprises a network interface card of a server. 5. The method of claim 1 , wherein updating timer information for the network flow comprises a resetting an age timer for the network flow. 6. The method of claim 1 , wherein updating the timer information for the network flow comprises modifying a status of the network flow, thereby modifying the threshold time value associated with the network flow. 7. The method of claim 6 , wherein the possible statuses for the network flows comprise TCP flow statuses, including at least an initiation state, an established state, a terminating state, and a closed state. 8. The method of claim 6 , wherein updating the flow table age cache with information indicating activity associated with the network flow comprises changing the status of the network flow from a first of the possible statuses to a second of the possible statuses based on a type of the packet that was processed in association with the network flow. 9. The method of claim 6 , wherein the flow table management module is configured to maintain a multi-bit clock and to maintain for each flow entry in the flow table a last active time value represented by a same number of bits as are used in the multi-bit clock, and wherein evaluating the age of a flow table entry comprises comparing the last active time for the entry in the hardware memory module against a current value of the multi-bit clock. 10. The method of claim 9 , wherein if during the comparison, the last active time value stored for the flow table entry matches the bits of the multi-bit clock, the flow entry is determined to have exceeded the threshold. 11. A flow table management system, comprising: A hardware memory module configured to store a flow table including a plurality of network flow entries, and to store age information in an age state table, the flow table and the age state table being stored in respective data structures that are separate and independently accessible; a network component communicatively coupled to the hardware memory module, the network component further comprising: a memory storing a flow table age cache configured to store a set of recently active network flows; a processor configured to execute a flow table management module, the flow table management module configured to manage a duration for which respective network flow entries in the flow table stored in the hardware memory module remain in the flow table by: updating the flow table age cache with information indicating activity associated with the network flow; periodically conducting a scan of the network flow entries in the flow table, the scan including for each entry in the flow table: looking up the network flow associated with the entry in the flow table age cache; in response to the network flow associated with the entry being found in the flow table age cache, updating timer information for the network flow stored in the memory module; and in response to the network flow associated with the entry not being found in the flow table age cache, evaluating an age of the entry based on the age information retrieved from the age state table, and removing the entry from the flow table in response to the age of the entry exceeding a threshold time value associated with the network flow. 12. The system of claim 11 , wherein the network component comprises a network interface card. 13. The system of claim 11 , wherein the flow table management module is configured to determine the age of each entry based on a status of the network flow associated with entry and respective age thresholds that correspond possible statuses of the network flow. 14. The system of claim 13 , wherein the flow table management module is configured to evaluate the age of a flow entry by comparing a last active timer value stored for the flow entry to a timer, and to scan the entries with a periodicity that is less than 1 2 bit ⁢ length ⁢ of ⁢ Last ⁢ Active ⁢ time times the smallest age threshold associated with the possible statuses. 15. The system of claim 11 , wherein updating timer information for the network flow comprises a resetting an age timer for the network flow. 16. The system of claim 11 , wherein updating the timer information for the network flow comprises modifying a status of the network flow, thereby modifying the threshold

Assignees

Inventors

Classifications

  • Flow control; Congestion control · CPC title

  • G06F12/123Primary

    with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list · CPC title

  • H04L45/38Primary

    Flow based routing · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • involving identification of individual flows · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11960413B2 cover?
A flow table management system can include a hardware memory module communicatively coupled to a network interface card. The hardware memory module is configured to store a flow table including a plurality of network flow entries. The network interface card further includes a flow table age cache configured to store a set of recently active network flows and a flow table management module confi…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification G06F12/123. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 16 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).