* [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
[parent not found: <251C79C4-74C5-4EF9-A987-3B4DB94A31D5@intel.com>]
* 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).