The Internet of Things (IoT) is aimed to provide efficient and seamless connectivity to a large number of low-power and low-cost embedded devices, consequently, the routing protocols play a fundamental role in achieving these goals. The IETF has recently standardized the IPv6 Routing Protocol for Low Power and Lossy Networks (RPL) for LLNs (i.e., Low-power and Lossy Networks) and is well-accepted among the Internet community. However, RPL was proposed for static IoT devices and suffers from many issues when IoT devices are mobile. In this paper, we first present various issues that are faced by the RPL when IoT devices are mobile. We then carry out a detailed survey of various solutions that are proposed in the current literature to mitigate the issues faced by RPL. We classify various solutions into five categories i.e., ‘Trickle-timer based solutions’, ‘ETX based solutions’, ‘RSSI based solutions’, ‘Position-based solutions’, and ‘Miscellaneous solutions’. For each category of these solutions, we illustrate their working principles, issues addressed and make a thorough assessment of their strengths and weaknesses. In addition, we found several flaws in the performance analysis done by the authors of each of the solutions, e.g., nodes mobility, time intervals, etc., and suggest further investigations for the performance evaluations of these solutions in order to assess their applicability in real-world environments. Moreover, we provide future research directions for RPL supporting various real-time applications, mobility support, energy-aware, and privacy-aware routing.