IP Library Granted Patent US 10,644,998
Granted Patent B2
US 10,644,998 · App. 14/106,827 · Granted May 5, 2020

Virtualized network interface for lockdown and overlay of data in transmitted packets

Inventors: Wilson Parkhurst Snyder, II (Holliston, MA); Philip Romanov (Santa Clara, CA); Shahe Hagop Krakirian (Palo Alto, CA)
Assignee: Cavium, LLC
H04L45/586G06F9/45558G06F9/4812G06F12/02G06F13/24G06F2009/45579G06F2009/45595
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,644,998
App. No.
14/106,827
Granted
May 5, 2020
Kind
B2
Abstract

A method and a system embodying the method for data lockdown and data overlay in a packet to be transmitted, comprising providing a first and a second masks comprising one or more position(s) and a data value at each of the one or more position(s); aligning the masks with the packet; comparing the data value at each of the one or more position(s) in the first mask with the data value at the one or more aligned position(s) in the packet; optionally replacing a data value at each of the one or more position(s) in the packet with a data value at the one or more aligned position(s) in the second mask; and providing the packet for transmission if the data value at each of the one or more position(s) in the first mask and the data value at the one or more aligned position(s) in the packet agree.

Claims (81)

1. A method for data lockdown, comprising:

providing a first mask comprising one or more position(s) and a data value at each of the one or more position(s);

aligning the first mask with a packet to be transmitted;

comparing the data value at each of the one or more position(s) in the first mask with a data value at each of one or more aligned position(s) in the packet to be transmitted;

providing the packet for transmission if the comparing indicates that the data value at each of the one or more position(s) in the first mask and the data value at each of one or more aligned lockable position(s) in the packet to be transmitted agree; and

dropping the packet if the comparing indicates that the data value at each of the one or more position(s) in the first mask and the data value at each of the one or more aligned lockable position(s) in the packet to be transmitted disagree.

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

providing a second mask comprising one or more position(s) and a value at each of the one or more position(s);

aligning the second mask with the packet to be transmitted; and

replacing a data value at each of one or more position(s) in the packet to be transmitted with a data value at one or more aligned position(s) in the second mask.

3. The method as claimed in claim 1 , wherein the providing a first mask comprises:

selecting the first mask from a plurality of first masks, each of the plurality of first masks specifying different data value at at least one of the one or more position(s); and

providing the selected first mask.

4. The method as claimed in claim 1 , wherein the providing a first mask comprises:

providing a first mask comprising one or more position(s) and a data value at each of the one or more position(s) corresponding to the one or more lockable position(s) in the packet to be transmitted, the data value of which are to be locked.

5. The method as claimed in claim 4 , wherein the aligning the first mask with the packet comprises:

aligning the data values at the one or more position(s) in the first mask with the data values at the one or more lockable position(s) in the packet to be transmitted, the data values of which are to be locked.

6. The method as claimed in claim 4 , wherein the providing the packet for transmission comprises:

providing the packet for transmission if the comparison indicates that the data value at each of the one or more position(s) in the first mask and the data value at each of the one or more lockable position(s) in the packet to be transmitted, the data of which are to be locked agree.

7. The method as claimed in claim 1 , wherein the providing a first mask comprises:

providing a first mask comprising one or more position(s) and a data vale at each of the one or more position(s);

setting the values at the one or more position(s) corresponding to the one or more lockable position(s) in the packet to be transmitted to be locked to a required value; and

setting the values at the one or more position(s) not set to the required value to a do not care value.

8. The method as claimed in claim 7 , wherein the aligning the first mask with the packet comprises:

aligning first position in the packet to be transmitted with the first mask's first position.

9. The method as claimed in claim 7 , wherein the providing the packet for transmission comprises:

providing the packet for transmission if the comparison indicates that the required data values at each of the one or more position of the first mask and the data values at the one or more lockable position(s) in the packet to be transmitted, the data of which are to be locked agree.

10. A method for data overlay, comprising:

selecting a mask from a plurality of masks, each of the plurality of the masks comprising one or more position(s) and a data value at each of the one or more position(s) and specifying different data value at at least one of the one or more position(s);

providing the selected mask;

aligning the provided mask with a packet to be transmitted; and

replacing a data value at each of one or more position(s) in the packet to be transmitted with a data value at one or more aligned position(s) in the provided mask.

11. The method as claimed in claim 10 , wherein the providing the selected mask comprises:

providing the selected mask comprising one or more position(s) and a data value at each of the one or more position(s) corresponding to the one or more position(s) in the packet to be transmitted, the data value of which are to be overlaid.

12. The method as claimed in claim 11 , wherein the aligning the provided mask with the packet to be transmitted comprises:

aligning the data values at the one or more positions in the provided mask with the data values at the one or more position(s) in the packet to be transmitted, the data values of which are to be overlaid.

13. The method as claimed in claim 10 , wherein the providing the selected mask comprises:

providing the selected mask comprising one or more position(s) corresponding to each of the one or more position(s) in the packet to be transmitted;

setting the values at the one or more position(s) corresponding to the one or more packet's position(s) to be overlaid to a required value; and

setting the values at the one or more position(s) not set to the required value to a do not care value.

14. The method as claimed in claim 13 , wherein the aligning the provided mask with the packet to be transmitted comprises:

aligning first position of the packet to be transmitted with the provided mask's first position.

15. An apparatus for data lockdown, comprising:

a hypervisor configured to provide a first mask comprising one or more position(s) and a data value at each of the one or more position(s); and

a virtual network interface card communicatively coupled to the hypervisor, the virtual network interface card configured to:

align the first mask with a packet to be transmitted,

compare the data value at each of the one or more position(s) in the first mask with a data value at each of one or more aligned position(s) in the packet to be transmitted, and

provide the packet for transmission if the comparing indicates that the data value at each of the one or more position(s) in the first mask and the data value at each of one or more aligned lockable position(s) in the packet to be transmitted agree; and

drop the packet if the comparison indicates that the data value at each of the one or more position(s) in the first mask and the data value at each of the one or more aligned lockable position(s) in the packet to be transmitted disagree.

16. The apparatus as claimed in claim 15 , wherein the hypervisor is configured to provide a second mask comprising one or more position(s) and a value at each of the one or more position(s); and

the virtual network interface card is configured to:

align the second mask with the packet to be transmitted; and

replace a data value at each of one or more position(s) in the packet to be transmitted with a data value at one or more aligned position(s) in the second mask.

17. The apparatus as claimed in claim 15 , wherein the hypervisor is configured to

select the first mask from a plurality of first masks, each of the plurality of first masks specifying different data value at at least one of the one or more position(s); and

provide the selected first mask.

18. The apparatus as claimed in claim 15 , wherein the hypervisor is configured to

provide a first mask comprising one or more position(s) and a data value at each of the one or more position(s) corresponding to the one or more lockable position(s) in the packet to be transmitted, the data value of which are to be locked.

19. The apparatus as claimed in claim 18 , wherein virtual network interface card is configured to

align the data values at the one or more position(s) in the first mask with the data values at the one or more lockable position(s) in the packet to be transmitted, the data values of which are to be locked.

20. The apparatus as claimed in claim 18 , wherein the virtual network interface card is configured to

provide the packet for transmission if the comparison indicates that the data value at each of the one or more position(s) of the first mask and the data value at each of the one or more lockable position(s) in the packet to be transmitted, the data of which are to be locked agree.

21. The apparatus as claimed in claim 15 , wherein the hypervisor is configured to:

provide a first mask comprising one or more position(s) and a data vale at each of the one or more lockable positions in the packet to be transmitted;

set the values at the one or more position(s) corresponding to the one or more lockable position(s) in the packet to be transmitted to be locked to a required value; and

set the values at the one or more position(s) not set to the required value to a do not care value.

22. The apparatus as claimed in claim 21 , wherein virtual network interface card is configured to

align first position in the packet with the first mask's first position.

23. The apparatus as claimed in claim 21 , wherein virtual network interface card is configured to

provide the packet for transmission if the comparison indicates that the required data values at each of the one or more position of the first mask and the data values at the one or more lockable position(s) in the packet to be transmitted, the data of which are to be locked agree.

24. An apparatus for data overlay, comprising: a hypervisor configured to: select a mask from a plurality of masks, each of the plurality of the masks comprising one or more position(s) and a data value at each of the one or more position(s) and specifying different data value at least one of the one or more position(s); and provide the selected mask; and a virtual network interface card communicatively coupled with the hypervisor, the virtual network interface card configured to: align the provided mask with a packet to be transmitted; and replace a data value at each of one or more position(s) in the packet to be transmitted with a data value at one or more aligned position(s) in the provided mask.

25. The apparatus as claimed in claim 24 , wherein the hypervisor is configured to:

provide the selected mask comprising one or more position(s) and a data value at each of the one or more position(s) corresponding to the one or more position(s) in the packet to be transmitted, the data value of which are to be overlaid.

26. The apparatus as claimed in claim 25 , wherein virtual network interface card is configured to:

align the data values at the one or more positions in the provided mask with the data values at the one or more position(s) in the packet to be transmitted, the data values of which are to be overlaid.

27. The apparatus as claimed in claim 24 , wherein the hypervisor is configured to

provide the selected mask comprising one or more position(s) corresponding to each of the one or more position(s) in the packet to be transmitted;

set the values at the one or more position(s) corresponding to the one or more position(s) in the packet to be transmitted to be locked to a required value; and

set the values at the one or more position(s) not set to the required value to a do not care value.

28. The apparatus as claimed in claim 27 , wherein the virtual network interface card is configured to:

align first position of the packet to be transmitted with the provided mask's first position.

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 Dec 15, 2013
From: SNYDER II, WILSON PARKHURST; ROMANOV, PHILIP; KRAKIRIAN, SHAHE HAGOP
To: CAVIUM, INC.
Reel/Frame 031784/0225 →
Continuity (1)
Related Publication 20150172180A1 · Jun 18, 2015