The systematic scaling approach is used in the literature as the only option to meet QoS requirements in response to the traffic load increase in IoT platforms. Such a solution reduces the load on the congested nodes and leads to an increase in the provisioning costs that, when measured at the scale of billions of devices, may hinder acceptability. Our objective is to enhance the existing approaches using and extending the emerging concept of Virtualized Network Functions (VNF), promoting End-to-End IoT traffic control. We start from the observation that, within Cloud-enabled platforms, the allocated resources are not fully used, making it possible to deploy traffic control network functions (NFs). Instead of systematically scaling a congested node, we dynamically deploy, on under-loaded nodes, additional NFs that exploit the available computing resources to differentiate the traffic processing level and to apply a QoS-oriented policy. The considered NFs extend the notion of VNF defined within Network Function Virtualization (NFV), to take advantage of component-based software design. To enable a possible use of the implemented functions, we formulate a multi-objective optimization problem for the efficient planning of adequate NFs and scaling actions, according to the considered multi-constrained context. The planner, called QoS4NIP (QoS for NFVenabled IoT Platforms), is based on a Genetic Algorithm (GA). The GA metaheuristic relies on biologically inspired operators such as mutation, crossover, and selection. QoS4NIP uses the GA to generate solutions to the identified multi-objective optimization problem by making a series of improvements in an iterative process. The experiments conducted on a realistic case study show that QoS4NIP outperforms autoscalingbased approaches (65% financial cost saved).