IP Library Granted Patent US 11,481,340
Granted Patent B2
US 11,481,340 · App. 17/171,344 · Granted Oct 25, 2022

Independent central processing unit (CPU) networking using an intermediate device

Inventors: Tao Li (Hangzhou, CN); Lei Huang (Hangzhou, CN); Beilei Sun (Hangzhou, CN); Yunzhi Geng (Shenzhen, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F13/128G06F9/45558G06F12/063H04L45/74G06F2009/45579G06F2009/45595G06F2213/0058G06F2213/3808
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,481,340
App. No.
17/171,344
Granted
Oct 25, 2022
Kind
B2
Abstract

A computer device includes a central processing unit (CPU), a network adapter, a bus, and an intermediate device, where the intermediate device is coupled to both the CPU and the network adapter through the bus, and is configured to establish a correspondence between address information of an agent unit and address information of a function unit, and implement forwarding of a packet between the CPU and the network adapter based on the correspondence.

Claims (76)

1. A computer device comprising:

a network adapter comprising a plurality of functional systems based on a virtualization technology, wherein the functional systems comprise a first functional system;

a bus;

a first central processing unit (CPU) coupled to the bus and configured to:

obtain first agent information about a first agent corresponding to the first functional system;

allocate a second address to the first agent; and

send first address information of the second address, wherein the first address information comprises first bus device function (BDF) information of the first agent and first base address register (BAR) space address information of the first agent; and

an intermediate device coupled to both the first CPU and the network adapter through the bus, comprising the first agent, and configured to:

obtain first functional system information about the first functional system;

allocate a first address to the first functional system;

receive the first address information from the first CPU;

establish a first correspondence between the first address information and second address information of the first functional system based on the first address information, wherein the second address information comprises second BDF information of the first functional system and second BAR space address information of the first functional system; and

forward a first packet between the first CPU and the network adapter based on the first correspondence.

2. The computer device of claim 1 , further comprising a second CPU coupled to both the first CPU and the intermediate device through the bus, wherein the intermediate device is further configured to:

obtain second functional system information about a second functional system in the network adapter; and

allocate a third address to the second functional system, wherein the second functional system is configured to implement a function of the network adapter;

wherein the second CPU is configured to:

obtain second agent information about a second agent in the intermediate device;

allocate a fourth address to the second agent; and

send third address information of the fourth address to the intermediate device,

wherein the second agent corresponds to the second functional system,

wherein the intermediate device is further configured to:

establish a second correspondence between the third address information and fourth address information of the third address based on the third address information; and

forward a second packet between the second CPU and the network adapter based on the second correspondence.

3. The computer device of claim 1 , further comprising a second CPU coupled to both the first CPU and the network adapter through the bus, wherein the network adapter is further configured to forward a second packet between the second CPU and a network.

4. The computer device of claim 1 , wherein the first CPU is further configured to obtain second agent information about a second agent in the intermediate device by enumerating the intermediate device.

5. The computer device of claim 1 , wherein the intermediate device is further configured to further obtain the first functional system information by enumerating the network adapter.

6. The computer device of claim 1 , wherein the intermediate device comprises a first endpoint coupled to the first CPU, and wherein the intermediate device is further configured to configure information about the first agent in an endpoint port based on the information about the first functional system.

7. The computer device of claim 1 , wherein the network adapter is configured to support a single-root input/output virtualization (SR-IOV) function, and wherein the first functional system comprises a physical function or a virtual function.

8. An intermediate device configured to couple to a first central processing unit (CPU) of a computer device and a network adapter of the computer device through a bus, wherein the intermediate device comprises:

a controller configured to:

obtain first functional system information about a first functional system, wherein the first functional system is based on a virtualization technology in the network adapter;

allocate a first address to the first functional system;

establish a first correspondence between first address information of a first agent and second address information of the first address based on the first address information, wherein the first agent corresponds to the first functional system, wherein the second address information comprises second bus device function (BDF) information of the first functional system and second base address resister (BAR) space address information of the first functional system, and wherein the first address information comprises first BDF information of the first agent and first BAR space address information of the first agent; and

forward a first packet between the first CPU and the network adapter based on the first correspondence, and

a memory coupled to the controller and configured to store the first correspondence.

9. The intermediate device of claim 8 , wherein the intermediate device is further configured to couple to a second CPU of the computer device, and wherein the controller is further configured to:

obtain second functional system information about a second functional system of the network adapter;

allocate a second address to the second functional system;

obtain third address information of a second agent, wherein the second agent corresponds to the second functional system;

establish a second correspondence between the third address information and fourth address information of the second address;

store the second correspondence; and

forward a second packet between the second CPU and the network adapter based on the second correspondence.

10. The intermediate device of claim 8 , wherein the controller is further configured to:

further obtain the first functional system information by enumerating the network adapter;

allocate third address information to the first functional system; and

store the third address information in the memory.

11. The intermediate device of claim 10 , further comprising an endpoint port coupled to the controller, wherein the intermediate device is further configured to couple to the first CPU using the endpoint port, and wherein the controller is further configured to configure first agent information about the first agent in the endpoint port based on the information about the first functional system.

12. The intermediate device of claim 11 , wherein the controller is further configured to establish the first correspondence based on the first address information from the first CPU.

13. The intermediate device of claim 10 , further comprising an endpoint port coupled to the controller, wherein the intermediate device is further configured to couple to the first CPU using the endpoint port, wherein the endpoint port comprises pre-determined information about the first agent, and wherein the controller is further configured to establish a second correspondence between the first address information and the third address information based on the first address information from the first CPU.

14. A packet forwarding method implemented by an intermediate device of a computer device and comprising:

coupling to a first central processing unit (CPU) of the computer device and a network adapter of the computer device through a bus;

obtaining first functional system information about a first functional system, wherein the first functional system is based on a virtualization technology, in the network adapter;

allocating a first address to the first functional system;

establishing a first correspondence between first address information of a first agent and second address information of the first address, wherein the first agent corresponds to the first functional system, wherein the second address information comprises second bus device function (BDF) information of the first functional system and second base address register (BAR) space address information of the first functional system, and wherein the first address information comprises first BDF information of the first agent and first BAR space address information of the first agent;

forwarding a first packet between the first CPU and the network adapter based on the first correspondence; and

storing the first correspondence.

15. The packet forwarding method of claim 14 , further comprising:

coupling to a second CPU of the computer device;

obtaining second functional system information about a second functional system of the network adapter;

allocating a second address to the second functional system;

obtaining third address information of a second agent, wherein the second agent corresponds to the second functional system;

establishing a second correspondence between the third address information and fourth address information of the second address;

storing the second correspondence; and

forwarding a second packet between the second CPU and the network adapter based on the second correspondence.

16. The packet forwarding method of claim 14 , further comprising:

further obtaining the first functional system information about by enumerating the network adapter;

allocating third address information to the first functional system; and

storing the third address information in a memory.

17. The packet forwarding method of claim 16 , further comprising:

further coupling to the first CPU using an endpoint port; and

configuring first agent information about the first agent in the endpoint port based on the first functional system information.

18. The packet forwarding method of claim 17 , further comprising establishing the first correspondence based on the first address information from the first CPU.

19. The packet forwarding method of claim 16 , further comprising:

further coupling to the first CPU using an endpoint port, wherein the endpoint port comprises pre-determined information about the first agent; and

establishing a second correspondence between the first address information and the third address information based on the first address information from the first CPU.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD INVENTOR'S FIRST NAME PREVIOUSLY RECORDED AT REEL: 056376 FRAME: 0034. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Oct 19, 2021
From: LI, TAO; HUANG, LEI; SUN, BEILEI; GENG, YUNZHI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 057857/0838 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2021
From: LI, TAO; HUANG, LEI; SUN, BELEI; GENG, YUNZHI
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 056376/0034 →
Priority Claims (2)
CN 201910556090.5 · Jun 25, 2019 · national
CN 201910786539.7 · Aug 23, 2019 · national
Continuity (2)
Continuation PCTCN2020094995 · Jun 8, 2020
Related Publication 20210165750A1 · Jun 3, 2021