IP Library Granted Patent US 10,560,527
Granted Patent B2
US 10,560,527 · App. 15/447,319 · Granted Feb 11, 2020

Network service chains using hardware logic devices in an information handling system

Inventors: Wade A. Butcher (Cedar Park, TX); Rich M. Hernandez (Round Rock, TX)
Assignee: Dell Products, L.P.
H04L67/1097G06F13/28G06F13/4068H04L67/104H04L67/1008H04L67/34
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 10,560,527
App. No.
15/447,319
Granted
Feb 11, 2020
Kind
B2
Abstract

A method, an information handling system (IHS), an IHS and a network interface system for transmitting data in an IHS. The method includes detecting, via a network interface device controller of a first IHS, a first memory transaction request from a second IHS to a first system memory of the first IHS. A plurality of first data associated with the first memory transaction request is received. A first peer to peer message is transmitted to a hardware logic device (HLD). The first peer to peer message includes a first action for the HLD. The HLD is triggered to process the first data according to the first action such that the HLD generates a plurality of second data.

Claims (80)

1. A method of transmitting data in a networked information handling system (IHS), the method comprising:

detecting, via a controller within a network interface device (NID) of a first IHS, a first memory transaction request sent from a second IHS to a first system memory of the first IHS, the second IHS communicatively coupled to the NID of the first IHS;

receiving, at the controller, first data associated with the first memory transaction request;

comparing packet fields from received communication packets with packet fields contained in a flow table stored in a memory of the NID to determine a match of the received packet fields to an entry in the flow table, wherein: the flow table comprises:

information to decide a next hop, destination, or action for a packet;

a set of packet fields that can be matched with packet fields of the received packets; and

associated next hop, rules, or actions for matched packets; and

the NID routes packets based on contents of the flow table;

determining a first action to perform with the first data, based on finding a matching entry in the flow table, wherein the flow table specifies a desired service chain of actions between components of a networked computing system;

transmitting, by the controller via a root complex device, a first peer to peer message from the controller to a hardware logic device (HLD), the first peer to peer message including the first action for the HLD, the root complex device being a conduit for communication among components of the first IHS and enabling peer to peer messages between the components; and

triggering, via the first peer to peer message, the HLD to process the first data according to the first action such that the HLD generates a plurality of second data.

2. The method of claim 1 , wherein the first memory transaction request is a RDMA write request, and the method further comprises:

storing the first data to the first system memory;

determining if an end of write transaction packet has been received;

in response to the end of write transaction packet being received, generating the peer to peer message; and

receiving an acknowledgement from the HLD that processing of the first data has completed.

3. The method of claim 1 , wherein the first memory transaction request is a RDMA read request, and the method further comprises:

storing the first data to the first system memory;

receiving an acknowledgement from the HLD that processing of the first data has completed; and

transmitting the second data to a remote device.

4. The method of claim 1 , wherein the flow table comprises a plurality of different types of actions comprising at least one of a RDMA read request, a RDMA write request, and at least one peer to peer message.

5. The method of claim 1 , further comprising generating the flow table prior to the detecting of the first memory transaction request by:

receiving instructions associated with the flow table from a software defined networking controller, the instructions comprising flow table rules and peer to peer messaging rules;

generating the flow table based on the received instructions; and

storing the flow table to a memory of the first network interface device.

6. An information handling system (IHS) comprising: a processor communicatively coupled to a first system memory;

a hardware logic device (HLD) communicatively coupled to the first system memory; a first network interface device (NID) communicatively coupled to the processor, the first system memory and the HLD, the first network interface device including a first controller having firmware executing thereon that causes the first controller to:

detect a first memory transaction request received from a second IHS for the first system memory, the second IHS communicatively coupled to the NID of the first IHS:

receive first data associated with the first memory transaction request; and

compare packet fields from received communication packets with packet fields contained in a flow table stored in a memory of the NID to determine a match of the received packet fields to an entry in the flow table, wherein: the flow table comprises:

information to decide a next hop, destination, or action for a packet;

a set of packet fields that can be matched with packet fields of the received packets; and

associated next hop, rules, or actions for matched packets; and

the NID routes packets based on contents of the flow table;

determine a first action to perform with the first data, based on finding a matching entry in the flow table wherein the flow table specifies a desired service chain of actions between components of a networked computing system;

transmit, via a root complex device, a first peer to peer message to the HLD, the first peer to peer message including the first action for the HLD, the root complex device being a conduit for communication among components of the first IHS and enabling peer to peer messages between the components; and

trigger, via the first peer to peer message, the HLD to process the first data according to the first action such that the HLD generates a plurality of second data.

7. The information handling system of claim 6 , wherein the first memory transaction request is a RDMA write request, the firmware further configuring the controller to:

store the first data to the first system memory;

determine if an end of write transaction packet has been received;

in response to the end of write transaction packet being received, generate the peer to peer message; and

receive an acknowledgement from the HLD that processing of the first data has completed.

8. The information handling system of claim 6 , wherein the first memory transaction request is a RDMA read request, the firmware further configuring the controller to:

store the first data to the first system memory;

receive an acknowledgement from the HLD that processing of the first data has completed; and

transmit the second data to a remote device.

9. The information handling system of claim 6 , wherein the flow table comprises a plurality of different types of actions comprising at least one of a RDM A read request, a RDMA write request{circumflex over ( )} and at least one peer to peer message.

10. The information handling system of claim 6 , wherein the firmware further configures the controller to generate the flow table prior to the detecting of the first memory transaction request, wherein the controller:

receives instructions associated with the flow table from a software defined networking controller, the instructions comprising flow table rules and peer to peer messaging rules;

generates the flow table based on the received instructions; and

stores the flow table to a memory of the first network interface device.

11. The information handling system of claim 6 , wherein the HLD is a separate physical component communicatively coupled via a peripheral component interconnect express (PCIe) bus to the NID and to a processor and the first system memory of the first UTS via the root complex device.

12. A network interface system comprising:

a first IHS comprising a first network interface device (NID) communicatively coupled to a first system memory and a hardware logic device (HLD) communicatively coupled to the first system memory and the first network interface device;

a second IHS communicatively coupled to the first NID of the first IHS;

the first network interface device including a first controller having firmware executing thereon that facilitates data transmission, wherein the firmware configures the first controller to:

detect a first memory transaction request received from the second IHS for the first system memory;

receive first data associated with the first memory transaction request;

compare packet fields from received communication packets with packet fields contained in a flow table stored in a memory of the NIP to determine a match of the received packet fields to an entry in the flow table, wherein: the flow table comprises:

information to decide a next hop, destination, or action for a packet;

a set of packet fields that can be matched with packet fields of the received packets; and

associated next hop, rules, or actions for matched packets; and

the NID routes packets based on contents of the flow table;

determine a first action to perform with the first data, based on finding a matching entry in the flow table, wherein the flow table specifies a desired service chain of actions between components of a networked computing system;

transmit, via a root complex device, a first peer to peer message to the HLD, the first peer to peer message including the first action for the HLD, the root complex device being a conduit for communication among components of the first IHS and enabling peer to peer messages between the components; and

trigger, via the first peer to peer message, the HLD to process the first data according to the first action such that the HLD generates a plurality of second data.

13. The network interface system of claim 12 , wherein the first memory transaction request is a RDMA write request, the firmware further configuring the first controller to:

store the first data to the first system memory;

determine if an end of write transaction packet has been received;

in response to the end of write transaction packet being received, generate the peer to peer message; and

receive an acknowledgement from the HLD that processing of the first data has completed.

14. The network interface system of claim 12 , wherein the first memory transaction request is a RDMA read request, the firmware further configuring the first controller to:

store the first data to the first system memory;

receive an acknowledgement from the HLD that processing of the first data has completed; and

transmit the second data to a remote device.

15. The network interface system of claim 12 , wherein the flow table comprises a plurality of different types of actions comprising at least one of a RDMA read request, a RDMA write request{circumflex over ( )} and at least one peer to peer message.

16. The network interface system of claim 12 , wherein the firmware further configures the controller to generate the flow table prior to the detecting of the first memory transaction request, wherein the controller:

receives instructions associated with the flow table from a software defined networking controller, the instructions comprising flow table rules and peer to peer messaging rules;

generates the flow table based on the received instructions; and

stores the flow table to a memory of the first network interface device.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2017
From: BUTCHER, WADE A.; HERNANDEZ, RICH M.
To: DELL PRODUCTS, L.P.
Reel/Frame 041447/0582 →
Continuity (1)
Related Publication 20180255157A1 · Sep 6, 2018