Claims
- 1. A method of performing arbitration to coordinate the sending of a plurality of packets or frames received at one or more input ports for transmission by one or more output ports, comprising:
receiving one or more request messages from one or more of the input ports, each of the request messages indicating a request to send one or more packets or frames via one of the output ports; determining whether the one of the output ports is capable of receiving the one or more packets or frames; and generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames, the grant message indicating that the one of the output ports is capable of receiving the one or more packets or frames.
- 2. The method as recited in claim 1, each of the request messages having a priority associated therewith.
- 3. The method as recited in claim 1, wherein the grant message has a priority associated therewith.
- 4. The method as recited in claim 1, wherein the method is performed in a Fibre Channel network.
- 5. The method as recited in claim 1, wherein determining whether the one of the output ports is capable of receiving the one or more packets or frames comprises:
receiving a credit from the output port indicating that one or more buffers are available for receiving the one or more packets or frames.
- 6. The method as recited in claim 5, wherein the credit is regenerated by the output port.
- 7. The method as recited in claim 5, wherein the credit is regenerated by the output port in response to an error condition.
- 8. The method as recited in claim 5, wherein the credit has a priority associated therewith.
- 9. The method as recited in claim 1, wherein determining whether the one of the output ports is capable of receiving the one or more packets or frames comprises:
determining whether a credit is available for the output port indicating that one or more buffers are available for receiving the one or more packets or frames.
- 10. The method as recited in claim 1, wherein receiving one or more request messages comprises:
receiving the request messages from one or more line cards on behalf of the one or more of the input ports.
- 11. The method as recited in claim 10, further comprising:
storing the grant message in a grant queue associated with one of the line cards, the grant message identifying the output port identified in one of the request messages.
- 12. The method as recited in claim 10, wherein receiving the request messages from one or more line cards comprises:
receiving one or more sets of request messages from the one or more line cards.
- 13. The method as recited in claim 12, wherein each of the sets of request messages indicates an order in which the associated request messages were received from the associated line card.
- 14. The method as recited in claim 12, further comprising:
storing each of the request messages in the sets of request messages in one of a plurality of queues, each of the plurality of queues being associated with one of the plurality of output ports.
- 15. The method as recited in claim 12, wherein storing each of the request messages comprises:
storing a line card identifier associated with each request message in the sets of request messages in one of a plurality of queues, each of the plurality of queues being associated with one of the plurality of output ports, the line card identifier identifying the one of the line cards from which the request message was received.
- 16. The method as recited in claim 1, wherein each of the request messages identifies one of the output ports.
- 17. The method as recited in claim 1, wherein generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames comprises:
sending the grant message when an available message is received, the available message indicating an available buffer capable of receiving one or more packets or frames addressed to the one of the plurality of output ports identified in the request message.
- 18. The method as recited in claim 1, wherein generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames comprises:
sending the grant message when an available message is received, the available message indicating the ability of one of the plurality of output ports to accept one or more packets or frames for transmission.
- 19. The method as recited in claim 10, wherein the line cards are coupled to the arbitrator through a buffered crossbar.
- 20. An arbitrator adapted to coordinate the sending of a plurality of packets or frames received at one or more input ports for transmission by one or more output ports, comprising:
means for receiving one or more request messages from one or more of the input ports, each of the request messages indicating a request to send one or more packets or frames via one of the output ports; means for determining whether the one of the output ports is capable of receiving the one or more packets or frames; and means for generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames, the grant message indicating that the one of the output ports is capable of receiving the one or more packets or frames.
- 21. An arbitrator adapted to coordinate the sending of a plurality of packets or frames received at one or more input ports for transmission by one or more output ports, comprising:
a processor; and a memory, at least one of the processor and the memory being adapted for: receiving one or more request messages from one or more of the input ports, each of the request messages indicating a request to send one or more packets or frames via one of the output ports; determining whether the one of the output ports is capable of receiving the one or more packets or frames; and generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames, the grant message indicating that the one of the output ports is capable of receiving the one or more packets or frames.
- 22. A computer-readable medium storing thereon computer-readable instructions for performing arbitration to coordinate the sending of a plurality of packets or frames received at one or more input ports for transmission by one or more output ports, comprising:
instructions for receiving one or more request messages from one or more of the input ports, each of the request messages indicating a request to send one or more packets or frames via one of the output ports; instructions for determining whether the one of the output ports is capable of receiving the one or more packets or frames; and instructions for generating or sending a grant message when it is determined that the one of the output ports is capable of receiving the one or more packets or frames, the grant message indicating that the one of the output ports is capable of receiving the one or more packets or frames.
RELATED APPLICATIONS
[0001] This application is related to co-pending application ______, Attorney Docket No. ANDIP010, entitled “Methods and Apparatus for Processing Superframes,” by Kloth et al, filed on the same day as the present application.