[dpdk-dev] Interactive/dynamic QoS scheduler

Dumitrescu, Cristian cristian.dumitrescu at intel.com
Thu Mar 19 17:18:22 CET 2015


Hi Alexandre,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Alexandre Frigon
> Sent: Wednesday, March 18, 2015 5:10 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] Interactive/dynamic QoS scheduler
> 
> Hi,
> 
> I'm currently working with the QoS api. I would like to know if it is possible to
> have interaction at runtime with the parameter applied to pipes, subport and
> queue.

Yes, it is. You can call API functions rte_sched_subport_config() and rte_sched_pipe_config() at run-time to re-configure the subport and pipe rates.

This assumes that the port has been configured during initialization, with all the port subports and pipes fully provisioned at this time (through the port configuration parameters n_subports_per_port and n_pipes_per_subport). Please note you need to call the subport and pipe config functions before you put any packets in their associated queues (typically, these functions are first called at initialization for all the port subports and pipes), but you can call them again later on to modify their previously assigned rates.

All the pipe profiles are set in stone once the port is initialized (through port configuration parameter pipe_profiles), what you can do at run-time is to re-assign a pipe to a different pre-defined profile, which basically changes the rate of the pipe.

> 
> Looking at the Scheduler sample, I understand that all of these parameters
> are predetermined using profiles in the config file.
> What I would like to do is interact with the scheduler to change subport, pipe
> and tc rate or size with arbitrary value at runtime to have control over traffic.
> 

This is just a limitation of the qos_sched application, which currently does not provide any mechanism for the dynamic update of the subport/pipe parameters.

> For example:
> The scheduler sample is running and at any given time I want a  number of
> pipe to drop from 10Gbit to 4.5 Gbit and then put it back to 8Gbit.
> Profiles are not useful in this case because I would have to set a different
> profile for each value from rate 1bit to 10Gbit.
> 
> Is it actually possible to do that and how?
> 

Yes, it is relatively simple to do it. The qos_sched application has a CLI that only implements some stats-related commands, but new commands could be added to update the subport/pipe configuration. At this point, you need to write that (relatively low complexity) code yourself unfortunately. Please consider developing a code patch to add this support and share it with the DPDK community!

> Thanks,
> Alexandre F.



More information about the dev mailing list