IP Library Granted Patent US 9,678,779
Granted Patent B2
US 9,678,779 · App. 14/447,732 · Granted Jun 13, 2017

Method and an apparatus for co-processor data plane virtualization

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,678,779
App. No.
14/447,732
Granted
Jun 13, 2017
Kind
B2
Abstract

A method and a system embodying the method for a data plane virtualization, comprising assigning each of at least one data plane a unique identifier; providing a request comprising an identifier of one of the at least one data plane together with an identifier of a virtual resource assigned to a guest; determining validity of the provided request in accordance with the identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest; and processing the request based on the determined validity of the request are disclosed.

Claims (58)

1. A method for a data plane virtualization, comprising:

assigning each of at least one data plane a unique identifier by an identifier manager;

providing a request comprising the unique identifier of one of the at least one data plane together with an identifier of a virtual resource assigned to a guest;

determining validity of the provided request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest; and

processing the provided request based on the determined validity of the provided request.

2. The method as claimed in claim 1 , wherein the providing a request comprising the unique identifier of one of the at least one data plane together with an identifier of a virtual resource assigned to a guest, comprises:

providing a request comprising the unique identifier of one of the at least one data plane together with an identifier of a guest-pool.

3. The method as claimed in claim 1 , wherein the providing a request comprising the unique of one of the at least one data plane together with a virtual resource assigned to a guest, comprises:

providing a request comprising the unique identifier of one of the at least one data plane together with an identifier of a guest-group.

4. The method as claimed in claim 1 , wherein the determining validity of the provided request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest comprises:

determining whether the unique identifier of the one of the at least one data plane comprises a reserved value.

5. The method as claimed in claim 1 , wherein the processing the request based on the determined validity of the request comprises:

setting a local resource identifier equal to the identifier of the virtual resource assigned to the guest, when the unique identifier of the one of the at least one data plane comprises a reserved value.

6. The method as claimed in claim 5 , further comprising:

providing the local resource identifier to a stream identifier generating structure; and

generating a stream identifier in accordance with the local resource identifier.

7. The method as claimed in claim 1 , wherein the determining validity of the received request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest comprises:

determining whether a combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest has an entry in a translation structure.

8. The method as claimed in claim 1 , wherein the processing the request based on the determined validity of the request comprises:

translating a combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest to a local resource identifier when the combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest has an entry in a translation structure.

9. The method as claimed in claim 8 , further comprising:

providing the local resource identifier to a stream identifier generating structure; and

generating a stream identifier in accordance with the local resource identifier.

10. The method as claimed in claim 1 , wherein the processing the request based on the determined validity of the request comprises:

aborting translation of a combination of the unique identifier of the one of the at least one data plane and the virtual resource assigned to the guest to a local resource when the combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the guest has no entry in a translation structure.

11. The method as claimed in claim 1 , further comprising:

parsing an incoming data packet; and

determining the unique identifier of one of the at least one data plane in accordance with a field of the parsed packet.

12. An apparatus for a data plane virtualization, comprising:

at least one guest configured to instantiate at least one data plane;

an identifier manager communicatively coupled with the at least one guest, the identifier manager being configured to assign to each of the at least one data plane a unique identifier;

a first co-processor communicatively coupled with the at least one guest, the first co-processor being configured to provide a request comprising the unique identifier of one of the at least one data plane together with an identifier of a virtual resource assigned to the at least one guest to a second co-processor; and

the second co-processor, configured

to determine validity of the provided request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest; and

to process the provided request based on the determined validity of the provided request.

13. The apparatus as claimed in claim 12 , wherein the request comprises:

the unique identifier of one of the at least one data plane together with an identifier of a guest-pool.

14. The apparatus as claimed in claim 12 , wherein the request comprises:

the unique identifier of one of the at least one data plane together with an identifier of a guest-group.

15. The apparatus as claimed in claim 12 , wherein the second co-processor is configured to determine validity of the request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest by being configured to:

determine whether the unique identifier of the one of the at least one data plane comprises a reserved value.

16. The apparatus as claimed in claim 12 , wherein the second co-processor is configured to process the request based on the determined validity of the request by being configured to:

seta local resource identifier equal to the identifier of the virtual resource assigned to the at least one guest, when the unique identifier of the one of the at least one data plane comprises a reserved value.

17. The apparatus as claimed in claim 16 , wherein the second co-processor is further configured:

to provide the local resource identifier to a stream identifier generating structure; and

wherein the stream identifier generating structure generates a stream identifier in accordance with the local resource identifier.

18. The apparatus as claimed in claim 12 , wherein the second co-processor is configured to determine validity of the request in accordance with the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest by being configured to:

determine whether a combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest has an entry in a translation structure.

19. The apparatus as claimed in claim 12 , wherein the second co-processor is configured to process the request based on the determined validity of the request by being configured to:

translate a combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest to a local resource identifier when the combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest has an entry in a translation structure.

20. The apparatus as claimed in claim 19 , wherein the second co-processor is further configured:

to provide the local resource identifier to a stream identifier generating structure; and

wherein the stream identifier generating structure generates a stream identifier in accordance with the local resource identifier.

21. The apparatus as claimed in claim 12 , wherein the second co-processor is configured to process the request based on the determined validity of the request by being configured to:

abort translation of a combination of the unique identifier of the one of the at least one data plane and the virtual resource assigned to the alt least one guest to a local resource when the combination of the unique identifier of the one of the at least one data plane and the identifier of the virtual resource assigned to the at least one guest has no entry in a translation structure.

22. The apparatus as claimed in claim 12 , wherein the first co-processor is further configured to determine the unique identifier of the one of the at least one data plane by being configured to:

parse an incoming data packet; and

determine the unique identifier of one of the at least one data plane in accordance with a field of the parsed packet.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Dec 12, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 051260/0567 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2014
From: SNYDER, WILSON PARKHURST, II
To: CAVIUM, INC.
Reel/Frame 033432/0646 →