Using Traffic Control to Support of Quality of Service Milestone No.1 Li Zhang
net/sched/sch_ingress.c Traffic control in incoming direction Traffic control in the Linux kernel Local delivery net/ipv4/ip_input.c net/core/dev.c driver.c Network adaptor net/core/dev.c dev_queue_xmit net/sched/sch_*.c net/sched/cls_*.c Traffic control in outgoing direction driver.c dev->hard_start_xmit Network adaptor Forwarding Locally created data
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, US/Red_Hat_Enterprise_Linux/5.2/pdf/Deplo yment_Guide/Deployment_Guide.pdf