Method and system for switch fabric flow control
First Claim
Patent Images
1. A system, comprising:
- a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow.
15 Assignments
0 Petitions
Accused Products
Abstract
An ingress is coupled with the switch fabric to send flows of data across the switch fabric. Each of the flows of data is associated with a flow identification information and a priority level. An egress is coupled with the switch fabric to receive the flows of data from the ingress. The egress is configured to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows of data to the egress. Each of the flow control messages includes one or more of a flow identification information, an egress space availability information and a new priority level for a flow.
-
Citations
34 Claims
-
1. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the ingress comprises ingress flow queues, wherein in response to receiving a flow control message associated with one flow, the ingress locates the one flow in one of the ingress flow queues using the flow identification information, wherein the ingress flow queues comprises;
a first set of one or more ingress flow queues having flows that are selected in a first-in-first-out order such that flow selection by the ingress occurs when flow position is at a head of the ingress flow queue, and a second set of one or more ingress flow queues having flows that are selected in any order such that flow selection by the ingress occurs regardless of flow position in the ingress flow queue. - View Dependent Claims (7, 8, 9)
-
-
10. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the ingress comprises ingress flow queues, wherein in response to receiving a flow control message associated with one flow, the ingress locates the one flow in one of the ingress flow queues using the flow identification information, wherein when the flow control message associated with the one flow includes the new priority level, the ingress updates the one flow with the new priority level, and wherein the one flow having the new priority level is moved to a position in an ingress flow queue associated with a priority level similar to the new priority level of the one flow.
-
-
11. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the egress space availability information and the new priority level for an individual flow are calculated based on current and previous occupancy by the individual flow and current and previous occupancy of an aggregate of all flows in an egress queue.
-
-
12. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the egress space availability information and the new priority level for the flow are calculated using hysteresis to reduce egress space allocation changes, priority level changes and a number of flow control messages between the egress and the ingress.
-
-
13. A system, comprising:
-
a switch fabric;
an ingress coupled with the switch fabric to send flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress coupled with the switch fabric to receive the flows from the ingress and to send one or more flow control messages to the ingress to control a pace that the ingress sends the flows to the egress, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein one of the flow control messages further comprises an importance bit to enable the ingress to decide if the one flow control message can be dropped. - View Dependent Claims (14)
-
-
15. A system, comprising:
-
a switch fabric;
an ingress means for sending flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress means for receiving the flows from the ingress means and sending one or more flow control messages to the ingress means to control a pace that the ingress means sends the flows to the egress means, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow. - View Dependent Claims (16, 17, 18)
-
-
19. A system, comprising:
-
a switch fabric;
an ingress means for sending flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress means for receiving the flows from the ingress means and sending one or more flow control messages to the ingress means to control a pace that the ingress means sends the flows to the egress means, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the egress space availability information and the new priority level for an individual flow are calculated based on current and previous occupancy by the individual flow and current and previous occupancy of an aggregate of all flows in an egress queue.
-
-
20. A system, comprising:
-
a switch fabric;
an ingress means for sending flows of data across the switch fabric, each of the flows is associated with flow identification information; and
an egress means for receiving the flows from the ingress means and sending one or more flow control messages to the ingress means to control a pace that the ingress means sends the flows to the egress means, each of the flow control messages including one or more of a flow identification information, an egress space availability information and a new priority level for a flow, wherein the egress space availability information and the new priority level for an individual flow are calculated using hysteresis to reduce egress space allocation changes, priority level changes and a number of flow control messages between the egress and the ingress.
-
-
21. A method, comprising:
-
receiving a first flow data for a flow from an ingress, the first flow data stored in an egress queue storing one or more flows, the flow associated with flow identification information;
determining space availability information in the egress queue for the flow;
ansending a flow control message to the ingress to control a pace that the ingress sends a second flow data for the flow, the flow control message comprising the flow identification information; and
determining a new priority level for the flow, wherein when the new priority level of the flow is lower than a current priority level of the flow, the ingress sends the second flow data at a slower pace than a current pace. - View Dependent Claims (22)
-
-
23. A method, comprising:
-
receiving a first flow data for a flow from an ingress, the first flow data stored in an egress queue storing one or more flows, the flow associated with flow identification information;
determining space availability information in the egress queue for the flow;
sending a flow control message to the ingress to control a pace that the ingress sends a second flow data for the flow, the flow control message comprising the flow identification information; and
determining a new priority level for the flow, wherein when the new priority level of the flow is lower than a current priority level of the flow, the ingress sends the second flow data at a slower pace than a current pace, wherein the space availability information and the new priority level for the flow are calculated based on current and previous occupancy by the flow and current and previous occupancy of an aggregate of the one or more flows in the egress queue.
-
-
24. A method, comprising:
-
receiving a first flow data for a flow from an ingress, the first flow data stored in an egress queue storing one or more flows, the flow associated with flow identification information;
determining space availability information in the egress queue for the flow;
sending a flow control message to the ingress to control a pace that the ingress sends a second flow data for the flow, the flow control message comprising the flow identification information; and
determining a new priority level for the flow, wherein when the new priority level of the flow is lower than a current priority level of the flow, the ingress sends the second flow data at a slower pace than a current pace, wherein the space availability information and the new priority level for the flow are calculated using hysteresis to reduce egress space allocation changes, priority level changes and a number of flow control messages sent to the ingress.
-
-
25. A method, comprising:
-
receiving a flow control message associated with a flow from an egress to determine a pace to send flow data from the flow to the egress, the flow control message comprising flow identification information and a priority level;
in response to receiving the flow control message, locating the flow in one of multiple ingress flow queues using the flow identification information; and
sending the flow data from the flow to the egress based on information in the flow control message, wherein the flow control message comprises space availability information for the flow and the flow data is sent to the egress based on the priority level in the flow control message associated with the flow. - View Dependent Claims (26)
-
-
27. A method, comprising:
-
receiving a flow control message associated with a flow from an egress to determine a pace to send flow data from the flow to the egress, the flow control message comprising flow identification information and a priority level;
in response to receiving the flow control message, locating the flow in one of multiple ingress flow queues using the flow identification information; and
sending the flow data from the flow to the egress based on information in the flow control message, wherein the multiple ingress flow queues comprises;
a first set of one or more ingress flow queues having flows that are selected in a first-in-first-out order such that flow selection occurs when flow position is at a head of the ingress flow queue, and a second set of one or more ingress flow queues having flows that are selected in any order such that flow selection occurs regardless of flow position in the ingress flow queue. - View Dependent Claims (28, 29, 30, 31, 32, 33)
-
-
34. A method, comprising:
-
receiving a flow control message associated with a flow from an egress to determine a pace to send flow data from the flow to the egress, the flow control message comprising flow identification information and a priority level;
in response to receiving the flow control message, locating the flow in one of multiple ingress flow queues using the flow identification information; and
sending the flow data from the flow to the egress based on information in the flow control message, wherein the flow control message further comprises an importance bit such that when set as non-important, the flow control message can be dropped.
-
Specification