60 likes | 236 Views
Using Traffic Control to Support of Quality of Service. Milestone No.1 Li Zhang. Traffic control in the Linux kernel. Local delivery. Locally created data. net/ipv4/ip_input.c. Forwarding. net/core/dev.c dev_queue_xmit. net/sched/sch_ingress.c Traffic control in incoming direction.
E N D
Using Traffic Control to Support of Quality of Service Milestone No.1 Li Zhang
Traffic control in the Linux kernel Local delivery Locally created data net/ipv4/ip_input.c Forwarding net/core/dev.c dev_queue_xmit net/sched/sch_ingress.c Traffic control in incoming direction net/sched/sch_*.c net/sched/cls_*.c Traffic control in outgoing direction net/core/dev.c driver.c driver.c dev->hard_start_xmit Network adaptor Network adaptor
The traffic control tree in the transmission process in Linux Kernel
Codes to be modified • All elements within the traffic-control tree can be addressed by 32-bit identifiers called handles, which are defined in /include/net/pkt_sched.h and net/sched/sch_api.c • The class packets that passed by the enqueue() function in a queuing discipline belong to is decided by filters, which are defined in include/net/pkt_cls.h • To double the queue size and store all packets which can not enter the queue in a buffer without dropping them • Modify the scheduling process in include/net/pkt_sched.h, keep the scheduling algorithm unchanged, but scheduling the queue and the buffer together
Results estimation • With bigger queue and buffer size, the workstation can ensure all packets be sent, but it will cause longer delay on average • The throughput will keep unchanged in busy traffic scenarios
Reference • K. Wehrle, F. Pahlke, H. Ritter, D. Muller and M. Bechler, ‘The Linux Networking architecture’, Pearson Education Inc, 2005 • http://www.cndev.org/forum/msg.aspx?pid=22736 • https://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5.2/pdf/Deployment_Guide/Deployment_Guide.pdf