* [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures @ 2019-07-15 9:56 Marcin Zapolski 2019-07-15 9:56 ` [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices Marcin Zapolski ` (3 more replies) 0 siblings, 4 replies; 13+ messages in thread From: Marcin Zapolski @ 2019-07-15 9:56 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski Some example applications have references to rte_eth_dev structure, which is not a part of public API. These patches replace them with calls to API functions. Marcin Zapolski (3): examples/l3fwd*: remove references to rte_eth_devices examples/ip_fragmentation: remove usage of internal struct examples/ipsec-secgw: remove usage of internal structure examples/ip_fragmentation/main.c | 2 +- examples/ipsec-secgw/ipsec.c | 9 ++++----- examples/l3fwd-acl/main.c | 6 +----- examples/l3fwd-power/main.c | 6 +----- examples/l3fwd-vf/main.c | 7 +------ examples/l3fwd/main.c | 6 +----- examples/performance-thread/l3fwd-thread/main.c | 6 +----- 7 files changed, 10 insertions(+), 32 deletions(-) -- 2.17.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 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] 13+ messages in thread
* [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices 2019-07-15 9:56 [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures Marcin Zapolski @ 2019-07-15 9:56 ` Marcin Zapolski 2019-07-15 15:03 ` Bruce Richardson 2019-07-15 9:56 ` [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct Marcin Zapolski ` (2 subsequent siblings) 3 siblings, 1 reply; 13+ messages in thread From: Marcin Zapolski @ 2019-07-15 9:56 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski Modify l3fwd and related example apps to use locally defined port_conf instead of global rte_eth_devices which is not a part of public API. Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> --- examples/l3fwd-acl/main.c | 6 +----- examples/l3fwd-power/main.c | 6 +----- examples/l3fwd-vf/main.c | 7 +------ examples/l3fwd/main.c | 6 +----- examples/performance-thread/l3fwd-thread/main.c | 6 +----- 5 files changed, 5 insertions(+), 26 deletions(-) diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 09b7c3850..0c44df767 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -2022,14 +2022,10 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for (queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t) @@ -2042,7 +2038,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 99c1208ce..7ac4cbe87 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -2378,13 +2378,9 @@ main(int argc, char **argv) /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { struct rte_eth_rxconf rxq_conf; - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = \ @@ -2397,7 +2393,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c index 1432f8969..572e74cf5 100644 --- a/examples/l3fwd-vf/main.c +++ b/examples/l3fwd-vf/main.c @@ -1022,13 +1022,8 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; - portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t)rte_lcore_to_socket_id(lcore_id); @@ -1040,7 +1035,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 570693b32..3800bad19 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -971,14 +971,10 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = @@ -991,7 +987,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; if (!per_port_pool) ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index dd468958a..0121c71cb 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -3645,14 +3645,10 @@ main(int argc, char **argv) /* init RX queues */ for (queue = 0; queue < rx_thread[i].n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = rx_thread[i].rx_queue_list[queue].port_id; queueid = rx_thread[i].rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t)rte_lcore_to_socket_id(lcore_id); @@ -3664,7 +3660,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, -- 2.17.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 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] 13+ messages in thread
* Re: [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices 2019-07-15 9:56 ` [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices Marcin Zapolski @ 2019-07-15 15:03 ` Bruce Richardson 0 siblings, 0 replies; 13+ messages in thread From: Bruce Richardson @ 2019-07-15 15:03 UTC (permalink / raw) To: Marcin Zapolski; +Cc: dev On Mon, Jul 15, 2019 at 11:56:21AM +0200, Marcin Zapolski wrote: > Modify l3fwd and related example apps to use locally defined port_conf > instead of global rte_eth_devices which is not a part of public API. > > Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> As with the other patches, please treat this as a bug-fix and include a fixes line for each app fixed. Apps should not be using internal DPDK data structures directly. /Bruce ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct 2019-07-15 9:56 [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures Marcin Zapolski 2019-07-15 9:56 ` [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices Marcin Zapolski @ 2019-07-15 9:56 ` Marcin Zapolski 2019-07-15 14:39 ` Bruce Richardson 2019-07-15 9:56 ` [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski 3 siblings, 1 reply; 13+ messages in thread From: Marcin Zapolski @ 2019-07-15 9:56 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski Modify ip_fragmentation example app to use rte_eth_info_get instead of global rte_eth_devices structure. Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> --- examples/ip_fragmentation/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 85c0100f7..a2a14e827 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -989,7 +989,7 @@ main(int argc, char **argv) if (rte_lcore_is_enabled(lcore_id) == 0) continue; - if (queueid >= rte_eth_devices[portid].data->nb_tx_queues) + if (queueid >= dev_info.nb_tx_queues) break; socket = (int) rte_lcore_to_socket_id(lcore_id); -- 2.17.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 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] 13+ messages in thread
* Re: [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct 2019-07-15 9:56 ` [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct Marcin Zapolski @ 2019-07-15 14:39 ` Bruce Richardson 2019-07-15 14:45 ` Bruce Richardson 0 siblings, 1 reply; 13+ messages in thread From: Bruce Richardson @ 2019-07-15 14:39 UTC (permalink / raw) To: Marcin Zapolski; +Cc: dev On Mon, Jul 15, 2019 at 11:56:22AM +0200, Marcin Zapolski wrote: > Modify ip_fragmentation example app to use rte_eth_info_get instead > of global rte_eth_devices structure. > > Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> > --- > examples/ip_fragmentation/main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c > index 85c0100f7..a2a14e827 100644 > --- a/examples/ip_fragmentation/main.c > +++ b/examples/ip_fragmentation/main.c > @@ -989,7 +989,7 @@ main(int argc, char **argv) > if (rte_lcore_is_enabled(lcore_id) == 0) > continue; > > - if (queueid >= rte_eth_devices[portid].data->nb_tx_queues) > + if (queueid >= dev_info.nb_tx_queues) > break; > > socket = (int) rte_lcore_to_socket_id(lcore_id); > -- LGTM. Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct 2019-07-15 14:39 ` Bruce Richardson @ 2019-07-15 14:45 ` Bruce Richardson 0 siblings, 0 replies; 13+ messages in thread From: Bruce Richardson @ 2019-07-15 14:45 UTC (permalink / raw) To: Marcin Zapolski; +Cc: dev On Mon, Jul 15, 2019 at 03:39:56PM +0100, Bruce Richardson wrote: > On Mon, Jul 15, 2019 at 11:56:22AM +0200, Marcin Zapolski wrote: > > Modify ip_fragmentation example app to use rte_eth_info_get instead > > of global rte_eth_devices structure. > > > > Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> > > --- > > examples/ip_fragmentation/main.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c > > index 85c0100f7..a2a14e827 100644 > > --- a/examples/ip_fragmentation/main.c > > +++ b/examples/ip_fragmentation/main.c > > @@ -989,7 +989,7 @@ main(int argc, char **argv) > > if (rte_lcore_is_enabled(lcore_id) == 0) > > continue; > > > > - if (queueid >= rte_eth_devices[portid].data->nb_tx_queues) > > + if (queueid >= dev_info.nb_tx_queues) > > break; > > > > socket = (int) rte_lcore_to_socket_id(lcore_id); > > -- > > LGTM. > Acked-by: Bruce Richardson <bruce.richardson@intel.com> Forgot one minor comment. Suggest reword title to be "fix use of internal struct" and add fixes line below to commit body. Fixes: 9758b956dcf4 ("examples/ip_fragmentation: fix Tx queues init") ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure 2019-07-15 9:56 [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures Marcin Zapolski 2019-07-15 9:56 ` [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices Marcin Zapolski 2019-07-15 9:56 ` [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct Marcin Zapolski @ 2019-07-15 9:56 ` Marcin Zapolski 2019-07-15 14:51 ` Bruce Richardson 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski 3 siblings, 1 reply; 13+ messages in thread From: Marcin Zapolski @ 2019-07-15 9:56 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski Modify ipsec-secgw example app to use rte_eth_dev_info_get instead of rte_eth_dev. Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> --- examples/ipsec-secgw/ipsec.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c index 7b8533077..7d3f5f736 100644 --- a/examples/ipsec-secgw/ipsec.c +++ b/examples/ipsec-secgw/ipsec.c @@ -186,23 +186,22 @@ create_session(struct ipsec_ctx *ipsec_ctx, struct ipsec_sa *sa) .rss_key = rss_key, .rss_key_len = 40, }; - struct rte_eth_dev *eth_dev; + struct rte_eth_dev_info dev_info; uint16_t queue[RTE_MAX_QUEUES_PER_PORT]; struct rte_flow_action_rss action_rss; unsigned int i; unsigned int j; + rte_eth_dev_info_get(sa->portid, &dev_info); sa->action[2].type = RTE_FLOW_ACTION_TYPE_END; /* Try RSS. */ sa->action[1].type = RTE_FLOW_ACTION_TYPE_RSS; sa->action[1].conf = &action_rss; - eth_dev = ctx->device; rte_eth_dev_rss_hash_conf_get(sa->portid, &rss_conf); for (i = 0, j = 0; - i < eth_dev->data->nb_rx_queues; ++i) - if (eth_dev->data->rx_queues[i]) - queue[j++] = i; + i < dev_info.nb_rx_queues; ++i) + queue[j++] = i; action_rss = (struct rte_flow_action_rss){ .types = rss_conf.rss_hf, .key_len = rss_conf.rss_key_len, -- 2.17.1 -------------------------------------------------------------- Intel Research and Development Ireland Limited Registered in Ireland Registered Office: Collinstown Industrial Park, Leixlip, County Kildare Registered Number: 308263 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] 13+ messages in thread
* Re: [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure 2019-07-15 9:56 ` [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure Marcin Zapolski @ 2019-07-15 14:51 ` Bruce Richardson 0 siblings, 0 replies; 13+ messages in thread From: Bruce Richardson @ 2019-07-15 14:51 UTC (permalink / raw) To: Marcin Zapolski; +Cc: dev On Mon, Jul 15, 2019 at 11:56:23AM +0200, Marcin Zapolski wrote: > Modify ipsec-secgw example app to use rte_eth_dev_info_get instead of > rte_eth_dev. > > Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> > --- Reword title to be "fix use of ..." and include: Fixes: a4677f78368b ("examples/ipsec-secgw: add target queues in flow actions") Cc: nelio.laranjeiro@6wind.com With that addition patch looks ok to me. Reviewed-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [v2 0/3] examples: fix use of internal struct 2019-07-15 9:56 [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures Marcin Zapolski ` (2 preceding siblings ...) 2019-07-15 9:56 ` [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure Marcin Zapolski @ 2019-07-17 7:58 ` Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 1/3] examples/l3fwd*: " Marcin Zapolski ` (3 more replies) 3 siblings, 4 replies; 13+ messages in thread From: Marcin Zapolski @ 2019-07-17 7:58 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski Some example applications have references to rte_eth_dev structure, which is not a part of public API. These patches replace them with calls to API functions. v2: * adjust commit titles * add fixlines for the original commits Marcin Zapolski (3): examples/l3fwd*: fix use of internal struct examples/ip_fragmentation: fix use of internal struct examples/ipsec-secgw: fix use of internal struct examples/ip_fragmentation/main.c | 2 +- examples/ipsec-secgw/ipsec.c | 9 ++++----- examples/l3fwd-acl/main.c | 6 +----- examples/l3fwd-power/main.c | 6 +----- examples/l3fwd-vf/main.c | 7 +------ examples/l3fwd/main.c | 6 +----- examples/performance-thread/l3fwd-thread/main.c | 6 +----- 7 files changed, 10 insertions(+), 32 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [v2 1/3] examples/l3fwd*: fix use of internal struct 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski @ 2019-07-17 7:58 ` Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 2/3] examples/ip_fragmentation: " Marcin Zapolski ` (2 subsequent siblings) 3 siblings, 0 replies; 13+ messages in thread From: Marcin Zapolski @ 2019-07-17 7:58 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski, shahafs Modify l3fwd and related example apps to use locally defined port_conf instead of global rte_eth_devices which is not a part of public API. Apps should not be using internal DPDK data structures directly. Fixes: 1ef9600b2d20 ("examples/l3fwd: convert to ethdev offloads API") Fixes: ba8c103d2455 ("examples/l3fwd-acl: convert to new ethdev offloads API") Fixes: 40df1d7a695d ("examples/l3fwd-power: convert to new ethdev offloads API") Fixes: 43fc038262b8 ("examples/l3fwd-vf: convert to new ethdev offloads API") Fixes: 373149c631fe ("examples/performance-thread: convert to new offloads API") Cc: shahafs@mellanox.com Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> --- examples/l3fwd-acl/main.c | 6 +----- examples/l3fwd-power/main.c | 6 +----- examples/l3fwd-vf/main.c | 7 +------ examples/l3fwd/main.c | 6 +----- examples/performance-thread/l3fwd-thread/main.c | 6 +----- 5 files changed, 5 insertions(+), 26 deletions(-) diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 09b7c3850..0c44df767 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -2022,14 +2022,10 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for (queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t) @@ -2042,7 +2038,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index 99c1208ce..7ac4cbe87 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -2378,13 +2378,9 @@ main(int argc, char **argv) /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { struct rte_eth_rxconf rxq_conf; - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = \ @@ -2397,7 +2393,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c index 1432f8969..572e74cf5 100644 --- a/examples/l3fwd-vf/main.c +++ b/examples/l3fwd-vf/main.c @@ -1022,13 +1022,8 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; - portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t)rte_lcore_to_socket_id(lcore_id); @@ -1040,7 +1035,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, pktmbuf_pool[socketid]); diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index 570693b32..3800bad19 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -971,14 +971,10 @@ main(int argc, char **argv) fflush(stdout); /* init RX queues */ for(queue = 0; queue < qconf->n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = qconf->rx_queue_list[queue].port_id; queueid = qconf->rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = @@ -991,7 +987,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; if (!per_port_pool) ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index dd468958a..0121c71cb 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -3645,14 +3645,10 @@ main(int argc, char **argv) /* init RX queues */ for (queue = 0; queue < rx_thread[i].n_rx_queue; ++queue) { - struct rte_eth_dev *dev; - struct rte_eth_conf *conf; struct rte_eth_rxconf rxq_conf; portid = rx_thread[i].rx_queue_list[queue].port_id; queueid = rx_thread[i].rx_queue_list[queue].queue_id; - dev = &rte_eth_devices[portid]; - conf = &dev->data->dev_conf; if (numa_on) socketid = (uint8_t)rte_lcore_to_socket_id(lcore_id); @@ -3664,7 +3660,7 @@ main(int argc, char **argv) rte_eth_dev_info_get(portid, &dev_info); rxq_conf = dev_info.default_rxconf; - rxq_conf.offloads = conf->rxmode.offloads; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, queueid, nb_rxd, socketid, &rxq_conf, -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [v2 2/3] examples/ip_fragmentation: fix use of internal struct 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 1/3] examples/l3fwd*: " Marcin Zapolski @ 2019-07-17 7:58 ` Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 3/3] examples/ipsec-secgw: " Marcin Zapolski 2019-07-18 20:42 ` [dpdk-dev] [v2 0/3] examples: " Thomas Monjalon 3 siblings, 0 replies; 13+ messages in thread From: Marcin Zapolski @ 2019-07-17 7:58 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski, alialnu, Bruce Richardson Modify ip_fragmentation example app to use rte_eth_info_get instead of global rte_eth_devices structure. Apps should not be using internal DPDK data structures directly. Fixes: 9758b956dcf4 ("examples/ip_fragmentation: fix Tx queues init") Cc: alialnu@mellanox.com Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- examples/ip_fragmentation/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 85c0100f7..a2a14e827 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -989,7 +989,7 @@ main(int argc, char **argv) if (rte_lcore_is_enabled(lcore_id) == 0) continue; - if (queueid >= rte_eth_devices[portid].data->nb_tx_queues) + if (queueid >= dev_info.nb_tx_queues) break; socket = (int) rte_lcore_to_socket_id(lcore_id); -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* [dpdk-dev] [v2 3/3] examples/ipsec-secgw: fix use of internal struct 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 1/3] examples/l3fwd*: " Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 2/3] examples/ip_fragmentation: " Marcin Zapolski @ 2019-07-17 7:58 ` Marcin Zapolski 2019-07-18 20:42 ` [dpdk-dev] [v2 0/3] examples: " Thomas Monjalon 3 siblings, 0 replies; 13+ messages in thread From: Marcin Zapolski @ 2019-07-17 7:58 UTC (permalink / raw) To: dev; +Cc: Marcin Zapolski, nelio.laranjeiro, Bruce Richardson Modify ipsec-secgw example app to use rte_eth_dev_info_get instead of rte_eth_dev. Apps should not be using internal DPDK data structures directly. Fixes: a4677f78368b ("examples/ipsec-secgw: add target queues in flow actions") Cc: nelio.laranjeiro@6wind.com Signed-off-by: Marcin Zapolski <marcinx.a.zapolski@intel.com> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com> --- examples/ipsec-secgw/ipsec.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c index 7b8533077..7d3f5f736 100644 --- a/examples/ipsec-secgw/ipsec.c +++ b/examples/ipsec-secgw/ipsec.c @@ -186,23 +186,22 @@ create_session(struct ipsec_ctx *ipsec_ctx, struct ipsec_sa *sa) .rss_key = rss_key, .rss_key_len = 40, }; - struct rte_eth_dev *eth_dev; + struct rte_eth_dev_info dev_info; uint16_t queue[RTE_MAX_QUEUES_PER_PORT]; struct rte_flow_action_rss action_rss; unsigned int i; unsigned int j; + rte_eth_dev_info_get(sa->portid, &dev_info); sa->action[2].type = RTE_FLOW_ACTION_TYPE_END; /* Try RSS. */ sa->action[1].type = RTE_FLOW_ACTION_TYPE_RSS; sa->action[1].conf = &action_rss; - eth_dev = ctx->device; rte_eth_dev_rss_hash_conf_get(sa->portid, &rss_conf); for (i = 0, j = 0; - i < eth_dev->data->nb_rx_queues; ++i) - if (eth_dev->data->rx_queues[i]) - queue[j++] = i; + i < dev_info.nb_rx_queues; ++i) + queue[j++] = i; action_rss = (struct rte_flow_action_rss){ .types = rss_conf.rss_hf, .key_len = rss_conf.rss_key_len, -- 2.17.1 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [dpdk-dev] [v2 0/3] examples: fix use of internal struct 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski ` (2 preceding siblings ...) 2019-07-17 7:58 ` [dpdk-dev] [v2 3/3] examples/ipsec-secgw: " Marcin Zapolski @ 2019-07-18 20:42 ` Thomas Monjalon 3 siblings, 0 replies; 13+ messages in thread From: Thomas Monjalon @ 2019-07-18 20:42 UTC (permalink / raw) To: Marcin Zapolski; +Cc: dev > Marcin Zapolski (3): > examples/l3fwd*: fix use of internal struct > examples/ip_fragmentation: fix use of internal struct > examples/ipsec-secgw: fix use of internal struct Applied, thanks ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-07-18 20:42 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-07-15 9:56 [dpdk-dev] [PATCH 0/3] examples: remove usage of internal structures Marcin Zapolski 2019-07-15 9:56 ` [dpdk-dev] [PATCH 1/3] examples/l3fwd*: remove references to rte_eth_devices Marcin Zapolski 2019-07-15 15:03 ` Bruce Richardson 2019-07-15 9:56 ` [dpdk-dev] [PATCH 2/3] examples/ip_fragmentation: remove usage of internal struct Marcin Zapolski 2019-07-15 14:39 ` Bruce Richardson 2019-07-15 14:45 ` Bruce Richardson 2019-07-15 9:56 ` [dpdk-dev] [PATCH 3/3] examples/ipsec-secgw: remove usage of internal structure Marcin Zapolski 2019-07-15 14:51 ` Bruce Richardson 2019-07-17 7:58 ` [dpdk-dev] [v2 0/3] examples: fix use of internal struct Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 1/3] examples/l3fwd*: " Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 2/3] examples/ip_fragmentation: " Marcin Zapolski 2019-07-17 7:58 ` [dpdk-dev] [v2 3/3] examples/ipsec-secgw: " Marcin Zapolski 2019-07-18 20:42 ` [dpdk-dev] [v2 0/3] examples: " Thomas Monjalon
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).