IP Library Granted Patent US 9,912,750
Granted Patent B2
US 9,912,750 · App. 14/340,712 · Granted Mar 6, 2018

Data path selection for network transfer using high speed RDMA or non-RDMA data paths

Inventors: Jason C Schultz (Roseville, MN); John A Peters (Roseville, MN); Robert Bergerson (Roseville, MN); James R Heit (Roseville, MN)
Assignee: Unisys Corporation
H04L67/1097H04L49/9005H04L67/1095
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 9,912,750
App. No.
14/340,712
Granted
Mar 6, 2018
Kind
B2
Abstract

A method and apparatus for high-speed data path selection for network transfer using IP addresses is disclosed. The method may include configuring an IP address for a non-RDMA data transfer or an RDMA high speed data transfer. An application executing in an emulated environment may transfer data using the same function calls for both non-RDMA data transfer or an RDMA high speed data transfer. This reduces changes to the application to allow RDMA transfers. A non-emulated interface determines whether the IP address is flagged as an RDMA address. If so, the data is transferred via an RDMA data path. If the IP address is not flagged as an RDMA address, the data is transferred via a non-RDMA data path through a traditional network stack.

Claims (58)

1. A computer implemented method for determining and configuring a data path used to transport network data transfers within a computing system, the computing system, having an emulated environment having an emulated program, a non-emulated environment, a network interface, memory, and a processor, the method comprising:

assigning a port internet protocol (IP) address to a network port utilizing an internet protocol network connection used by the non-emulated interface;

assigning an RDMA IP address to an RDMA interface;

receiving, at a non-emulated interface, a network transfer request from the emulated program executed in the emulated environment to a particular IP address;

determining using the port IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by a remote direct memory access (RDMA) transfer;

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using RDMA when the network transfer request is determined using the IP address to be handled by a RDMA transfer;

determining using the IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by an internet protocol (IP) network transfer; and

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using the IP network transfer when the network transfer request is determined to be handled by the IP network transfer;

wherein the IP addresses assigned to network connections and the RDMA IP addresses are maintained within the non-emulated environment using a connection table.

2. The method of claim 1 , wherein the step of receiving the network transfer request comprises receiving a network transfer request with a source address corresponding to an RDMA IP address from a customer application, and wherein the step of determining comprises detecting that an IP address is flagged as an RDMA IP address.

3. The method of claim 1 , wherein the step of determining comprises detecting that a recipient of the network transfer request can respond to the RDMA transfer.

4. The method of claim 3 , wherein the step of attempting to transfer the network traffic packets comprises:

calling, by the non-emulated interface, an application programming interface (API) suitable for an RDMA transfer; and

waiting to receive an answer from the API;

determining that no answer is received from the API suitable for an RDMA transfer; and

sending network traffic packets related to the network transfer request through a non-RDMA API.

5. The method of claim 1 , wherein the application uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

6. The method of claim 5 , wherein the emulated environment uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

7. A computer program product, comprising:

a non-transitory computer-readable medium comprising code to perform the steps of:

assigning a port internet protocol (IP) address to a network port utilizing an internet protocol network connection used by the non-emulated interface;

assigning an RDMA IP address to an RDMA interface;

receiving, at a non-emulated interface, a network transfer request from the emulated program executed in the emulated environment to a particular IP address;

determining using the port IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by a remote direct memory access (RDMA) transfer;

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using RDMA when the network transfer request is determined using the IP address to be handled by a RDMA transfer;

determining using the IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by an internet protocol (IP) network transfer; and

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using the IP network transfer when the network transfer request is determined to be handled by the IP network transfer;

wherein the IP addresses assigned to network connections and the RDMA IP addresses are maintained within the non-emulated environment using a connection table.

8. The computer program product of claim 7 , wherein the step of receiving the network transfer request comprises receiving a network transfer request with a source address corresponding to an RDMA IP address from a customer application, and wherein the step of determining comprises detecting that an IP address is flagged as an IP address.

9. The computer program product of claim 7 , wherein the step of determining comprises detecting that a recipient of the network transfer request can respond to the RDMA transfer.

10. The computer program product of claim 9 , wherein the step of attempting to send the network traffic packets comprises:

calling, by the non-emulated interface, an application programming interface (API) suitable for an RDMA transfer; and

waiting to receive an answer from the API;

determining that no answer is received from the API suitable for an RDMA transfer; and

transferring network traffic packets related to the network transfer request through a non-RDMA API.

11. The computer program product of claim 7 , wherein the application uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

12. The computer program product of claim 11 , wherein the emulated environment uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

13. An apparatus, comprising:

a network interface card (NIC);

a memory; and

a processor coupled to the memory and to the network interface card (NIC), the processor configured to execute the steps of:

assigning port internet protocol (IP) address to a network port utilizing an internet protocol network connection used by the non-emulated interface;

assigning an RDMA IP address to an RDMA interface;

receiving, at a non-emulated interface, a network transfer request from the emulated program executed in the emulated environment to a particular IP address;

determining using the port IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by a remote direct memory access (RDMA) transfer;

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using RDMA when the network transfer request is determined using the IP address to be handled by a RDMA transfer;

determining using the IP address, by the non-emulated interface, that the network transfer request should be handled within the non-emulated environment by an internet protocol (IP) network transfer; and

attempting to transfer network traffic packets related to the network transfer request within the non-emulated environment using the IP network transfer when the network transfer request is determined to be handled by the IP network transfer;

wherein the IP addresses assigned to network connections and the RDMA IP addresses are maintained within the non-emulated environment using a connection table.

14. The apparatus of claim 13 , wherein the step of receiving the network transfer request comprises receiving a network transfer request with a source address corresponding to an RDMA IP address from a customer application, and wherein the step of determining comprises detecting that an IP address is flagged as an RDMA IP address.

15. The apparatus of claim 13 , wherein the step of determining comprises detecting that a recipient of the network transfer request can respond to the RDMA transfer.

16. The apparatus of claim 15 , wherein the step of attempting to send the network traffic packets comprises:

calling, by the non-emulated interface, an application programming interface (API) suitable for an RDMA transfer; and

waiting to receive an answer from the API;

determining that no answer is received from the API suitable for an RDMA transfer; and

transferring network traffic packets related to the network transfer request through a non-RDMA API.

17. The apparatus of claim 13 , wherein the application uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

18. The apparatus of claim 17 , wherein the emulated environment uses the same function calls for both RDMA network transfer requests and non-RDMA network transfer requests.

Assignments (8)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
SECURITY INTEREST Recorded Sep 13, 2018
From: UNISYS CORPORATION
To: WELLS FARGO BANK NA
Reel/Frame 046861/0019 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
SECURITY INTEREST Recorded Nov 4, 2014
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 034096/0984 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2014
From: SCHULTZ, JASON C; PETERS, JOHN A; BERGERSON, ROBERT L; HEIT, JAMES R
To: UNISYS CORPORATION
Reel/Frame 033588/0402 →
Continuity (1)
Related Publication 20160028819A1 · Jan 28, 2016