IP Library Granted Patent US 7,996,569
Granted Patent B2
US 7,996,569 · App. 11/623,018 · Granted Aug 9, 2011

Method and system for zero copy in a virtualized network environment

Assignee: Broadcom Israel Research Ltd.
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 7,996,569
App. No.
11/623,018
Granted
Aug 9, 2011
Kind
B2
Abstract

Methods and systems for zero copy in a virtualized network environment are disclosed. Aspects of one method may include a plurality of GOSs that share a single NIC. The NIC may switch communication to a GOS to allow that GOS access to a network via the NIC. The NIC may offload, for example, OSI layer 3, 4, and/or 5 protocol operations from a host system and/or the GOSs. The data received from, or to be transmitted to, the network by the NIC may be copied directly between the NIC's buffer and a corresponding application buffer for one of the GOSs without copying the data to a TGOS. The NIC may access the GOS buffer via a virtual address, a buffer offset, or a physical address. The virtual address and the buffer offset may be translated to a physical address.

Claims (49)

1. A method for communicating via a network, the method comprising:

establishing a direct channel between at least one of a plurality of guest operating systems (GOSs) and network interface circuitry, wherein said network interface circuitry is shared by said plurality of GOSs; and

copying data directly between a buffer and a corresponding buffer for said at least one of said plurality of GOSs without copying said data to a trusted guest operating system (TGOS).

2. The method according to claim 1 , comprising accessing said corresponding buffer for said at least one of said plurality of GOSs by translating a virtual address communicated by said at least one of said plurality of GOSs to a physical address.

3. The method according to claim 2 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

4. The method according to claim 2 , wherein said translation is accomplished via an I/O memory management unit.

5. The method according to claim 2 , wherein said translation is accomplished via an I/O memory management unit managed by said network interface circuitry.

6. The method according to claim 1 , comprising accessing said corresponding buffer for said at least one of said plurality of GOSs by translating an offset index communicated by said at least one of said plurality of GOSs to a physical address.

7. The method according to claim 6 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

8. The method according to claim 1 , comprising accessing said corresponding buffer for said at least one of said plurality of said GOSs via a physical address communicated by said at least one of said plurality of GOSs.

9. The method according to claim 1 , comprising switching communication between said network interface circuitry and said at least one of said plurality of GOSs, wherein each of said plurality of GOSs accesses a network when said communication is switched to said at least one of said plurality of GOSs.

10. The method according to claim 1 , comprising offloading network operations from a host system communicatively coupled to said network interface circuitry.

11. The method according to claim 1 , comprising offloading network protocol operations from said plurality of GOSs to said network interface circuitry.

12. The method according to claim 1 , comprising establishing a fastpath and a slowpath for said direct channel.

13. The method according to claim 1 , comprising sharing one configuration space for said plurality of GOSs.

14. The method according to claim 1 , comprising dedicating configuration space for each entity within said network interface circuitry that is dedicated to each of said plurality of GOSs.

15. A non-transitory computer-readable medium having stored thereon, a computer program having at least one code section for communicating via a network, the at least one code section being executable by a computer for causing the computer to perform steps comprising:

establishing a direct channel between at least one of a plurality of GOSs and network interface circuitry, wherein said network interface circuitry is shared by said plurality of GOSs; and

copying data directly between a buffer and a corresponding buffer for said at least one of said plurality of GOSs without copying said data to a trusted guest operating system (TGOS).

16. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for accessing said corresponding buffer for said at least one of said plurality of GOSs by translating a virtual address communicated by said at least one of said plurality of GOSs to a physical address.

17. The non-transitory computer-readable medium according to claim 16 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

18. The non-transitory computer-readable medium according to claim 16 , wherein said translation is accomplished via an I/O memory management unit.

19. The non-transitory computer-readable medium according to claim 16 , wherein said translation is accomplished via an I/O memory management unit managed by said network interface circuitry.

20. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for accessing said corresponding buffer for said at least one of said plurality of GOSs by translating an offset index communicated by said at least one of said plurality of GOSs to a physical address.

21. The non-transitory computer-readable medium according to claim 20 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

22. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for accessing said corresponding buffer for said at least one of said plurality of said GOSs via a physical address communicated by said at least one of said plurality of GOSs.

23. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for switching communication between said network interface circuitry and said at least one of said plurality of GOSs, wherein each of said plurality of GOSs accesses a network when said communication is switched to said at least one of said plurality of GOSs.

24. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for offloading network operations from a host system communicatively coupled to said network interface circuitry.

25. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for offloading network protocol operations from said plurality of GOSs to said network interface circuitry.

26. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for establishing a fastpath and a slowpath for said direct channel.

27. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for sharing one configuration space for said plurality of GOSs.

28. The non-transitory computer-readable medium according to claim 15 , wherein said at least one code section comprises code for dedicating configuration space for each entity within said network interface circuitry that is dedicated to each of said plurality of GOSs.

29. A system for communicating via a network, the system comprising:

one or more circuits and/or processors in network interface circuitry that are shared by a plurality of guest operating systems (GOSs);

said one or more circuits and/or processors are operable to establish a direct channel between at least one of said plurality of GOSs and said network interface circuitry; and

said one or more circuits and/or processors are operable to copy data directly between a buffer and a corresponding buffer for said at least one of said plurality of GOSs without copying said data to a trusted guest operating system (TGOS).

30. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to access said corresponding buffer for said at least one of said plurality of GOSs by translating a virtual address communicated by said at least one of said plurality of GOSs to a physical address.

31. The system according to claim 30 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

32. The system according to claim 30 , wherein said translation is accomplished via an I/O memory management unit.

33. The system according to claim 30 , wherein said translation is accomplished via an I/O memory management unit managed by said network interface circuitry.

34. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to access said corresponding buffer for said at least one of said plurality of GOSs by translating an offset index communicated by said at least one of said plurality of GOSs to a physical address.

35. The system according to claim 34 , wherein said translation is accomplished via an address translation table managed by said network interface circuitry.

36. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to access said corresponding buffer for said at least one of said plurality of said GOSs via a physical address communicated by said at least one of said plurality of GOSs.

37. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to switch communication between said network interface circuitry and said at least one of said plurality of GOSs, wherein each of said plurality of GOSs accesses a network when communication is switched between said network interface circuitry and said at least one of said plurality of GOSs.

38. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to offload network operations from a host system communicatively coupled to said network interface circuitry.

39. The system according to claim 29 , wherein said one or more circuits and/or processors are operable to offload network protocol operations from said plurality of GOSs.

40. The system according to claim 29 , wherein said direct channel comprises a fastpath and a slowpath.

41. The system according to claim 29 , comprising one configuration space that is shared by said plurality of GOSs.

42. The system according to claim 29 , comprising a configuration space for each entity within said NIC that is dedicated to each of said plurality of GOSs.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2007
From: ALONI, ELIEZER; EL ZUR, URI; SHALOM, RAFI; BESTLER, CAITLIN
To: BROADCOM ISRAEL RESEARCH, LTD.
Reel/Frame 018949/0341 →
Continuity (2)
Provisional Application 60758581 · Jan 12, 2006
Related Publication 20070162619A1 · Jul 12, 2007