IP Library Patent Application 14317017
Patent Application
App. No. 14/317,017

Traffic Manager with Programmable Queuing

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 None
App. No.
14/317,017
Filed
Jun 27, 2014
Art Unit
2181
USPC
710/52
Abstract

A traffic manager includes an execution unit that is responsive to instructions related to queuing of data in memory. The instructions may be provided by a network processor that is programmed to generate such instructions, depending on the data. Examples of such instructions include (1) writing of data units (of fixed size or variable size) without linking to a queue, (2) re-sequencing of the data units relative to one another without moving the data units in memory, and (3) linking the previously-written data units to a queue. The network processor and traffic manager may be implemented in a single chip.

Claims (39)

1 - 12 . (canceled)

13 . A network communications traffic management system, the system comprising:

a network processor having a network interface to receive packet fragments in a first order of sequence, where the packet fragments were transmitted as a packet in a predetermined second order of sequence, the network processor sending write instruction for writing the received packet fragments in memory, and writing a stitch instruction for reassembling the packet fragments in the second order of sequence; and,

an execution unit accepting the packet fragments and write instructions from the network processor and storing the packet fragments in a memory, and in response to the stitch instructions, storing pointers in memory for coupling the packet fragments in the second order.

14 . The system of claim 13 wherein the network processor, upon receipt of all the packet fragments in the packet, sends a link instruction; and,

wherein the execution unit associates the packet fragments, coupled together in memory in the second order of sequence, with a queue.

15 . The system of claim 14 further comprising:

a scheduler using the pointer to read the packet fragments from the queue in the memory in the second order of sequence, and schedule the packet for transmission.

16 . The system of claim 13 wherein the execution unit stores the pointers for coupling the packet fragments in the second order subsequent to receiving all the packet fragments in the packet.

17 . The system of claim 13 wherein the execution unit stores a pointer for coupling a first packet fragment to a second packet fragment in the second order, prior to receiving all the packet fragments in the packet.

18 . The system of claim 13 wherein the network process sends memory start addresses for packet fragments to the execution unit with the write instructions.

19 . The system of claim 13 wherein the execution unit stores a “next” pointer in memory, associated with each current packet fragment, to identify a next packet fragment in the second order of sequence.

20 . The system of claim 19 where the network process sends a memory start addresses for a current packet fragment that is identical to the “next” pointer associated with a previously received packet fragment.

21 . The system of claim 13 wherein the execution comprises a plurality of parallel first-in first-out (FIFO) memories. including a first FIFO memory for accepting instruction from the network processor, a second FIFO memory for accepting queue identities to be assigned to packets, and a third FIFO memory to accept packet fragments.

22 . The system of claim 13 wherein the execution unit stores each packet fragment in a plurality of adjacent cells in memory.

23 . A method for network communications traffic management, the method comprising:

receiving packet fragments in a first order of sequence, where the packet fragments were transmitted as a packet in a predetermined second order of sequence;

writing the received packet fragments in memory, in the first order of sequence;

generating stitch instruction for reassembling the packet fragments in the second order of sequence; and,

storing pointers in memory for coupling the packet fragments in the second order.

24 . The method of claim 23 further comprising:

upon receipt of all the packet fragments in the packet, generating a link instruction; and,

associating the packet fragments, coupled together in memory in the second order of sequence, with a queue.

25 . The method of claim 24 further comprising:

using the pointer, reading the packet fragments from the queue in the memory in the second order of sequence; and,

scheduling the packet for transmission.

26 . The method of claim 23 wherein storing the pointers in memory includes storing the pointers subsequent to receiving all the packet fragments in the packet.

27 . The method of claim 23 wherein storing the pointers in memory includes storing a pointer for coupling a first packet fragment to a second packet fragment in the second order, prior to receiving all the packet fragments in the packet.

28 . The method of claim 23 wherein writing the packet fragments in memory includes:

generating a write instruction for each packet fragment; and,

including a memory start addresses for each packet fragment with the write instructions.

29 . The method of claim 23 wherein storing the pointers in memory includes storing a “next” pointer in memory, associated with each current packet fragment, to identify a next packet fragment in the second order of sequence.

30 . The method of claim 29 wherein writing the packet fragments in memory includes generating a write instruction for a current packet fragment with a memory start address that is identical to the “next” pointer associated with a previously received packet fragment.

31 . The method of claim 23 wherein writing the packet fragments in memory includes storing each packet fragment in a plurality of adjacent cells in memory.

32 . A method for network communications traffic management, the method comprising:

a network processor receiving packet fragments in a first order of sequence, where the packet fragments were transmitted as a packet in a predetermined second order of sequence;

an execution unit writing the received packet fragments in memory, in the first order of sequence;

the network processor generating stitch instruction for reassembling the packet fragments in the second order of sequence; and,

the execution unit storing pointers in memory for coupling the packet fragments in the second order.

Assignments (3)
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2016
From: NET NAVIGATION SYSTEMS, LLC
To: RPX CORPORATION
Reel/Frame 037679/0953 →