A method and system are provided for opportunistic request-grant
switching. If an ingress has no granted payload segment to send, and a
flow exists which requires a request to be sent, an opportunistic payload
segment is sent including a request and a payload segment related to the
request. If an opportunistic payload segment is sent and the payload is
dropped, the request is kept and is then treated as a regular
request-grant request. The ingress port consequently only has to transmit
the payload a maximum of twice. Ingress ports can thus opportunistically
exploit the low latency available when egress ports are not contended
for, and yet fall back on the strong fairness and quality of service
(QoS) assurances of request-grant semantics. Buffering in the switch core
can optionally be implemented to extend performance gains, but fairness
and QoS are not dependent on this buffering.