IP Library › Granted Patent US 11,050,554
Granted Patent B2
US 11,050,554 · App. 15/859,387 · Granted Jun 29, 2021

Technologies for managing exact match hash table growth

Inventors: Naru Sundar (Los Gatos, CA); Chih-Jen Chang (Union City, CA); Robert Southworth (Chatsworth, CA); Hsi-Cheng Chu (San Jose, CA)
Assignee: Intel Corporation
H04L9/0819G06F3/0604G06F3/065G06F3/0605G06F3/067G06F3/0611G06F3/0613G06F3/0629G06F3/0631G06F3/0632G06F3/0644G06F3/0647G06F3/0659G06F3/0673G06F3/0683G06F3/0685G06F9/28G06F9/445G06F9/4406G06F9/4411G06F9/4494G06F9/5044G06F9/5088G06F12/023G06F12/06G06F12/0607G06F12/14G06F13/1663G06F13/1668G06F13/4068G06F13/42G06F15/161G06F15/17331G06F16/119G06F16/221G06F16/2237G06F16/2255G06F16/2282G06F16/2365G06F16/248G06F16/2453G06F16/2455G06F16/24553G06F16/25G06F16/9014G06F30/34G11C8/12G11C29/028G11C29/36G11C29/38G11C29/44H04L9/0894H04L41/0213H04L41/0668H04L41/0677H04L41/0893H04L41/0896H04L45/28H04L45/7453H04L47/11H04L47/125H04L49/30H04L49/351H04L49/9005H04L67/1002H04L69/12H04L69/22H04L69/32H04L69/321G06F9/4401G06F12/0802G06F12/1054G06F12/1063G06F2201/85G06F2209/509G06F2212/1044G06F2212/1052G06F2212/601G06F2213/0064
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 11,050,554
App. No.
15/859,387
Granted
Jun 29, 2021
Kind
B2
Abstract

Technologies for managing exact match hash table growth include a network computing device which includes a compute engine and a network interface controller (NIC). The NIC is configured to allocate a plurality of physical bucket addresses in non-contiguous chunks of memory of the compute engine, configure a bucket threshold value as a function of a hash size of the hash table, generate a plurality of virtual bucket addresses as a function of the bucket threshold value, and map each generated virtual bucket address to an allocated physical bucket address. Other embodiments are described herein.

Claims (80)

1. A network computing device for managing exact match hash table growth, the network computing device comprising:

a compute engine; and

a network interface controller (NIC) to:

allocate a plurality of physical bucket addresses in non-contiguous chunks of memory of the compute engine;

configure a bucket threshold value as a function of a hash size of a hash table;

generate a plurality of virtual bucket addresses as a function of the bucket threshold value;

map each generated virtual bucket address to an allocated physical bucket address;

receive a table growth request;

determine, in response to having received the table growth request, a number of additional buckets requested by the received table growth request, wherein to determine the number of additional buckets requested by the received table growth request includes to determine a difference between a present number of bits of a hash value and an updated number of bits of the hash value; and

increase the bucket threshold value as a function of the number of additional buckets requested by the received table growth request.

2. The network computing device of claim 1 , wherein the NIC is further to:

identify any bucket entries displaced by number of additional buckets;

move the displaced bucket entries as a function of an updated hash associated with the received table growth request; and

re-map displaced virtual bucket addresses to a corresponding physical bucket address.

3. The network computing device of claim 1 , wherein the NIC is further to:

receive a network packet;

determine one or more identifiers of the network packet;

generate a process flow key as a function of the determined one or more identifiers of the network packet;

perform a lookup operation as a function of a pipelined hash table process function and the process flow key to return a virtual bucket address; and

determine a physical bucket address corresponding to the virtual bucket address.

4. The network computing device of claim 3 , wherein the one or more identifiers include at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, an application associated with the received network packet, a workflow type associated with the received network packet, and a protocol associated with the received network packet.

5. The network computing device of claim 3 , wherein to perform the lookup operation comprises to compute a hash value, compare the hash value to the bucket threshold value, and ignore a top bit of the hash value in response to a determination as a result of the comparison that the hash value is greater than the bucket threshold value.

6. One or more non-transitory machine-readable storage media comprising a plurality of instructions stored thereon that, in response to being executed, cause a network computing device to:

allocate, by a network interface controller (NIC) of the network computing device, a plurality of physical bucket addresses in non-contiguous chunks of memory of a compute engine of the network computing device;

configure, by the NIC, a bucket threshold value as a function of a hash size of a hash table;

generate, by the NIC, a plurality of virtual bucket addresses as a function of the bucket threshold value;

map, by the NIC, each generated virtual bucket address to an allocated physical bucket address;

receive, by the NIC, a table growth request;

determine, by the NIC and in response to having received the table growth request, a number of additional buckets requested by the received table growth request, wherein to determine the number of additional buckets requested by the received table growth request includes to determine a difference between a present number of bits of a hash value and an updated number of bits of the hash value; and

increase, by the NIC, the bucket threshold value as a function of the number of additional buckets requested by the received table growth request.

7. The one or more non-transitory machine-readable storage media of claim 6 , wherein the plurality of instructions further cause the network computing device to:

identify, by the NIC, any bucket entries displaced by number of additional buckets;

move, by the NIC, the displaced bucket entries as a function of an updated hash associated with the received table growth request; and

re-map, by the NIC, displaced virtual bucket addresses to a corresponding physical bucket address.

8. The one or more non-transitory machine-readable storage media of claim 6 , wherein the plurality of instructions further cause the network computing device to:

receive, by the NIC, a network packet;

determine, by the NIC, one or more identifiers of the network packet;

generate, by the NIC, a process flow key as a function of the determined one or more identifiers of the network packet;

perform, by the NIC, a lookup operation as a function of a pipelined hash table process function and the process flow key to return a virtual bucket address; and

determine, by the NIC, a physical bucket address corresponding to the virtual bucket address.

9. The one or more non-transitory machine-readable storage media of claim 8 , wherein the one or more identifiers include at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, an application associated with the received network packet, a workflow type associated with the received network packet, and a protocol associated with the received network packet.

10. The one or more non-transitory machine-readable storage media of claim 8 , wherein to perform the lookup operation comprises to compute a hash value, compare the hash value to the bucket threshold value, and ignore a top bit of the hash value in response to a determination as a result of the comparison that the hash value is greater than the bucket threshold value.

11. A network computing device for managing exact match hash table growth, the network computing device comprising:

circuitry for allocating, by a network interface controller (NIC) of a network computing device, a plurality of physical bucket addresses in non-contiguous chunks of memory of the network computing device;

means for configuring, by the NIC, a bucket threshold value as a function of a hash size of a hash table;

means for generating, by the NIC, a plurality of virtual bucket addresses as a function of the bucket threshold value;

means for mapping, by the NIC, each generated virtual bucket address to an allocated physical bucket address;

circuitry for receiving, by the NIC, a table growth request;

means for determining, by the NIC and in response to having received the table growth request, a number of additional buckets requested by the received table growth request, wherein the means for determining the number of additional buckets requested by the received table growth request includes means for determining a difference between a present number of bits of the hash value and an updated number of bits of a hash value; and

means for increasing, by the NIC, the bucket threshold value as a function of the number of additional buckets requested by the received table growth request.

12. The network computing device of claim 11 , further comprising:

means for identifying, by the NIC, any bucket entries displaced by number of additional buckets;

means for moving, by the NIC, the displaced bucket entries as a function of an updated hash associated with the received table growth request; and

means for re-mapping, by the NIC, displaced virtual bucket addresses to a corresponding physical bucket address.

13. The network computing device of claim 11 , further comprising:

circuitry for receiving, by the NIC, a network packet;

circuitry for determining, by the NIC, one or more identifiers of the network packet;

circuitry for generating, by the NIC, a process flow key as a function of the determined one or more identifiers of the network packet;

means for performing, by the NIC, a lookup operation as a function of a pipelined hash table process function and the process flow key to return a virtual bucket address; and

means for determining, by the NIC, a physical bucket address corresponding to the virtual bucket address.

14. The network computing device of claim 13 , wherein the determining the one or more identifiers comprises determining at least one of a source Internet Protocol (IP) address, a destination IP address, a source port number, a destination port number, an application associated with the received network packet, a workflow type associated with the received network packet, and a protocol associated with the received network packet.

15. The network computing device of claim 13 , wherein the means for performing the lookup operation comprises means for computing a hash value, comparing the hash value to the bucket threshold value, and ignoring a top bit of the hash value in response to a determination as a result of the comparison that the hash value is greater than the bucket threshold value.

16. A method for managing exact match hash table growth, the method comprising:

allocating, by a network interface controller (NIC) of a network computing device, a plurality of physical bucket addresses in non-contiguous chunks of memory of the network computing device;

configuring, by the NIC, a bucket threshold value as a function of a hash size of a hash table;

generating, by the NIC, a plurality of virtual bucket addresses as a function of the bucket threshold value;

mapping, by the NIC, each generated virtual bucket address to an allocated physical bucket address;

receiving, by the NIC, a table growth request;

determining, by the NIC and in response to having received the table growth request, a number of additional buckets requested by the received table growth request, wherein determining the number of additional buckets requested by the received table growth request includes determining a difference between a present number of bits of a hash value and an updated number of bits of the hash value; and

increasing, by the NIC, the bucket threshold value as a function of the number of additional buckets requested by the received table growth request.

17. The method of claim 16 , further comprising:

identifying, by the NIC, any bucket entries displaced by number of additional buckets;

moving, by the NIC, the displaced bucket entries as a function of an updated hash associated with the received table growth request; and

re-mapping, by the NIC, displaced virtual bucket addresses to a corresponding physical bucket address.

18. The method of claim 16 , further comprising:

receiving, by the NIC, a network packet;

determining, by the NIC, one or more identifiers of the network packet;

generating, by the NIC, a process flow key as a function of the determined one or more identifiers of the network packet;

performing, by the NIC, a lookup operation as a function of a pipelined hash table process function and the process flow key to return a virtual bucket address; and

determining, by the NIC, a physical bucket address corresponding to the virtual bucket address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2018
From: SUNDAR, NARU; CHANG, CHIH-JEN; SOUTHWORTH, ROBERT; CHU, HSI-CHENG
To: INTEL CORPORATION
Reel/Frame 044652/0085 →
Priority Claims (1)
IN 201741030632 · Aug 30, 2017 · national
Continuity (2)
Provisional Application 62584401 · Nov 10, 2017
Related Publication 20190044859A1 · Feb 7, 2019