[dpdk-dev] Dynamic port/pipe QoS configuration

satish nsatishbabu at gmail.com
Mon Oct 20 23:05:30 CEST 2014


Thanks a lot Cristian!!
It is really helpful information.


On Mon, Oct 20, 2014 at 12:21 PM, Dumitrescu, Cristian <
cristian.dumitrescu at intel.com> wrote:

> Hi Satish,
>
> Yes, you can change the pipe configuration during run-time, but in a
> slightly different way. The way to do it is by defining multiple pipe
> profiles at the port level initialization time and reassigning the pipe to
> a different level at run-time.
>
> The pipe profiles are statically defined per port at initialization time
> (their number is configurable through rte_sched_port_params::
> n_pipe_profiles parameter), so you need to know in advance the set of
> profiles you want to use at run-time. You can assign pipe X to profile A
> initially, then re-assign it to profile B later on (by using function
> rte_sched_pipe_config()).
>
> Regards,
> Cristian
>
> From: satish <nsatishbabu at gmail.com<mailto:nsatishbabu at gmail.com>>
> Date: October 17, 2014 at 2:59:35 PM PDT
> To: <dev at dpdk.org<mailto:dev at dpdk.org>>
> Subject: Re: [dpdk-dev] Dynamic port/pipe QoS configuration
> Hi,
> Can someone please respond to below?
> Thank you.
>
> On Mon, Oct 13, 2014 at 3:54 PM, satish <nsatishbabu at gmail.com<mailto:
> nsatishbabu at gmail.com>> wrote:
>
>
> 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
>
>
>
>
> --
> Regards,
> Satish Babu
> --------------------------------------------------------------
> Intel Shannon Limited
> Registered in Ireland
> Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
> Registered Number: 308263
> Business address: Dromore House, East Park, Shannon, Co. Clare
>
> This e-mail and any attachments may contain confidential material for the
> sole use of the intended recipient(s). Any review or distribution by others
> is strictly prohibited. If you are not the intended recipient, please
> contact the sender and delete all copies.
>
>


-- 
Regards,
Satish Babu


More information about the dev mailing list