IP Library Granted Patent US 7,295,519
Granted Patent B2
US 7,295,519 · App. 10/600,727 · Granted Nov 13, 2007

Method of quality of service based flow control within a distributed switch fabric network

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 7,295,519
App. No.
10/600,727
Granted
Nov 13, 2007
Kind
B2
Abstract

In a distributed switch fabric network ( 300 ) having a first node ( 302 ) having a first node transceiver port ( 305 ) and a second node ( 304 ) having a second node transceiver port ( 340 ), link level flow control ( 370 ) operating between the first node transceiver port and the second node transceiver port to in response to a congestion condition ( 321 ) in the second node transceiver port, wherein the link level flow control suspends transmission of one of a plurality of priority levels of packets ( 312 ) on a channel from the first node transceiver port to the second node transceiver port. The one of the plurality of priority levels of packets accumulates in one of a plurality of a transmit buffers ( 362 ) of the first transceiver port, where the one of the plurality of transmit buffers corresponds to the one of the plurality of priority levels of packets. Per-flow flow control ( 372 ) operates to modify transmission of the one of the plurality of priority levels of packets to the transmit buffer if the transmit buffer reaches a transmit threshold value ( 360 ). Link level flow control operates transparently to a traffic manager ( 352 ) of the first node if the congestion condition occurs and the one of the plurality of transmit buffers fails to reach the transmit threshold value.

Claims (44)

1. A method comprising:

providing a distributed switch fabric network having a first node and a second node coupled to exchange a plurality of packets over a channel, wherein the plurality of packets are divided into a plurality of priority levels of packets;

detecting a congestion condition of one of the plurality of priority levels of packets in the second node;

reporting the congestion condition of the one of the plurality of priority levels of packets to the first node;

the first node suspending transmission of the one of the plurality of priority levels of packets over the channel to the second node;

detecting a clear condition of the one of the plurality of priority levels of packets in the second node;

reporting the clear condition of the one of the plurality of priority levels of packets to the first node;

resuming transmission of the one of the plurality of priority levels of packets from the first node to the second node;

providing each of the plurality of priority levels of packets with a transmit buffer;

the one of the plurality of priority levels of packets accumulating in the transmit buffer corresponding to the one of the plurality of priority levels of packets;

if the transmit buffer corresponding to the one of the plurality of priority levels of packets reaches a transmit threshold value, a traffic manager of the first node modifying transmission of the one of the plurality of priority levels of packets to the transmit buffer; and

if resuming transmission occurs prior to the transmit buffer reaching the transmit threshold value, the first node suspending transmission of the one of the plurality of priority levels of packets occurring transparently to the traffic manager of the first node.

2. The method of claim 1 , wherein the first node modifying transmission of the one of the plurality of priority levels of packets comprises suspending transmission of the one of the plurality of priority levels of packets over the channel to the transmit buffer.

3. The method of claim 1 , wherein modifying transmission of the one of the plurality of priority levels of packets comprises throttling transmission of the one of the plurality of priority levels of packets over the channel to the transmit buffer.

4. The method of claim 1 , further comprising allowing the plurality of packets other than the one of the plurality of priority levels of packets to continue to the second node over the channel.

5. The method of claim 1 , wherein first node comprises a first node transceiver port and the second node comprises a second node transceiver port, and wherein detecting the congestion condition comprises the second node transceiver port detecting the congestion condition.

6. The method of claim 5 , wherein reporting the congestion condition comprises the second node transceiver port reporting the congestion condition to the first node transceiver port.

7. The method of claim 5 , wherein detecting the clear condition comprises the second node transceiver port detecting the clear condition.

8. The method of claim 5 , wherein reporting the clear condition comprises the second node transceiver port reporting the clear condition to the first node transceiver port.

9. A method comprising:

providing a distributed switch fabric network having a first node having a first node transceiver port and a second node having a second node transceiver port;

link level flow control operating between the first node transceiver port and the second node transceiver port to in response to a congestion condition in the second node transceiver port, wherein the link level flow control suspends transmission of one of a plurality of priority levels of packets on a channel from the first node transceiver port to the second node transceiver port;

the one of the plurality of priority levels of packets accumulating in one of a plurality of transmit buffers of the first node transceiver port, wherein the one of the plurality of transmit buffers corresponds to the one of the plurality of priority levels of packets;

per-flow flow control operating to modify transmission of the one of the plurality of priority levels of packets to the one of the plurality of transmit buffers if the one of the plurality of transmit buffers reaches a transmit threshold value; and

link level flow control operating transparently to a traffic manager of the first node if the congestion condition occurs and the one of the plurality of transmit buffers fails to reach the transmit threshold value.

10. The method of claim 9 , wherein the first node transceiver port is comprised of a first node receiver port and a first node transmitter port, wherein the second node transceiver port is comprised of a second node receiver port and a second node transmitter port, and wherein the link level flow control operating comprises:

the second node receiver port detecting the congestion condition;

the second node receiver port reporting the congestion condition to the second node transmitter port;

the second node transmitter port reporting the congestion condition to the first node receiver port;

the first node receiver port transmitting a priority level stop signal to the first node transmitter port, wherein the priority level stop signal corresponds to the one of the plurality of priority levels of packets; and

the first node transmitter port suspending transmission of the one of the plurality of priority levels of packets to the second node receiver port.

11. The method of claim 9 , wherein the first node transceiver port is comprised of a first node receiver port and a first node transmitter port, wherein the second node transceiver port is comprised of a second node receiver port and a second node transmitter port, and wherein the link level flow control operating comprises:

the second node receiver port detecting a clear condition;

the second node receiver port reporting the clear condition to the second node transmitter port;

the second node transmitter port reporting the clear condition to the first node receiver port;

the first node receiver port transmitting a priority level start signal to the first node transmitter port, wherein the priority level start signal corresponds to the one of the plurality of priority levels of packets; and

the first node transmitter port resuming transmission of the one of the plurality of priority levels of packets to the second node receiver port.

12. The method of claim 9 , wherein the per-flow flow control operating comprises:

a flow control generator detecting the one of the plurality of transmit buffers reaching the transmit threshold value and transmitting a modify flow control packet to the traffic manager, wherein the modify flow control packet operates to modify the flow of the one of the plurality of priority levels of packets to the one of the plurality of transmit buffers; and

the flow control generator detecting the one of the plurality of transmit buffers dropping below the transmit threshold value and transmitting a resume transmission packet to the traffic manager, wherein the resume transmission packet operates to resume transmission of the one of the plurality of priority levels of packets to the one of the plurality of transmit buffers.

13. The method of claim 12 , further comprising the flow control generator scheduling transmission of a plurality of priority levels of packets, the modify flow control packet and the resume transmission packet to the traffic manager.

14. The method of claim 13 , wherein the flow control generator giving priority to the modify flow control packet and the resume transmission packet over the plurality of priority levels of packets.

15. The method of claim 9 , wherein operating to modify transmission of the one of the plurality of priority levels of packets comprises suspending transmission of the one of the plurality of priority levels of packets over the channel to the one of the plurality of transmit buffers.

16. The method of claim 9 , wherein operating to modify transmission of the one of the plurality of priority levels of packets comprises throttling transmission of the one of the plurality of priority levels of packets over the channel to the one of the plurality of transmit buffers.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034475/0001 →
CHANGE OF NAME Recorded Oct 2, 2012
From: MOTOROLA MOBILITY, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 029216/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2010
From: MOTOROLA, INC
To: MOTOROLA MOBILITY, INC
Reel/Frame 025673/0558 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2003
From: SANDY, DOUGLAS L.; HILL, CHARLES C.
To: MOTOROLA, INC.
Reel/Frame 014223/0378 →