Patent ID: 9590924
Date: 2017-03-07
CPC Classifications: H04L

Claim:
1. A machine-implemented method for arbitration in a network device having a plurality of base-ports each with a plurality of sub-ports for sending and receiving packets, each sub-port configured to operate as an independent port for sending and receiving packets complying with a plurality of protocols, the method comprising: determining by a stage one arbiter of a base-port if there is any pending request from a plurality of sub-ports of the base-port; wherein each of the plurality of sub-ports of the base-port sends a request to the stage one arbiter for transmitting a received packet to its destination and each request is uniquely identified, identifies a sub-port that sends the request to the stage one arbiter, identifies a transmit queue from among a plurality of transmit queues for transmitting the received packet to its destination, includes a code identifying a frame type and a priority code indicating request priority; receiving quality of service (QOS) information at the stage one arbiter for each of the plurality of transmit queues, credit information for each of the plurality of transmit queues indicating available credit for each of the plurality of transmit queues to transmit packets; age information for each request at the stage one arbiter indicating how long a request has been pending; and information regarding whether a sub-port is available for transmitting the received packet; blocking any other request from a same receive queue of a sub-port for transmission for a same sub-port, and a same transmit queue, when there are other pending requests; selecting requests with highest priority, oldest age based on age information with available credit and port availability; sending the selected requests to a stage two arbiter that receives selected requests from the plurality of base-ports; receiving information regarding multicast groups for multicast received packets at the stage two arbiter in addition to the information that is received at the stage one arbiter; selecting one of the requests that are received from the stage one arbiter by the stage two arbiter based on highest priority and then age of the requests; and processing the selected request for transmitting a packet associated with the selected request.