Quality of Service (QoS) is one of the most important parameters to be considered in computer networking and communication. The traditional network incorporates various quality QoS frameworks to enhance the quality of services. Due to the distributed nature of the traditional networks, providing quality of service, based on service level agreement (SLA) is a complex task for the network designers and administrators. With the advent of software defined networks (SDN), the task of ensuring QoS is expected to become feasible. Since SDN has logically centralized architecture, it may be able to provide QoS, which was otherwise extremely difficult in traditional network architectures. Emergence and popularity of machine learning (ML) and deep learning (DL) have opened up even more possibilities in the line of QoS assurance. In this article, the focus has been mainly on machine learning and deep learning based QoS aware protocols that have been developed so far for SDN. The functional areas of SDN namely traffic classification, QoS aware routing, queuing, and scheduling are considered in this survey. The article presents a systematic and comprehensive study on different ML and DL based approaches designed to improve overall QoS in SDN. Different research issues & challenges, and future research directions in the area of QoS in SDN are outlined.