A Distributed Scheduling Algorithm for an Optical Switching Fabric