DATA SWITCHING FLOW CONTROL WITH VIRTUAL OUTPUT QUEUING
First Claim
1. An apparatus comprising:
- a plurality of data ingress modules;
a data-switch fabric operationally coupled with the plurality of data ingress modules; and
a plurality of data egress modules operationally coupled with the data-switch fabric,wherein;
each of the plurality of data ingress modules includes a set of virtual output queues, each of the virtual output queues corresponding with a respective data egress module; and
the data-switch fabric includes;
a plurality of fabric ingress ports; and
a plurality of fabric egress ports each including a set of fabric egress queues, each set of fabric egress queues being respectively associated with one of the data egress modules, each fabric egress queue corresponding with a respective data ingress module;
the data-switch fabric being configured to;
monitor an amount of data buffered in each of the fabric egress queues;
determine a change in a congestion state for one or more of the fabric egress queues; and
send a flow control message to a data ingress module corresponding with the change in congestion state; and
the data ingress modules being configured to receive and route data traffic to the respective data egress modules via the virtual output queues and the data-switch fabric in accordance with the flow control message.
6 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for data switching are disclosed. An example method includes receiving a data traffic flow at a data ingress module and buffering the data traffic flow in a virtual output queue included in the data ingress module, where the virtual output queue being associated with a data egress module. The example method also includes communicating the data traffic flow to the data egress module via a fabric egress queue included in a data-switch fabric. The example method further includes monitoring data occupancy in the fabric egress queue and determining, based on the data occupancy, that a change in congestion state in the fabric egress queue has occurred. The example method still further includes, in response to the change in congestion state, communicating a flow control message to the data ingress module and, in response to the flow control message, modifying communication of the data traffic flow.
108 Citations
20 Claims
-
1. An apparatus comprising:
-
a plurality of data ingress modules; a data-switch fabric operationally coupled with the plurality of data ingress modules; and a plurality of data egress modules operationally coupled with the data-switch fabric, wherein; each of the plurality of data ingress modules includes a set of virtual output queues, each of the virtual output queues corresponding with a respective data egress module; and the data-switch fabric includes; a plurality of fabric ingress ports; and a plurality of fabric egress ports each including a set of fabric egress queues, each set of fabric egress queues being respectively associated with one of the data egress modules, each fabric egress queue corresponding with a respective data ingress module; the data-switch fabric being configured to; monitor an amount of data buffered in each of the fabric egress queues; determine a change in a congestion state for one or more of the fabric egress queues; and send a flow control message to a data ingress module corresponding with the change in congestion state; and the data ingress modules being configured to receive and route data traffic to the respective data egress modules via the virtual output queues and the data-switch fabric in accordance with the flow control message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
receiving a data traffic flow at a data ingress module; buffering the data traffic flow in a virtual output queue included in the data ingress module, the virtual output queue being associated with a data egress module; communicating the data traffic flow to the data egress module via a fabric egress queue included in a data-switch fabric; monitoring data occupancy in the fabric egress queue; determining, based on the data occupancy, that a change in congestion state in the fabric egress queue has occurred; in response to the change in congestion state, communicating a flow control message to the data ingress module; and in response to the flow control message, modifying communication of the data traffic flow. - View Dependent Claims (14, 15, 16)
-
-
17. A method comprising:
-
receiving a first data traffic flow at a first data ingress module; buffering the first data traffic flow in a first virtual output queue included in the first data ingress module, the first virtual output queue being associated with a first data egress module; receiving a second data traffic flow at a second data ingress module; buffering the second data traffic flow in a second virtual output queue included in the second data ingress module, the second virtual output queue being associated with the first data egress module; receiving a third data traffic flow at the second data ingress module; buffering the third data traffic flow in a third virtual output queue included in the second data ingress module, the third virtual output queue being associated with a second data egress module; communicating the first data traffic flow to the first data egress module via a first fabric egress queue included in a data-switch fabric; communicating the second data traffic flow to the first data egress module via the first fabric egress queue; communicating the third data traffic flow to the second fabric egress module via a second fabric egress queue included in the data-switch fabric; monitoring data occupancy in the first and second fabric egress queues; determining that data occupancy in the first fabric egress queue has exceeded a first threshold; in response to the data occupancy in the first fabric egress queue exceeding the first threshold, communicating a flow control message to at least one of the first data ingress module and the second data ingress module; and in response to the flow control message, stopping communication of at least one of the first data flow and the second data flow. - View Dependent Claims (18, 19, 20)
-
Specification