[dpdk-dev] Dynamic port/pipe QoS configuration

satish nsatishbabu at gmail.com
Tue Oct 14 00:54:41 CEST 2014


Hi,
We are trying to provide QoS support for one of our clients using rte_sched.
In our implementation we are treating each pipe as a customer.
So, we can have maximum of 4096 customers per sub-port.
Customers(pipe) can be added, deleted or modified dynamically. Each
customer can have different profiles.

Currently we are using DPDK-v1.6.
Can I modify pipe profile during run time using rte_sched_pipe_config ()?

Our plan is to have initial configs as below (similar to examples in DPDK)
[1] Specify port params at the initialization of port as below
static struct rte_sched_port_params port_param = {
:
:
.n_subports_per_port = 1,
.n_pipes_per_subport = 4096,
.qsize = {64, 64, 64, 64},
.pipe_profiles = pipe_profile,
.n_pipe_profiles = 1,
}

[2]
static struct rte_sched_subport_params subport_param[] = {
{
.tb_rate = Link speed (1G/10G..) divided by 8 (bits),
.tb_size = 1000000,

.tc_rate = {Same as tb_rate, Same as tb_rate, Same as tb_rate, Same as
tb_rate},
.tc_period = 10,
},
};

[3]
static struct rte_sched_pipe_params pipe_profile[] = {
{ /* Profile #0 */
.tb_rate = Link speed (1G/10G..) divided by 8 (bits)/4096 (maximum number
of pipes),
.tb_size = 1000000,

.tc_rate = {pipe's tb_rate, pipe's tb_rate, pipe's tb_rate, pipe's tb_rate},
.tc_period = 40,

.wrr_weights = {16, 4, 2, 1,  16, 4, 2, 1,  16, 4, 2, 1,  16, 4, 2, 1},
},
};

Our plan here is to initialize the pipe with default profile and modify
each pipe based on user configurations.
My questions are
[a] Can I modify pipe profile during run time using rte_sched_pipe_config
()? (question repeated)
If I can modify at pipe level,
[b] Can we have different profiles for pipes, With one default profile at
initialization?
[c] Can we modify port level params without deleting the port using
rte_sched_port_config ()?

Please provide your valuable comments.
Thanks in advance.

-- 
Regards,
Satish Babu


More information about the dev mailing list