IP Library Granted Patent US 9,065,781
Granted Patent B2
US 9,065,781 · App. 14/026,293 · Granted Jun 23, 2015

Messaging with flexible transmit ordering

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,065,781
App. No.
14/026,293
Granted
Jun 23, 2015
Kind
B2
Abstract

In one embodiment, a system includes a packet reception unit. The packet reception unit is configured to receive a packet, create a header indicating scheduling of the packet in a plurality of cores and concatenate the header and the packet. The header is based on the content of the packet. In one embodiment, a system includes a transmit silo configured to store a multiple fragments of a packet, the fragments having been sent to a destination and the transmit silo having not received an acknowledgement of receipt of the fragments from the destination. The system further includes a restriction verifier coupled with the transmit silo. The restriction verifier is configured to receive the fragments and determine whether the fragments can be sent and stored in the transmit silo.

Claims (31)

1. A system comprising:

a packet reception unit configured to receive a packet, create a header indicating scheduling of the packet in a plurality of cores, the header based on the content of the packet, and concatenate the header and the packet; and a plurality of reassembly stores, wherein receiving the packet includes receiving at least one fragment of the packet, storing the at least one fragment in a particular reassembly store corresponding with the packet, and when the particular reassembly store contains at least one fragment of the packet such that the stored at least one fragment represents the packet as a whole, forwarding the packet to the plurality of cores, wherein the packet reception unit is further configured to, store the at least one fragments in one of a plurality of memories within the reassembly stores, and, when the one of the plurality of memories is filled, copy the at least one fragments to a memory external to the packet reception unit.

2. The system of claim 1 , wherein the packet reception unit is further configured to receive a plurality of packets, wherein the packets may originate from more than one source.

3. The system of claim 1 , wherein the particular reassembly store is allocated to the packet upon receiving a first of the at least one fragments of the packet.

4. The system of claim 3 , wherein the particular reassembly store accepts other fragments of the at least one fragment of the packet after receiving the first of the at least one fragments of the packet.

5. The system of claim 1 , wherein the packet reception unit is further configured to send a retry message when each of the reassembly stores are unavailable to receive a first of the at least one fragments of the packet.

6. The system of claim 1 , wherein the packet reassembly stores are stored in a memory internal to the packet reception unit.

7. The system of claim 1 , further comprising a packet allocation unit configured to direct each fragment associated with the packet to the particular reassembly store corresponding with the packet.

8. The system of claim 1 , further comprising:

at least one port within the packet reception unit;

wherein each reassembly store is assigned to one of the ports.

9. The system of claim 8 , wherein the reassembly store assignments to the ports are configurable to affect quality of service of each of the ports.

10. The system of claim 1 , further comprising a plurality of packet reception units, each packet reception unit sharing the plurality of reassembly stores wherein each reassembly store is assigned to one of the packet reception units.

11. The system of claim 10 , wherein the reassembly store assignments to the packet reception units are configurable to affect quality of service of each of the packet reception units.

12. A method comprising:

receiving a packet;

creating a header indicating scheduling of the packet in a plurality of cores, the header based on the content of the packet;

concatenating the header and the packet;

receiving at least one fragment of the packet;

storing the at least one fragment in a particular one of a plurality of reassembly stores corresponding with the packet; and

forwarding the packet to a plurality of cores when the particular reassembly store contains at least one fragment of the packet such that the stored at least one fragment represents the packet as a whole, wherein the packet reception unit is further configured to, store the at least one fragments in one of a plurality of memories within the reassembly stores, and, when the one of the plurality of memories is filled, copy the at least one fragments to a memory external to the packet reception unit.

13. The method of claim 12 , wherein receiving a packet includes receiving a plurality of packets, wherein the packets originate from more than one source.

14. The method of claim 12 , further comprising allocating the particular reassembly store to the packet upon receiving a first of the at least one fragments of the packet.

15. The method of claim 14 , wherein the particular reassembly store accepts other fragments of the at least one fragment of the packet after receiving the first of the at least one fragments of the packet.

16. The method of claim 12 , further comprising sending a retry message when each of the reassembly stores are unavailable to receive a first of the at least one fragments of the packet.

17. The method of claim 12 , wherein the packet reassembly stores are stored in an internal memory.

18. The method of claim 12 , further comprising directing each fragment associated with the packet to the particular reassembly store corresponding with the packet.

19. The method of claim 12 , further comprising assigning each reassembly store to at least one port.

20. The method of claim 19 , further comprising configuring the reassembly store assignments to the ports to affect quality of service of each of the ports.

21. The method of claim 12 , further comprising sharing the plurality of reassembly stores with each of a plurality of packet reception units wherein each reassembly store is assigned to one of the packet reception units.

22. The method of claim 21 , further comprising configuring the reassembly store assignments to the packet reception units to affect quality of service of each of the packet reception units.

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 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
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 5, 2013
From: KESSLER, RICHARD E.; HUMMELL, THOMAS F.; SANZONE, ROBERT A.; KATZ, DANIEL A.; BERTONE, MICHAEL S.
To: CAVIUM, INC.
Reel/Frame 031722/0451 →