net_sched: Add flow control support to prio qdisc
Add enable_flow flag to the prio qdisc. Packet flow is enabled by default, but can be disabled from userspace (e.g. IPROUTE2 tc tool). This allows for suspending packet dequeue on a per-qdisc basis, which is needed to support Quality of Service (QOS). Export a function that will look up desired qdisc and call it's registered change function to enable/disable flow. This API also returns the size of the qdisc in order to be able to collect data on the size of the qdisc before doing flow control operations. This is required to effectively diagnose the state of the queues when debugging flow control. The PRIO qdisc supports flow control, such that packet dequeue can be disabled based on boolean flag 'enable_flow'. When flow is re-enabled, the latency for new packets arriving at network driver is high. To reduce the delay in scheduling packets, the qdisc will now invoke __netif_schedule() to expedite dequeue. This significantly reduces the latency of packets arriving at network driver. Change-Id: I0e9096e4241d459540028558fdec18ece460d517 Signed-off-by:Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> Signed-off-by:
Sharath Chandra Vurukala <sharathv@codeaurora.org>
Loading
Please register or sign in to comment