* [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
@ 2021-09-28 11:08 nipun.gupta
2021-09-28 11:08 ` [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input nipun.gupta
2021-09-30 13:45 ` [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ Ferruh Yigit
0 siblings, 2 replies; 10+ messages in thread
From: nipun.gupta @ 2021-09-28 11:08 UTC (permalink / raw)
To: dev; +Cc: xiaoyun.li, orika, thomas, ferruh.yigit, hemant.agrawal, Jun Yang
From: Jun Yang <jun.yang@nxp.com>
The existing forwarding mode configures the total number of
queues as the minimum of rxq and txq, so eventually the number
of txq are same as rxq.
However in some scenarios, specially for flow control the
number of rxq and txq can be different.
This patch makes the txq and function of rxq for all such
scenario instead of keeping 1:1 relationship between the two.
Signed-off-by: Jun Yang <jun.yang@nxp.com>
---
app/test-pmd/config.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index f5765b34f7..7e17f233ba 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -3000,8 +3000,6 @@ rss_fwd_config_setup(void)
int end;
nb_q = nb_rxq;
- if (nb_q > nb_txq)
- nb_q = nb_txq;
cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
cur_fwd_config.nb_fwd_streams =
@@ -3038,7 +3036,7 @@ rss_fwd_config_setup(void)
fs->rx_port = fwd_ports_ids[rxp];
fs->rx_queue = rxq;
fs->tx_port = fwd_ports_ids[txp];
- fs->tx_queue = rxq;
+ fs->tx_queue = (rxq % nb_txq);
fs->peer_addr = fs->tx_port;
fs->retry_enabled = retry_enabled;
rxp++;
@@ -3253,7 +3251,7 @@ fwd_config_setup(void)
return;
}
- if ((nb_rxq > 1) && (nb_txq > 1)){
+ if ((nb_rxq > 1) && (nb_txq > 1)) {
if (dcb_config) {
for (i = 0; i < nb_fwd_ports; i++) {
pt_id = fwd_ports_ids[i];
--
2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input
2021-09-28 11:08 [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ nipun.gupta
@ 2021-09-28 11:08 ` nipun.gupta
2021-09-28 11:51 ` Nipun Gupta
2021-09-30 13:45 ` [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ Ferruh Yigit
1 sibling, 1 reply; 10+ messages in thread
From: nipun.gupta @ 2021-09-28 11:08 UTC (permalink / raw)
To: dev; +Cc: xiaoyun.li, orika, thomas, ferruh.yigit, hemant.agrawal, Nipun Gupta
From: Nipun Gupta <nipun.gupta@nxp.com>
This patch enables method to provide key and mask for raw rules
to be provided as hexadecimal values. There is new parameter
pattern_mask added to support this.
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
---
app/test-pmd/cmdline_flow.c | 15 +++++++++++++++
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 13 +++++++++++++
2 files changed, 28 insertions(+)
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 6cd99bf37f..a95b147d92 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -158,6 +158,7 @@ enum index {
ITEM_RAW_OFFSET,
ITEM_RAW_LIMIT,
ITEM_RAW_PATTERN,
+ ITEM_RAW_PATTERN_HEX,
ITEM_ETH,
ITEM_ETH_DST,
ITEM_ETH_SRC,
@@ -1046,6 +1047,7 @@ static const enum index item_raw[] = {
ITEM_RAW_OFFSET,
ITEM_RAW_LIMIT,
ITEM_RAW_PATTERN,
+ ITEM_RAW_PATTERN_HEX,
ITEM_NEXT,
ZERO,
};
@@ -2487,6 +2489,19 @@ static const struct token token_list[] = {
ARGS_ENTRY_ARB(sizeof(struct rte_flow_item_raw),
ITEM_RAW_PATTERN_SIZE)),
},
+ [ITEM_RAW_PATTERN_HEX] = {
+ .name = "pattern_hex",
+ .help = "hex string to look for",
+ .next = NEXT(item_raw,
+ NEXT_ENTRY(HEX),
+ NEXT_ENTRY(ITEM_PARAM_IS,
+ ITEM_PARAM_SPEC,
+ ITEM_PARAM_MASK)),
+ .args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, pattern),
+ ARGS_ENTRY(struct rte_flow_item_raw, length),
+ ARGS_ENTRY_ARB(sizeof(struct rte_flow_item_raw),
+ ITEM_RAW_PATTERN_SIZE)),
+ },
[ITEM_ETH] = {
.name = "eth",
.help = "match Ethernet header",
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 4f8751be1c..3a69d37037 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -3637,6 +3637,7 @@ This section lists supported pattern items and their attributes, if any.
- ``offset {integer}``: absolute or relative offset for pattern.
- ``limit {unsigned}``: search area limit for start of pattern.
- ``pattern {string}``: byte string to look for.
+ - ``pattern_hex {string}``: byte string (provided in hexadecimal) to look for.
- ``eth``: match Ethernet header.
@@ -5036,6 +5037,18 @@ The meter policy action list: ``green -> green, yellow -> yellow, red -> red``.
testpmd> create port meter 0 1 13 1 yes 0xffff 0 0
testpmd> flow create 0 priority 0 ingress group 1 pattern eth / end actions meter mtr_id 1 / end
+Sample RAW rule
+~~~~~~~~~~~~~~~
+
+A RAW rule can be creted as following using ``pattern_hex`` key and mask.
+
+::
+
+ testpmd> flow create 0 group 0 priority 1 ingress pattern raw relative is 0 search is 0 offset
+ is 0 limit is 0 pattern_hex spec 00000000000000000000000000000000000000000000000000000a0a0a0a
+ pattern_hex mask 0000000000000000000000000000000000000000000000000000ffffffff / end actions
+ queue index 4 / end
+
BPF Functions
--------------
--
2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input
2021-09-28 11:08 ` [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input nipun.gupta
@ 2021-09-28 11:51 ` Nipun Gupta
0 siblings, 0 replies; 10+ messages in thread
From: Nipun Gupta @ 2021-09-28 11:51 UTC (permalink / raw)
To: Nipun Gupta, dev; +Cc: xiaoyun.li, orika, thomas, ferruh.yigit, Hemant Agrawal
Please ignore this patch for now.
Regards,
Nipun
> -----Original Message-----
> From: nipun.gupta@nxp.com <nipun.gupta@nxp.com>
> Sent: Tuesday, September 28, 2021 4:39 PM
> To: dev@dpdk.org
> Cc: xiaoyun.li@intel.com; orika@nvidia.com; thomas@monjalon.net;
> ferruh.yigit@intel.com; Hemant Agrawal <hemant.agrawal@nxp.com>; Nipun
> Gupta <nipun.gupta@nxp.com>
> Subject: [PATCH] app/testpmd: update raw flow to take hex input
>
> From: Nipun Gupta <nipun.gupta@nxp.com>
>
> This patch enables method to provide key and mask for raw rules
> to be provided as hexadecimal values. There is new parameter
> pattern_mask added to support this.
>
> Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
> ---
> app/test-pmd/cmdline_flow.c | 15 +++++++++++++++
> doc/guides/testpmd_app_ug/testpmd_funcs.rst | 13 +++++++++++++
> 2 files changed, 28 insertions(+)
>
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 6cd99bf37f..a95b147d92 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -158,6 +158,7 @@ enum index {
> ITEM_RAW_OFFSET,
> ITEM_RAW_LIMIT,
> ITEM_RAW_PATTERN,
> + ITEM_RAW_PATTERN_HEX,
> ITEM_ETH,
> ITEM_ETH_DST,
> ITEM_ETH_SRC,
> @@ -1046,6 +1047,7 @@ static const enum index item_raw[] = {
> ITEM_RAW_OFFSET,
> ITEM_RAW_LIMIT,
> ITEM_RAW_PATTERN,
> + ITEM_RAW_PATTERN_HEX,
> ITEM_NEXT,
> ZERO,
> };
> @@ -2487,6 +2489,19 @@ static const struct token token_list[] = {
> ARGS_ENTRY_ARB(sizeof(struct rte_flow_item_raw),
> ITEM_RAW_PATTERN_SIZE)),
> },
> + [ITEM_RAW_PATTERN_HEX] = {
> + .name = "pattern_hex",
> + .help = "hex string to look for",
> + .next = NEXT(item_raw,
> + NEXT_ENTRY(HEX),
> + NEXT_ENTRY(ITEM_PARAM_IS,
> + ITEM_PARAM_SPEC,
> + ITEM_PARAM_MASK)),
> + .args = ARGS(ARGS_ENTRY(struct rte_flow_item_raw, pattern),
> + ARGS_ENTRY(struct rte_flow_item_raw, length),
> + ARGS_ENTRY_ARB(sizeof(struct rte_flow_item_raw),
> + ITEM_RAW_PATTERN_SIZE)),
> + },
> [ITEM_ETH] = {
> .name = "eth",
> .help = "match Ethernet header",
> diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> index 4f8751be1c..3a69d37037 100644
> --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
> @@ -3637,6 +3637,7 @@ This section lists supported pattern items and their
> attributes, if any.
> - ``offset {integer}``: absolute or relative offset for pattern.
> - ``limit {unsigned}``: search area limit for start of pattern.
> - ``pattern {string}``: byte string to look for.
> + - ``pattern_hex {string}``: byte string (provided in hexadecimal) to look for.
>
> - ``eth``: match Ethernet header.
>
> @@ -5036,6 +5037,18 @@ The meter policy action list: ``green -> green, yellow
> -> yellow, red -> red``.
> testpmd> create port meter 0 1 13 1 yes 0xffff 0 0
> testpmd> flow create 0 priority 0 ingress group 1 pattern eth / end actions
> meter mtr_id 1 / end
>
> +Sample RAW rule
> +~~~~~~~~~~~~~~~
> +
> +A RAW rule can be creted as following using ``pattern_hex`` key and mask.
> +
> +::
> +
> + testpmd> flow create 0 group 0 priority 1 ingress pattern raw relative is 0
> search is 0 offset
> + is 0 limit is 0 pattern_hex spec
> 00000000000000000000000000000000000000000000000000000a0a0a0a
> + pattern_hex mask
> 0000000000000000000000000000000000000000000000000000ffffffff / end
> actions
> + queue index 4 / end
> +
> BPF Functions
> --------------
>
> --
> 2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2021-09-28 11:08 [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ nipun.gupta
2021-09-28 11:08 ` [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input nipun.gupta
@ 2021-09-30 13:45 ` Ferruh Yigit
2021-10-01 7:22 ` Nipun Gupta
1 sibling, 1 reply; 10+ messages in thread
From: Ferruh Yigit @ 2021-09-30 13:45 UTC (permalink / raw)
To: nipun.gupta, dev; +Cc: xiaoyun.li, orika, thomas, hemant.agrawal, Jun Yang
On 9/28/2021 12:08 PM, nipun.gupta@nxp.com wrote:
> From: Jun Yang <jun.yang@nxp.com>
>
> The existing forwarding mode configures the total number of
> queues as the minimum of rxq and txq, so eventually the number
> of txq are same as rxq.
> However in some scenarios, specially for flow control the
> number of rxq and txq can be different.
> This patch makes the txq and function of rxq for all such
> scenario instead of keeping 1:1 relationship between the two.
>
Hi Nipun,
I expect more code exists that assumes Rx queue number and Tx queue number is
equal, did you able to test unequal queue numbers with below change?
And can you please describe your usecase more, is the device has uneven Rx/Tx
queues?
> Signed-off-by: Jun Yang <jun.yang@nxp.com>
> ---
> app/test-pmd/config.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index f5765b34f7..7e17f233ba 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -3000,8 +3000,6 @@ rss_fwd_config_setup(void)
> int end;
>
> nb_q = nb_rxq;
> - if (nb_q > nb_txq)
> - nb_q = nb_txq;
> cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> cur_fwd_config.nb_fwd_streams =
> @@ -3038,7 +3036,7 @@ rss_fwd_config_setup(void)
> fs->rx_port = fwd_ports_ids[rxp];
> fs->rx_queue = rxq;
> fs->tx_port = fwd_ports_ids[txp];
> - fs->tx_queue = rxq;
> + fs->tx_queue = (rxq % nb_txq);
Is this assumes number of Rx queue is always more than number of Tx queue?
> fs->peer_addr = fs->tx_port;
> fs->retry_enabled = retry_enabled;
> rxp++;
> @@ -3253,7 +3251,7 @@ fwd_config_setup(void)
> return;
> }
>
> - if ((nb_rxq > 1) && (nb_txq > 1)){
> + if ((nb_rxq > 1) && (nb_txq > 1)) {
> if (dcb_config) {
> for (i = 0; i < nb_fwd_ports; i++) {
> pt_id = fwd_ports_ids[i];
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2021-09-30 13:45 ` [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ Ferruh Yigit
@ 2021-10-01 7:22 ` Nipun Gupta
0 siblings, 0 replies; 10+ messages in thread
From: Nipun Gupta @ 2021-10-01 7:22 UTC (permalink / raw)
To: Ferruh Yigit, dev; +Cc: xiaoyun.li, orika, thomas, Hemant Agrawal, Jun Yang
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Thursday, September 30, 2021 7:16 PM
> To: Nipun Gupta <nipun.gupta@nxp.com>; dev@dpdk.org
> Cc: xiaoyun.li@intel.com; orika@nvidia.com; thomas@monjalon.net; Hemant
> Agrawal <hemant.agrawal@nxp.com>; Jun Yang <jun.yang@nxp.com>
> Subject: Re: [PATCH] app/testpmd: support unequal number of RXQ and TXQ
>
> On 9/28/2021 12:08 PM, nipun.gupta@nxp.com wrote:
> > From: Jun Yang <jun.yang@nxp.com>
> >
> > The existing forwarding mode configures the total number of
> > queues as the minimum of rxq and txq, so eventually the number
> > of txq are same as rxq.
> > However in some scenarios, specially for flow control the
> > number of rxq and txq can be different.
> > This patch makes the txq and function of rxq for all such
> > scenario instead of keeping 1:1 relationship between the two.
> >
>
> Hi Nipun,
>
> I expect more code exists that assumes Rx queue number and Tx queue number
> is
> equal, did you able to test unequal queue numbers with below change?
Hi Ferruh,
Yes, this works with flow, but I will double check on latest code without using
flow too. Also, we will check for any other code which shall need change w.r.t.
this functionality.
>
> And can you please describe your usecase more, is the device has uneven Rx/Tx
> queues?
Yes, you are correct. In our case, Rx queues which we can use can be much higher
than Tx queues, when rte flow is being used.
>
> > Signed-off-by: Jun Yang <jun.yang@nxp.com>
> > ---
> > app/test-pmd/config.c | 6 ++----
> > 1 file changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> > index f5765b34f7..7e17f233ba 100644
> > --- a/app/test-pmd/config.c
> > +++ b/app/test-pmd/config.c
> > @@ -3000,8 +3000,6 @@ rss_fwd_config_setup(void)
> > int end;
> >
> > nb_q = nb_rxq;
> > - if (nb_q > nb_txq)
> > - nb_q = nb_txq;
> > cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> > cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> > cur_fwd_config.nb_fwd_streams =
> > @@ -3038,7 +3036,7 @@ rss_fwd_config_setup(void)
> > fs->rx_port = fwd_ports_ids[rxp];
> > fs->rx_queue = rxq;
> > fs->tx_port = fwd_ports_ids[txp];
> > - fs->tx_queue = rxq;
> > + fs->tx_queue = (rxq % nb_txq);
>
> Is this assumes number of Rx queue is always more than number of Tx queue?
Yes, but on re-thought as per your comment, we shall need to revisit this logic.
I will have a relook on this part too.
Thanks,
Nipun
>
> > fs->peer_addr = fs->tx_port;
> > fs->retry_enabled = retry_enabled;
> > rxp++;
> > @@ -3253,7 +3251,7 @@ fwd_config_setup(void)
> > return;
> > }
> >
> > - if ((nb_rxq > 1) && (nb_txq > 1)){
> > + if ((nb_rxq > 1) && (nb_txq > 1)) {
> > if (dcb_config) {
> > for (i = 0; i < nb_fwd_ports; i++) {
> > pt_id = fwd_ports_ids[i];
> >
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2019-12-11 10:26 ` Jerin Jacob
2019-12-12 11:20 ` Hemant Agrawal
@ 2023-08-20 15:49 ` Stephen Hemminger
1 sibling, 0 replies; 10+ messages in thread
From: Stephen Hemminger @ 2023-08-20 15:49 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ananyev, Konstantin, Hemant Agrawal, dev, Jun Yang
On Wed, 11 Dec 2019 15:56:17 +0530
Jerin Jacob <jerinjacobk@gmail.com> wrote:
> >
> > > -----Original Message-----
> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Hemant Agrawal
> > > Sent: Wednesday, December 11, 2019 5:30 AM
> > > To: dev@dpdk.org
> > > Cc: Jun Yang <jun.yang@nxp.com>
> > > Subject: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
> > >
> > > From: Jun Yang <jun.yang@nxp.com>
> > >
> > > The existing forwarding mode usages the total number of
> > > queues as the minimum of rxq and txq.
> > > It finds the txq as the same index as rxq.
> > > However in some scenarios, specially for flow control
> > > the number of rxq and txq can be different.
> > > This patch maxes the txq and function of rxq for all such
> > > scenario instead of keeping 1:1 relationship between the two.
> > >
> > > Now packets from all RXQs can be forwarded to TXQs
>
> Allow this feature only for DEV_TX_OFFLOAD_MT_LOCKFREE devices.
> Please probe DEV_TX_OFFLOAD_MT_LOCKFREE() capability first to
> avoid breaking contract on the other devices.
>
> > >
Dropping this version of the patch. Please resubmit a new version
with the lock free check.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2019-12-11 10:26 ` Jerin Jacob
@ 2019-12-12 11:20 ` Hemant Agrawal
2023-08-20 15:49 ` Stephen Hemminger
1 sibling, 0 replies; 10+ messages in thread
From: Hemant Agrawal @ 2019-12-12 11:20 UTC (permalink / raw)
To: Jerin Jacob, Ananyev, Konstantin; +Cc: dev, Jun Yang
> -----Original Message-----
> From: Jerin Jacob <jerinjacobk@gmail.com>
> On Wed, Dec 11, 2019 at 3:29 PM Ananyev, Konstantin
> <konstantin.ananyev@intel.com> wrote:
> >
> >
> >
> > > -----Original Message-----
> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Hemant Agrawal
> > > Sent: Wednesday, December 11, 2019 5:30 AM
> > > To: dev@dpdk.org
> > > Cc: Jun Yang <jun.yang@nxp.com>
> > > Subject: [dpdk-dev] [PATCH] app/testpmd: support unequal number of
> > > RXQ and TXQ
> > >
> > > From: Jun Yang <jun.yang@nxp.com>
> > >
> > > The existing forwarding mode usages the total number of queues as
> > > the minimum of rxq and txq.
> > > It finds the txq as the same index as rxq.
> > > However in some scenarios, specially for flow control the number of
> > > rxq and txq can be different.
> > > This patch maxes the txq and function of rxq for all such scenario
> > > instead of keeping 1:1 relationship between the two.
> > >
> > > Now packets from all RXQs can be forwarded to TXQs
>
> Allow this feature only for DEV_TX_OFFLOAD_MT_LOCKFREE devices.
> Please probe DEV_TX_OFFLOAD_MT_LOCKFREE() capability first to avoid
> breaking contract on the other devices.
[Hemant] Agree with the suggestion.
>
> > >
> > > Signed-off-by: Jun Yang <jun.yang@nxp.com>
> > > ---
> > > app/test-pmd/config.c | 4 +---
> > > 1 file changed, 1 insertion(+), 3 deletions(-)
> > >
> > > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index
> > > d59968278..efa409453 100644
> > > --- a/app/test-pmd/config.c
> > > +++ b/app/test-pmd/config.c
> > > @@ -2130,8 +2130,6 @@ rss_fwd_config_setup(void)
> > > streamid_t sm_id;
> > >
> > > nb_q = nb_rxq;
> > > - if (nb_q > nb_txq)
> > > - nb_q = nb_txq;
> > > cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> > > cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> > > cur_fwd_config.nb_fwd_streams = @@ -2154,7 +2152,7 @@
> > > rss_fwd_config_setup(void)
> > > fs->rx_port = fwd_ports_ids[rxp];
> > > fs->rx_queue = rxq;
> > > fs->tx_port = fwd_ports_ids[txp];
> > > - fs->tx_queue = rxq;
> > > + fs->tx_queue = (rxq % nb_txq);
> >
> > But does it mean that now 2 lcores cah use the same TX queue?
> > If so, then how it supposed to work?
>
> See above.
>
>
> >
> > > fs->peer_addr = fs->tx_port;
> > > fs->retry_enabled = retry_enabled;
> > > rxp++;
> > > --
> > > 2.17.1
> >
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2019-12-11 9:59 ` Ananyev, Konstantin
@ 2019-12-11 10:26 ` Jerin Jacob
2019-12-12 11:20 ` Hemant Agrawal
2023-08-20 15:49 ` Stephen Hemminger
0 siblings, 2 replies; 10+ messages in thread
From: Jerin Jacob @ 2019-12-11 10:26 UTC (permalink / raw)
To: Ananyev, Konstantin; +Cc: Hemant Agrawal, dev, Jun Yang
On Wed, Dec 11, 2019 at 3:29 PM Ananyev, Konstantin
<konstantin.ananyev@intel.com> wrote:
>
>
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Hemant Agrawal
> > Sent: Wednesday, December 11, 2019 5:30 AM
> > To: dev@dpdk.org
> > Cc: Jun Yang <jun.yang@nxp.com>
> > Subject: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
> >
> > From: Jun Yang <jun.yang@nxp.com>
> >
> > The existing forwarding mode usages the total number of
> > queues as the minimum of rxq and txq.
> > It finds the txq as the same index as rxq.
> > However in some scenarios, specially for flow control
> > the number of rxq and txq can be different.
> > This patch maxes the txq and function of rxq for all such
> > scenario instead of keeping 1:1 relationship between the two.
> >
> > Now packets from all RXQs can be forwarded to TXQs
Allow this feature only for DEV_TX_OFFLOAD_MT_LOCKFREE devices.
Please probe DEV_TX_OFFLOAD_MT_LOCKFREE() capability first to
avoid breaking contract on the other devices.
> >
> > Signed-off-by: Jun Yang <jun.yang@nxp.com>
> > ---
> > app/test-pmd/config.c | 4 +---
> > 1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> > index d59968278..efa409453 100644
> > --- a/app/test-pmd/config.c
> > +++ b/app/test-pmd/config.c
> > @@ -2130,8 +2130,6 @@ rss_fwd_config_setup(void)
> > streamid_t sm_id;
> >
> > nb_q = nb_rxq;
> > - if (nb_q > nb_txq)
> > - nb_q = nb_txq;
> > cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> > cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> > cur_fwd_config.nb_fwd_streams =
> > @@ -2154,7 +2152,7 @@ rss_fwd_config_setup(void)
> > fs->rx_port = fwd_ports_ids[rxp];
> > fs->rx_queue = rxq;
> > fs->tx_port = fwd_ports_ids[txp];
> > - fs->tx_queue = rxq;
> > + fs->tx_queue = (rxq % nb_txq);
>
> But does it mean that now 2 lcores cah use the same TX queue?
> If so, then how it supposed to work?
See above.
>
> > fs->peer_addr = fs->tx_port;
> > fs->retry_enabled = retry_enabled;
> > rxp++;
> > --
> > 2.17.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
2019-12-11 5:30 Hemant Agrawal
@ 2019-12-11 9:59 ` Ananyev, Konstantin
2019-12-11 10:26 ` Jerin Jacob
0 siblings, 1 reply; 10+ messages in thread
From: Ananyev, Konstantin @ 2019-12-11 9:59 UTC (permalink / raw)
To: Hemant Agrawal, dev; +Cc: Jun Yang
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Hemant Agrawal
> Sent: Wednesday, December 11, 2019 5:30 AM
> To: dev@dpdk.org
> Cc: Jun Yang <jun.yang@nxp.com>
> Subject: [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
>
> From: Jun Yang <jun.yang@nxp.com>
>
> The existing forwarding mode usages the total number of
> queues as the minimum of rxq and txq.
> It finds the txq as the same index as rxq.
> However in some scenarios, specially for flow control
> the number of rxq and txq can be different.
> This patch maxes the txq and function of rxq for all such
> scenario instead of keeping 1:1 relationship between the two.
>
> Now packets from all RXQs can be forwarded to TXQs
>
> Signed-off-by: Jun Yang <jun.yang@nxp.com>
> ---
> app/test-pmd/config.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
> index d59968278..efa409453 100644
> --- a/app/test-pmd/config.c
> +++ b/app/test-pmd/config.c
> @@ -2130,8 +2130,6 @@ rss_fwd_config_setup(void)
> streamid_t sm_id;
>
> nb_q = nb_rxq;
> - if (nb_q > nb_txq)
> - nb_q = nb_txq;
> cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
> cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
> cur_fwd_config.nb_fwd_streams =
> @@ -2154,7 +2152,7 @@ rss_fwd_config_setup(void)
> fs->rx_port = fwd_ports_ids[rxp];
> fs->rx_queue = rxq;
> fs->tx_port = fwd_ports_ids[txp];
> - fs->tx_queue = rxq;
> + fs->tx_queue = (rxq % nb_txq);
But does it mean that now 2 lcores cah use the same TX queue?
If so, then how it supposed to work?
> fs->peer_addr = fs->tx_port;
> fs->retry_enabled = retry_enabled;
> rxp++;
> --
> 2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ
@ 2019-12-11 5:30 Hemant Agrawal
2019-12-11 9:59 ` Ananyev, Konstantin
0 siblings, 1 reply; 10+ messages in thread
From: Hemant Agrawal @ 2019-12-11 5:30 UTC (permalink / raw)
To: dev; +Cc: Jun Yang
From: Jun Yang <jun.yang@nxp.com>
The existing forwarding mode usages the total number of
queues as the minimum of rxq and txq.
It finds the txq as the same index as rxq.
However in some scenarios, specially for flow control
the number of rxq and txq can be different.
This patch maxes the txq and function of rxq for all such
scenario instead of keeping 1:1 relationship between the two.
Now packets from all RXQs can be forwarded to TXQs
Signed-off-by: Jun Yang <jun.yang@nxp.com>
---
app/test-pmd/config.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index d59968278..efa409453 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -2130,8 +2130,6 @@ rss_fwd_config_setup(void)
streamid_t sm_id;
nb_q = nb_rxq;
- if (nb_q > nb_txq)
- nb_q = nb_txq;
cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
cur_fwd_config.nb_fwd_streams =
@@ -2154,7 +2152,7 @@ rss_fwd_config_setup(void)
fs->rx_port = fwd_ports_ids[rxp];
fs->rx_queue = rxq;
fs->tx_port = fwd_ports_ids[txp];
- fs->tx_queue = rxq;
+ fs->tx_queue = (rxq % nb_txq);
fs->peer_addr = fs->tx_port;
fs->retry_enabled = retry_enabled;
rxp++;
--
2.17.1
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-08-20 15:49 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-28 11:08 [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ nipun.gupta
2021-09-28 11:08 ` [dpdk-dev] [PATCH] app/testpmd: update raw flow to take hex input nipun.gupta
2021-09-28 11:51 ` Nipun Gupta
2021-09-30 13:45 ` [dpdk-dev] [PATCH] app/testpmd: support unequal number of RXQ and TXQ Ferruh Yigit
2021-10-01 7:22 ` Nipun Gupta
-- strict thread matches above, loose matches on Subject: below --
2019-12-11 5:30 Hemant Agrawal
2019-12-11 9:59 ` Ananyev, Konstantin
2019-12-11 10:26 ` Jerin Jacob
2019-12-12 11:20 ` Hemant Agrawal
2023-08-20 15:49 ` Stephen Hemminger
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).