Flow table aging optimized for DRAM access
AssigneeGoogle Inc.
InventorsWeihuang Wang, Prashant Chandra
Life of this patent
Estimating the term…
Abstract
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.
Claims20
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.
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.
Dependencies are inferred from the claim text.