Burst switching in a high capacity network
First Claim
1. A method of controlling a space switch having a plurality of input ports and a plurality of output ports, said method comprising:
- receiving a stream of burst transfer requests, each of said burst transfer requests specifying one of said input ports, one of said output parts, and a corresponding burst duration;
grouping said burst transfer requests into burst groups according to their corresponding input ports;
generating schedules for said burst transfer requests in an order in which input ports corresponding to said burst transfer requests become unoccupied;
transmitting said schedules to sources of said burst-transfer requests; and
transmitting said schedules and corresponding burst-transfer requests to a slave controller for said space switch, to set up paths through said space switch.
8 Assignments
0 Petitions
Accused Products
Abstract
At a master controller of a space switch in a node in a data network, a request is received from a source node that requests a connection to be established through the space switch. This request is compared to other such requests so that a schedule may be established for access to the space switch. The schedule is then sent to the source nodes as well as to a slave controller of the space switch. The source nodes send data bursts which are received at the space switch during a short guard time between successive reconfigurations of the space switch. Data bursts are received at the space switch at a precisely determined instant of time that ensures that the space switch has already reconfigured to provide requested paths for the individual bursts. The scheduling is pipelined and performed in a manner that attempts to reduce mismatch intervals of the occupancy states of input and output ports of the space switch. The method thus allows efficient utilization of the data network resources while ensuring virtually no data loss.
-
Citations
27 Claims
-
1. A method of controlling a space switch having a plurality of input ports and a plurality of output ports, said method comprising:
-
receiving a stream of burst transfer requests, each of said burst transfer requests specifying one of said input ports, one of said output parts, and a corresponding burst duration;
grouping said burst transfer requests into burst groups according to their corresponding input ports;
generating schedules for said burst transfer requests in an order in which input ports corresponding to said burst transfer requests become unoccupied;
transmitting said schedules to sources of said burst-transfer requests; and
transmitting said schedules and corresponding burst-transfer requests to a slave controller for said space switch, to set up paths through said space switch. - View Dependent Claims (2, 3, 4)
-
-
5. A space switch master controller for a space switch comprising:
-
a source interface for;
receiving a stream of burst transfer requests from a source node, each of said burst transfer requests including parameters specifying a requested connection and a duration for said requested connection;
transmitting scheduling information for each of said burst transfer requests to said source node;
a burst scheduler for generating, in an order in which input ports corresponding to said burst transfer requests become unoccupied, said scheduling information for each of said burst transfer requests in said stream based on said parameters; and
a slave controller interface for transmitting instructions to a slave controller for said space switch, where said instruction are based on said scheduling information and cause said space switch to establish said requested connection.
-
-
6. A computer readable medium containing computer-executable instructions which, when performed by a processor in a space switch master controller for a space switch, cause the processor to:
-
receive a stream of burst transfer requests from a source node, each of said burst transfer requests including parameters specifying a requested connection and a duration for said requested connection;
generate, in an order in which input ports corresponding to said burst transfer requests become unoccupied, scheduling information for each of said burst transfer requests based on said parameters;
transmit said scheduling information to said source node; and
transmit said scheduling information to a slave controller of said space switch.
-
-
7. A method of scheduling comprising:
-
determining a next-available input port among a plurality of input ports and an input time index at which said next-available input port will become available;
for each burst transfer request of a plurality of burst transfer requests received from said next-available input port, where said each burst transfer request includes a duration of a burst and a destination of said burst;
determining, from said destination of said burst, a corresponding output port among a plurality of output ports;
determining a time gap, where said time gap equals a time index as which said corresponding output port will become available minus said input time index;
selecting a particular burst transfer request from said plurality of burst transfer requests where said particular burst transfer request has a minimum time gap; and
determining a scheduled time index, where said scheduled time index equals said time index at which said corresponding output port is available if said time gap is positive, otherwise said scheduled time index equals said input time index.
-
-
8. A method of generating scheduling information comprising:
-
determining a next-available input port among a plurality of input ports and a time index at which said next-available input port will become available by scanning a time calendar until an input port identifier is detected in a time slot, said calendar having a plurality of time slots, where each time slot corresponds to a predefined time interval;
for each burst transfer request of a plurality of burst transfer requests received in relation to said next-available input port, and where said each burst transfer request includes an identity of a burst and a destination for said burst;
determining from said destination for said burst, a corresponding output port among a plurality of output ports;
determining a time gap where said time gap is a difference between;
said time index at which said next-available input port will become available; and
a time index at which said corresponding output will become available;
selecting one of said plurality of burst transfer requests as a selected burst transfer request, where said selected burst transfer request has a minimum time gap of said plurality of burst transfer request;
selecting a scheduled time index, where said scheduled time index is one of said time index at which said next available input port is available and said time index at which said corresponding output port is available; and
transmitting scheduling information for a burst identified by said selected burst transfer request, said scheduling information based on said scheduling time index. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A burst scheduler comprising a processor operable to:
-
determine a next-available input port among a plurality of input ports and an input time index at which said next-available input port becomes available;
for each burst transfer request of a plurality of burst transfer requests received from said next-available input port, and where said each burst transfer request includes a duration of a burst and a destination of said burst;
determine, from said destination of said burst, a corresponding output port among a plurality of output ports;
determine a time gap, where said time gap equals a time index at which said corresponding output port becomes available minus said input time index;
select a particular one of said plurality of burst transfer requests where said particular one of said plurality of burst transfer requests has a minimum time gap; and
determine a scheduled time index, where said scheduled time index equals said input time index when said time gap is negative and equals said time index at which said corresponding output port is available when said time gap is not negative.
-
-
20. A computer readable medium containing computer-executable instructions which, when performed by a processor in a burst scheduler, cause the processor to:
-
determine a next-available input port among a plurality of input ports and an input time index at which said next-available input port will become available;
for each burst transfer request of a plurality of bust transfer request received in from said next-available input port, and where said each burst transfer request includes a duration of a burst and a destination of said burst;
determine, from said destination of said burst, a corresponding output port among a plurality of output ports;
determine a time gap, where said time gap equals a time index at which said corresponding output port will become available minus said input time index;
select a particular one of said plurality of burst transfer requests where said particular one of said burst transfer requests has a minimum time gap; and
determine a scheduled time index, where said scheduled time index equals said time index at which said corresponding output port is available, if said time gap is positive, and equals said input time index if said time gap is not positive.
-
-
21. A data network comprising:
-
a plurality of edge nodes;
a plurality of core nodes, each core node of said plurality of core nodes including a space switch; and
a master controller for one said space switch in one said core node for;
receiving a stream of burst transfer requests from one of said plurality of edge nodes, each of said burst transfer requests including parameters specifying a requested connection and a duration for said requested connection;
generating, in an order in which input ports corresponding to said burst transfer requests become unoccupied, scheduling information for each of said burst transfer requests based on said parameters;
transmitting said scheduling information to said one of said plurality of edge nodes; and
transmitting said scheduling information to a slave controller of said one said space switch.
-
-
22. A master controller of a space switch, said space switch having a plurality of input ports and a plurality of output ports, said master controller operable to:
-
receive a stream of burst transfer requests, each of said burst transfer requests specifying one of said input ports, one of said output ports, and a corresponding burst duration;
group said burst transfer requests into burst groups, each of said burst groups corresponding to one of said input ports;
generate schedules for said burst transfer requests in an order in which input ports corresponding to said burst transfer requests become unoccupied;
transmit said schedules to sources of said burst-transfer; and
transmit said schedules and corresponding burst-transfer requests to a slave controller of said space switch to set up paths through said space switch.
-
-
23. A burst-switching network comprising:
-
a plurality of core nodes, each of said plurality of core nodes including a bufferless space switch; and
a plurality of edge nodes, each of said plurality of edge nodes having;
a communication link to each of at least one of said plurality of core nodes; and
a data buffer associated with said communications link;
where said each of said plurality of edge nodes is adapted to perform a process for time-locking to each of said at least one of said core nodes; and
wherein said each of said plurality of edge nodes is adapted to;
send a stream of burst-transfer requests to a selected core node of said at least one of said core nodes, where each burst-transfer request of said stream of burst-transfer requests corresponds to a burst having a duration below a specified limit;
receive a stream of burst-transfer schedules from said selected core node; and
transmit bursts corresponding to said burst-transfer requests to said selected core node according to said burst-transfer schedules wherein said burst-transfer schedules are based on a calendar having a predetermined calendar period, where said calendar has been divided into a predetermined number of divisions; and
wherein each of said core nodes includes a master time counter having a predetermined counter period and each of said edges nodes includes a slave time counter having said predetermined counter period, and said process of time locking uses said slave time counter and said master timer counter. - View Dependent Claims (24, 25, 26, 27)
-
Specification