  Software Defined Networks has seen tremendous growth and deployment in
different types of networks. Compared to traditional networks it decouples the
control logic from network layer devices, and centralizes it for efficient
traffic forwarding and flow management across the domain. This multi-layered
architecture has data forwarding devices at the bottom in data plane, which are
programmed by controllers in the control plane. The high level application or
management plane interacts with control layer to program the whole network and
enforce different policies. The interaction among these layers is done through
interfaces which work as communication/programming protocols. In this survey,
we present a comprehensive study of such interfaces available for southbound,
northbound, and east/westbound communication. We have classified each type into
different categories based on their properties and capabilities. Virtualization
of networks devices is a common practice in Software Defined Networks. This
paper also analyzes interface solution which work with different virtualization
schemes. In addition, the paper highlights a number of short term and long term
research challenges and open issues related to SDN interfaces.
