Method and apparatus for scheduling message processing
First Claim
1. An apparatus for scheduling one or more messages comprising:
- a first queue;
a second queue;
a scheduler communicably coupled to the first queue and the second queue, the scheduler having at least a first and second operating mode;
the first operating mode comprising receiving the one or more messages, storing each message in the first queue based on a first-in-first-out order, and scheduling each queued message from the first queue based on the first-in-first-out order; and
the second operating mode comprising receiving the one or more messages, storing each message in the second queue based on one or more message attributes, and scheduling each queued message from the second queue based on one or more operating criteria.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus for scheduling message processing. The present invention provides a scheduling mechanism, or scheduler (602), that receives messages (608) and stores the messages (610 or 614) in a first queue (604) or a second queue (606) based, in part, on various criteria associated with the messages. The criteria include message attributes, such as message priority, virtual private network (“VPN”) classification and destination software function. The first queue (604) can be a first-in-first-out queue, and the second queue (606) can be a multi-dimensional queue. The scheduler (602) then schedules the queued messages (612 or 616) for processing based, in part, on various operating criteria (618), such as historical operating data, current operating data and anti-starvation criteria. In addition, the scheduler (602) can be programmed to function in a variety of operating modes.
69 Citations
57 Claims
-
1. An apparatus for scheduling one or more messages comprising:
-
a first queue;
a second queue;
a scheduler communicably coupled to the first queue and the second queue, the scheduler having at least a first and second operating mode;
the first operating mode comprising receiving the one or more messages, storing each message in the first queue based on a first-in-first-out order, and scheduling each queued message from the first queue based on the first-in-first-out order; and
the second operating mode comprising receiving the one or more messages, storing each message in the second queue based on one or more message attributes, and scheduling each queued message from the second queue based on one or more operating criteria. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for scheduling one or more messages comprising the steps of:
-
receiving the one or more messages;
selecting a first queue for input and output during a first operating mode;
selecting a second queue for input and output during a second operating mode;
storing each message in the first queue based on a first-in-first-out order whenever the first queue is selected for input or storing each message in the second queue based on one or more message attributes whenever the second queue is selected for input; and
scheduling each queued message from the first queue based on the first-in-first-out order whenever the first queue is selected for output or scheduling each queued message from the second queue based one or more operating criteria whenever the second queue is selected for output. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
-
-
39. A computer program embodied on a computer readable medium for scheduling one or more messages, the computer program comprising:
-
a code segment for receiving the one or more messages;
a code segment for selecting a first queue for input and output during a first operating mode;
a code segment for selecting a second queue for input and output during a second operating mode;
a code segment for storing each message in the first queue based on a first-in-first-out order whenever the first queue is selected for input or storing each message in the second queue based on one or more message attributes whenever the second queue is selected for input; and
a code segment for scheduling each queued message from the first queue based on the first-in-first-out order whenever the first queue is selected for output or scheduling each queued message from the second queue based one or more operating criteria whenever the second queue is selected for output.
-
-
57. A communications switch comprising:
-
one or more ingress cards;
one or more signal processing cards, each signal processing card containing an array of digital signal processors;
one or more control cards containing one or more processors;
one or more egress cards;
a switch fabric communicably coupling the ingress cards, the signal processing cards, the control cards and the egress cards;
a TDM bus communicably coupling the ingress cards, the signal processing cards, the control cards and the egress cards;
a scheduler communicably coupled to each processor, the scheduler having at least a first and second operating mode;
a first queue communicably coupled to the scheduler;
a second queue communicably coupled to the scheduler;
the first operating mode comprising receiving the one or more messages, storing each message in the first queue based on a first-in-first-out order, and scheduling each queued message from the first queue based on the first-in-first-out order; and
the second operating mode comprising receiving the one or more messages, storing each message in the second queue based one or more message attributes, and scheduling each queued message from the second queue based one or more operating criteria.
-
Specification