IP Library Granted Patent US 9,513,926
Granted Patent B2
US 9,513,926 · App. 14/150,664 · Granted Dec 6, 2016

Floating mask generation for network packet flow

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,513,926
App. No.
14/150,664
Granted
Dec 6, 2016
Kind
B2
Abstract

A tag mask generation method comprises receiving a section_selector flag indicating whether a tag mask for a section of a network packet is to be generated; receiving from a parser a parse information for the network packet, wherein the parse information includes a section_pointer that indicates a location of the section in the network packet; generating a pointer based on the section_pointer when the section_selector indicates that the tag mask for the section is to be generated; receiving a base mask for the section; and generating the tag mask via a shifter by shifting the base mask by the amount indicated by the pointer. The parse information may further include a section_pointer_valid flag indicating whether the section is included in the network packet, and the method may further comprise including the tag mask in a combined tag mask when the section_pointer_valid flag indicates that the section is included in the network packet.

Claims (40)

1. A tag mask generation method comprising:

receiving a section_selector flag indicating whether a tag mask comprising arbitrary number of bits for at least one section of a network packet is to be generated;

receiving from a parser a parse information for the network packet, wherein the parse information includes a section_pointer that indicates a location of the section in the network packet;

generating a pointer based on the section_pointer when the section_selector indicates that the tag mask for the section is to be generated;

receiving a base mask for the section; and

generating the tag mask via a shifter by shifting the base mask by the amount indicated by the pointer.

2. The method of claim 1 , wherein the parse information further includes a section_pointer_valid flag indicating whether the section is included in the network packet, and wherein the method further comprises including the tag mask in a combined tag mask when the section_pointer_valid flag indicates that the section is included in the network packet.

3. The method of claim 2 , wherein including the tag mask in the combined tag mask includes combining the tag mask with the section_pointer_valid flag via an AND gate and including the result to the combined tag mask.

4. The method of claim 1 , further comprising applying the tag mask to the network packet to derive a masked packet.

5. The method of claim 4 , wherein the tag mask is applied to the network packet via an AND gate.

6. The method of claim 4 , further comprising reducing the masked packet to derive a tag for the network packet.

7. The method of claim 6 , further comprising scheduling queuing or processing of the packet based on the tag.

8. The method of claim 1 , wherein the section is a first section of the network packet and the tag mask is a first tag mask corresponding to the first section, the method further comprising:

generating a second tag mask corresponding to a second section of the network packet; and

combining the first tag mask and the second tag mask to generate a combined tag mask.

9. The method of claim 8 , wherein the first tag mask and the second tag mask are combined via an OR gate.

10. The method of claim 8 , further comprising applying the combined tag mask to the network packet to derive a masked packet.

11. The method of claim 10 , further comprising reducing the masked packet to derive a tag for the network packet.

12. The method of claim 11 , further comprising scheduling queuing or processing of the packet based on the tag.

13. A tag mask generation system comprising:

a selector module configured to generate a section_selector flag indicating whether a tag mask comprising arbitrary number of bits for at least one network packet is to be generated;

a multiplexer configured to receive the section_selector and a parse information for the network packet, wherein the parse information includes a section_pointer that indicates a location of the section in the network packet, and further configured to generate a pointer based on the section_pointer when the section_selector indicates that the tag mask for the section is to be generated;

a shifter module configured to receive the pointer and a base mask for the section, and further configured to generate the tag mask by shifting the base mask by the amount indicated by the pointer.

14. The system of claim 13 , wherein the parse information further includes a section_pointer_valid flag indicating whether the section is included in the network packet, and wherein the system further comprises a combiner that is configured to include the tag mask in a combined tag mask when the section_pointer_valid flag indicates that the section is included in the network packet.

15. The system of claim 14 , wherein including the tag mask in the combined tag mask includes combining the tag mask with the section_pointer_valid flag via an AND gate and including the result to the combined tag mask.

16. The system of claim 13 further comprising a masked packet generator module configured to apply the tag mask to the network packet to derive a masked packet.

17. The system of claim 16 , further comprising a reducer module configured to reduce the masked packet to derive a tag for the network packet.

18. The system of claim 17 , further comprising a scheduling unit configured to schedule queuing or processing of the packet based on the tag.

19. The system of claim 13 , wherein the section is a first section of the network packet and the tag mask is a first tag mask corresponding to the first section and generated by a first tag mask generator, the system further comprising:

a second tag mask generator configured to generate a second tag mask corresponding to a second section of the network packet; and

a combiner module configured to combine the first tag mask and the second tag mask to generate a combined tag mask.

20. The system of claim 19 , further comprising a masked packet generator configured to apply the combined tag mask to the network packet to derive a masked packet.

21. The system of claim 20 , further comprising a reducer module configured to reduce the masked packet to derive a tag for the network packet.

22. The system of claim 21 , further comprising a scheduling unit configured to schedule queuing or processing of the packet based on the tag.

23. A non-transitory computer readable medium storing a computer program that, when executed by a tag generation system, causes the tag generation system to perform a tag mask generation method, the tag generation method comprising:

receiving a section_selector flag indicating whether a tag mask comprising arbitrary number of bits for at least one section of a network packet is to be generated;

receiving from a parser a parse information for the network packet, wherein the parse information includes a section_pointer that indicates a location of the section in the network packet;

generating a pointer based on the section_pointer when the section_selector indicates that the tag mask for the section is to be generated;

receiving a base mask for the section; and

generating the tag mask via a shifter by shifting the base mask by the amount indicated by the pointer.

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 Jan 10, 2014
From: SNYDER, WILSON PARKHURST, II; JAMBA, NICHOLAS NEW
To: CAVIUM INC.
Reel/Frame 031935/0326 →