  Recent research on Software-Defined Networking (SDN) strongly promotes the
adoption of distributed controller architectures. To achieve high network
performance, designing a scheduling function (SF) to properly dispatch requests
from each switch to suitable controllers becomes critical. However, existing
literature tends to design the SF targeted at specific network settings. In
this paper, a reinforcement-learning-based (RL) approach is proposed with the
aim to automatically learn a general, effective, and efficient SF. In
particular, a new dispatching system is introduced in which the SF is
represented as a neural network that determines the priority of each
controller. Based on the priorities, a controller is selected using our
proposed probability selection scheme to balance the trade-off between
exploration and exploitation during learning. In order to train a general SF,
we first formulate the scheduling function design problem as an RL problem.
Then a new training approach is developed based on a state-of-the-art deep RL
algorithm. Our simulation results show that our RL approach can rapidly design
(or learn) SFs with optimal performance. Apart from that, the trained SF can
generalize well and outperforms commonly used scheduling heuristics under
various network settings.
