Method and apparatus for ordering packets, associated with different streams of data, in a single queue prior to transmission of the packets in a network

US9800698B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9800698-B1
Application numberUS-201414327733-A
CountryUS
Kind codeB1
Filing dateJul 10, 2014
Priority dateJul 12, 2013
Publication dateOct 24, 2017
Grant dateOct 24, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Systems, methods, and other embodiments associated with ordering packets into a transmission order within a queue are described. According to one embodiment, an apparatus includes shaper logic configured to (i) respectively determine launch times for packets received from a host bus, and (ii) order the packets into a transmission order according to the launch times. The launch times are expected transmission times for the packets that are provided according to one or more attributes associated with each respective one of the packets. The apparatus includes a queue configured to store the packets in the transmission order for transmission onto a network in a single stream. The shaper logic is configured to merge the packets from multiple streams into the transmission order when providing the packets to the queue.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus, comprising: a processor connected to memory; and shaper logic stored within the memory and executable by the processor, the shaper logic including a plurality of shapers where each shaper receives and stores a different packet stream of packets and where each of the shapers are configured to (i) respectively determine launch times for the packets received from a host bus, and (ii) order the packets into a transmission order according to the launch times, wherein the launch times are expected transmission times for the packets that are provided according to one or more attributes associated with each respective one of the packets; and a queue arbiter stored within the memory and executable by the processor, the queue arbiter including a multiplexer connected to each of the plurality of shapers, wherein the queue arbiter is configured to merge the packets from the plurality of shapers into a single queue and order the merged packets in the single queue based at least in part on the launch times of the packets; wherein the single queue includes a single buffer that is configured to store the packets from the queue arbiter in a merged transmission order; and a network arbiter stored within the memory and executable by the processor, the network arbiter being (i) connected to the single queue and (ii) configured to: release the packets from the single queue for transmission onto a network in a single combined stream in the merged transmission order; identify a conflict where a first packet of a first stream and a second packet of a second stream have a same launch time and, in response to identifying the conflict, set a toggle bit in the second packet; check that the launch time of the first packet matches a current time and transmit the first packet; and read the toggle bit set within the second packet, wherein based on the toggle bit, the second packet is transmitted immediately after transmission of the first packet from the first stream without checking a launch time of the second packet with the current time, wherein the second packet is assigned to the second stream different than the first stream. 2. The apparatus of claim 1 , further comprising: bus arbiter logic stored within the memory and executable by the processor, the bus arbiter logic configured to receive the packets from a host bus and provide the packets to the shaper logic, wherein the bus arbiter logic is configured to distribute the packets to the plurality of shapers within the shaper logic according to the one or more attributes of each packet, wherein the one or more attributes include a class of service, a priority or a bandwidth allocation, wherein the shapers are configured to calculate a launch time for one or more of the packets that are not time aware, and wherein packets that are not time aware are not sensitive to a delivery time at a client device. 3. The apparatus of claim 1 , wherein the toggle bit comprises a queue indicator indicative of a virtual queue associated with the second stream from which the second packet was received. 4. The apparatus of claim 1 , wherein a shaper is configured to: calculate a launch time for a not time aware packet according to an allocated bandwidth for the not time aware packet, a packet size of a previously transmitted packet with respect to the not time aware packet, and a launch time of the previously transmitted packet with respect to the not time aware packet. 5. The apparatus of claim 1 , wherein the single queue is a First-In First-out (FIFO) queue wherein the packets are input to the single queue based on the launch time of the packets, wherein the packets are assigned to virtual queues that are each associated with a different class of service, wherein the queue merges the packets together by combining the packets into the queue in the transmission order for being sent on the network. 6. The apparatus of claim 1 , wherein the shaper logic is configured to resolve a conflict between two of the packets with a launch time that is equal by selecting one of the two with a higher priority or class of service, and wherein the merged transmission order is a final order for providing the packets on the network in a single stream. 7. The apparatus of claim 1 , wherein the packets include multiple data streams received from a host bus, wherein each of the multiple data streams is assigned to one of a set of virtual queues that each have different transmission characteristics, wherein at least one of the multiple data streams includes packets for audio video bridging (AVB), and wherein packets for the set of virtual queues are stored in the queue in the transmission order before being released onto the network. 8. A method, comprising: distributing packets received from a host bus to a plurality of shapers according to one or more attributes of each of the packets for ordering; determining, in each of the plurality of shapers, launch times for the packets stored in the respective shaper; ordering the packets in each of the plurality of shapers into a transmission order according to the launch times of the packets in the respective shaper, wherein the launch times are expected transmission times for the packets, and wherein the launch times are provided according to the one or more attributes associated with each respective one of the packets; merging, by a queue arbiter connected to each of the plurality of shapers, the packets from each of the plurality of shapers into a single queue and ordering the merged packets in the single queue based at least in part on the launch times of the packets, wherein the single queue stores the packets from the queue arbiter in a merged transmission order; and releasing the packets from the single queue and transmitting the packets onto a network in a single combined stream in the merged transmission order; identifying a conflict where a first packet of a first stream and a second packet of a second stream have a same launch time and, in response to identifying the conflict, set a toggle bit in the second packet; checking that the launch time of the first packet matches a current time and transmit the first packet; and reading the toggle bit set within the second packet, wherein based on the toggle bit, the second packet is transmitted immediately after transmission of the first packet from the first stream without checking a launch time of the second packet with the current time, wherein the second packet is assigned to the second stream different than the first stream. 9. The method of claim 8 , wherein releasing the packets from the single queue includes releasing the packets on a first-in first-out basis, wherein releasing the packets includes releasing a packet of the packets from the queue when a launch time for the packet matches a current time and when the packet is next in the transmission order to be released. 10. The method of claim 9 , wherein releasing the packets includes releasing two consecutive packets in the transmission order that have a same launch time according to a toggle bit in a second of the two consecutive packets, and wherein the toggle bit indicates that the second packet has the same launch time as a previous packet that was already transmitted. 11. The method of claim 8 , further comprising: receiving the packets from the host bus, wherein the one or more attributes include a class of service, a priority or a bandwidth allocation, wherein storing the packets includes storing each whole packet of the packets in the single queue, wherein determining the launch times includes calculating a launch time for one or more of the packets that are not time aware, and wherein packe

Assignees

Inventors

Classifications

  • Buffering arrangements · CPC title

  • in relation to timing considerations · CPC title

  • H04L69/324Primary

    in the data link layer [OSI layer 2], e.g. HDLC · CPC title

  • at the source  (reformatting of additional data in video distribution servers H04N21/2355) · CPC title

  • Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9800698B1 cover?
Systems, methods, and other embodiments associated with ordering packets into a transmission order within a queue are described. According to one embodiment, an apparatus includes shaper logic configured to (i) respectively determine launch times for packets received from a host bus, and (ii) order the packets into a transmission order according to the launch times. The launch times are expecte…
Who is the assignee on this patent?
Marvell Int Ltd
What technology area does this patent fall under?
Primary CPC classification H04L69/324. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 24 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).