DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Dynamic port/pipe QoS configuration
@ 2014-10-13 22:54 satish
  2014-10-17 21:59 ` satish
  0 siblings, 1 reply; 5+ messages in thread
From: satish @ 2014-10-13 22:54 UTC (permalink / raw)
  To: dev

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Dynamic port/pipe QoS configuration
  2014-10-13 22:54 [dpdk-dev] Dynamic port/pipe QoS configuration satish
@ 2014-10-17 21:59 ` satish
  2014-10-18  9:16   ` Stephen Hemminger
       [not found]   ` <251C79C4-74C5-4EF9-A987-3B4DB94A31D5@intel.com>
  0 siblings, 2 replies; 5+ messages in thread
From: satish @ 2014-10-17 21:59 UTC (permalink / raw)
  To: dev

Hi,
Can someone please respond to below?
Thank you.

On Mon, Oct 13, 2014 at 3:54 PM, satish <nsatishbabu@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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Dynamic port/pipe QoS configuration
  2014-10-17 21:59 ` satish
@ 2014-10-18  9:16   ` Stephen Hemminger
       [not found]   ` <251C79C4-74C5-4EF9-A987-3B4DB94A31D5@intel.com>
  1 sibling, 0 replies; 5+ messages in thread
From: Stephen Hemminger @ 2014-10-18  9:16 UTC (permalink / raw)
  To: satish; +Cc: dev

On Fri, 17 Oct 2014 14:59:35 -0700
satish <nsatishbabu@gmail.com> wrote:

> Hi,
> Can someone please respond to below?
> Thank you.
> 
> On Mon, Oct 13, 2014 at 3:54 PM, satish <nsatishbabu@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 ()?

[a] no
[b] no
[c] no

Read the code.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Dynamic port/pipe QoS configuration
       [not found]   ` <251C79C4-74C5-4EF9-A987-3B4DB94A31D5@intel.com>
@ 2014-10-20 19:21     ` Dumitrescu, Cristian
  2014-10-20 21:05       ` satish
  0 siblings, 1 reply; 5+ messages in thread
From: Dumitrescu, Cristian @ 2014-10-20 19:21 UTC (permalink / raw)
  To: dev

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@gmail.com<mailto:nsatishbabu@gmail.com>>
Date: October 17, 2014 at 2:59:35 PM PDT
To: <dev@dpdk.org<mailto:dev@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@gmail.com<mailto:nsatishbabu@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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [dpdk-dev] Dynamic port/pipe QoS configuration
  2014-10-20 19:21     ` Dumitrescu, Cristian
@ 2014-10-20 21:05       ` satish
  0 siblings, 0 replies; 5+ messages in thread
From: satish @ 2014-10-20 21:05 UTC (permalink / raw)
  To: Dumitrescu, Cristian; +Cc: dev

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


On Mon, Oct 20, 2014 at 12:21 PM, Dumitrescu, Cristian <
cristian.dumitrescu@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@gmail.com<mailto:nsatishbabu@gmail.com>>
> Date: October 17, 2014 at 2:59:35 PM PDT
> To: <dev@dpdk.org<mailto:dev@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@gmail.com<mailto:
> nsatishbabu@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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-10-20 20:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-13 22:54 [dpdk-dev] Dynamic port/pipe QoS configuration satish
2014-10-17 21:59 ` satish
2014-10-18  9:16   ` Stephen Hemminger
     [not found]   ` <251C79C4-74C5-4EF9-A987-3B4DB94A31D5@intel.com>
2014-10-20 19:21     ` Dumitrescu, Cristian
2014-10-20 21:05       ` satish

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git