* [PATCH 0/2] net/hns3: support rule keep capability @ 2022-12-15 1:41 Chengwen Feng 2022-12-15 1:41 ` [PATCH 1/2] net/hns3: declare " Chengwen Feng ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Chengwen Feng @ 2022-12-15 1:41 UTC (permalink / raw) To: thomas, ferruh.yigit, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, aman.deep.singh, yuying.zhang This patch declare the hns3 PMD supports rule keep capability, and also add "--disable-flow-flush" parameter to test for such capability. Chengwen Feng (2): net/hns3: declare support rule keep capability app/testpmd: add disable-flow-flush parameter app/test-pmd/parameters.c | 4 ++++ app/test-pmd/testpmd.c | 7 ++++++- app/test-pmd/testpmd.h | 1 + doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ drivers/net/hns3/hns3_common.c | 7 ++++--- 5 files changed, 20 insertions(+), 4 deletions(-) -- 2.17.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] net/hns3: declare support rule keep capability 2022-12-15 1:41 [PATCH 0/2] net/hns3: support rule keep capability Chengwen Feng @ 2022-12-15 1:41 ` Chengwen Feng 2022-12-15 1:56 ` Dongdong Liu 2022-12-15 1:41 ` [PATCH 2/2] app/testpmd: add disable-flow-flush parameter Chengwen Feng 2023-01-31 17:05 ` [PATCH 0/2] net/hns3: support rule keep capability Ferruh Yigit 2 siblings, 1 reply; 10+ messages in thread From: Chengwen Feng @ 2022-12-15 1:41 UTC (permalink / raw) To: thomas, ferruh.yigit, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, aman.deep.singh, yuying.zhang The driver supports create flow rules when device is stopped, and re-setup flow rules when restarting, so declare support RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP. The driver also supports to create indirect actions when device is stopped, and keeps the indirect actions when restarting, so declare support RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP. Cc: stable@dpdk.org Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> --- drivers/net/hns3/hns3_common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c index 7adc6a4972..da0a481f15 100644 --- a/drivers/net/hns3/hns3_common.c +++ b/drivers/net/hns3/hns3_common.c @@ -90,10 +90,11 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) if (hns3_dev_get_support(hw, OUTER_UDP_CKSUM)) info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; + info->dev_capa = RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP | + RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP; if (hns3_dev_get_support(hw, INDEP_TXRX)) - info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | - RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; - info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; + info->dev_capa |= RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | + RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; if (hns3_dev_get_support(hw, PTP)) info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; -- 2.17.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] net/hns3: declare support rule keep capability 2022-12-15 1:41 ` [PATCH 1/2] net/hns3: declare " Chengwen Feng @ 2022-12-15 1:56 ` Dongdong Liu 0 siblings, 0 replies; 10+ messages in thread From: Dongdong Liu @ 2022-12-15 1:56 UTC (permalink / raw) To: Chengwen Feng, thomas, ferruh.yigit, andrew.rybchenko Cc: dev, yisen.zhuang, aman.deep.singh, yuying.zhang Acked-by: Dongdong Liu <liudongdong3@huawei.com> Thanks, Dongdong On 2022/12/15 9:41, Chengwen Feng wrote: > The driver supports create flow rules when device is stopped, and > re-setup flow rules when restarting, so declare support > RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP. > > The driver also supports to create indirect actions when device is > stopped, and keeps the indirect actions when restarting, so declare > support RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP. > > Cc: stable@dpdk.org > > Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> > --- > drivers/net/hns3/hns3_common.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/hns3/hns3_common.c b/drivers/net/hns3/hns3_common.c > index 7adc6a4972..da0a481f15 100644 > --- a/drivers/net/hns3/hns3_common.c > +++ b/drivers/net/hns3/hns3_common.c > @@ -90,10 +90,11 @@ hns3_dev_infos_get(struct rte_eth_dev *eth_dev, struct rte_eth_dev_info *info) > if (hns3_dev_get_support(hw, OUTER_UDP_CKSUM)) > info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM; > > + info->dev_capa = RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP | > + RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP; > if (hns3_dev_get_support(hw, INDEP_TXRX)) > - info->dev_capa = RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | > - RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; > - info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP; > + info->dev_capa |= RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP | > + RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP; > > if (hns3_dev_get_support(hw, PTP)) > info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP; > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2022-12-15 1:41 [PATCH 0/2] net/hns3: support rule keep capability Chengwen Feng 2022-12-15 1:41 ` [PATCH 1/2] net/hns3: declare " Chengwen Feng @ 2022-12-15 1:41 ` Chengwen Feng 2023-01-23 15:01 ` Singh, Aman Deep 2023-01-25 18:37 ` Ferruh Yigit 2023-01-31 17:05 ` [PATCH 0/2] net/hns3: support rule keep capability Ferruh Yigit 2 siblings, 2 replies; 10+ messages in thread From: Chengwen Feng @ 2022-12-15 1:41 UTC (permalink / raw) To: thomas, ferruh.yigit, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, aman.deep.singh, yuying.zhang This patch adds "--disable-flow-flush" parameter, which could used to disable port flow flush when stop port. It allows testing keep flow rules or shared flow objects across restart. Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> --- app/test-pmd/parameters.c | 4 ++++ app/test-pmd/testpmd.c | 7 ++++++- app/test-pmd/testpmd.h | 1 + doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index d597c209ba..e734ad9a02 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -175,6 +175,7 @@ usage(char* progname) "disable print of designated event or all of them.\n"); printf(" --flow-isolate-all: " "requests flow API isolated mode on all ports at initialization time.\n"); + printf(" --disable-flow-flush: disable port flow flush when stop port.\n"); printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX queue offloads\n"); printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX queue offloads\n"); printf(" --hot-plug: enable hot plug for device.\n"); @@ -667,6 +668,7 @@ launch_args_parse(int argc, char** argv) { "rxfreet", 1, 0, 0 }, { "no-flush-rx", 0, 0, 0 }, { "flow-isolate-all", 0, 0, 0 }, + { "disable-flow-flush", 0, 0, 0 }, { "rxoffs", 1, 0, 0 }, { "rxpkts", 1, 0, 0 }, { "rxhdrs", 1, 0, 0 }, @@ -1330,6 +1332,8 @@ launch_args_parse(int argc, char** argv) rmv_interrupt = 0; if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) flow_isolate_all = 1; + if (!strcmp(lgopts[opt_idx].name, "disable-flow-flush")) + no_flow_flush = 1; if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { char *end = NULL; n = strtoull(optarg, &end, 16); diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 134d79a555..ea78f8982d 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -383,6 +383,11 @@ uint8_t no_flush_rx = 0; /* flush by default */ */ uint8_t flow_isolate_all; +/* + * Disable port flow flush when stop port. + */ +uint8_t no_flow_flush = 0; /* do flow flush by default */ + /* * Avoids to check link status when starting/stopping a port. */ @@ -3246,7 +3251,7 @@ stop_port(portid_t pid) } } - if (port->flow_list) + if (port->flow_list && !no_flow_flush) port_flow_flush(pi); ret = eth_dev_stop_mp(pi); diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h index 7d24d25970..ab4733522d 100644 --- a/app/test-pmd/testpmd.h +++ b/app/test-pmd/testpmd.h @@ -476,6 +476,7 @@ extern uint8_t numa_support; /**< set by "--numa" parameter */ extern uint16_t port_topology; /**< set by "--port-topology" parameter */ extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */ extern uint8_t flow_isolate_all; /**< set by "--flow-isolate-all */ +extern uint8_t no_flow_flush; /**< set by "--disable-flow-flush" parameter */ extern uint8_t mp_alloc_type; /**< set by "--mp-anon" or "--mp-alloc" parameter */ extern uint32_t eth_link_speed; diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst index 074f910fc9..3ec3d4f5e6 100644 --- a/doc/guides/testpmd_app_ug/run_app.rst +++ b/doc/guides/testpmd_app_ug/run_app.rst @@ -436,6 +436,11 @@ The command line options are: Ports that do not support this mode are automatically discarded. +* ``--disable-flow-flush`` + + Disable port flow flush when stop port. This allows testing keep flow rules + or shared flow objects across restart. + * ``--tx-offloads=0xXXXXXXXX`` Set the hexadecimal bitmask of TX queue offloads. -- 2.17.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2022-12-15 1:41 ` [PATCH 2/2] app/testpmd: add disable-flow-flush parameter Chengwen Feng @ 2023-01-23 15:01 ` Singh, Aman Deep 2023-01-25 18:34 ` Ferruh Yigit 2023-01-25 18:37 ` Ferruh Yigit 1 sibling, 1 reply; 10+ messages in thread From: Singh, Aman Deep @ 2023-01-23 15:01 UTC (permalink / raw) To: Chengwen Feng, thomas, ferruh.yigit, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, yuying.zhang [-- Attachment #1: Type: text/plain, Size: 4117 bytes --] On 12/15/2022 7:11 AM, Chengwen Feng wrote: > This patch adds "--disable-flow-flush" parameter, which could used to > disable port flow flush when stop port. It allows testing keep flow > rules or shared flow objects across restart. > > Signed-off-by: Chengwen Feng<fengchengwen@huawei.com> > --- > app/test-pmd/parameters.c | 4 ++++ > app/test-pmd/testpmd.c | 7 ++++++- > app/test-pmd/testpmd.h | 1 + > doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ > 4 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c > index d597c209ba..e734ad9a02 100644 > --- a/app/test-pmd/parameters.c > +++ b/app/test-pmd/parameters.c > @@ -175,6 +175,7 @@ usage(char* progname) > "disable print of designated event or all of them.\n"); > printf(" --flow-isolate-all: " > "requests flow API isolated mode on all ports at initialization time.\n"); > + printf(" --disable-flow-flush: disable port flow flush when stop port.\n"); > printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX queue offloads\n"); > printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX queue offloads\n"); > printf(" --hot-plug: enable hot plug for device.\n"); > @@ -667,6 +668,7 @@ launch_args_parse(int argc, char** argv) > { "rxfreet", 1, 0, 0 }, > { "no-flush-rx", 0, 0, 0 }, > { "flow-isolate-all", 0, 0, 0 }, > + { "disable-flow-flush", 0, 0, 0 }, > { "rxoffs", 1, 0, 0 }, > { "rxpkts", 1, 0, 0 }, > { "rxhdrs", 1, 0, 0 }, > @@ -1330,6 +1332,8 @@ launch_args_parse(int argc, char** argv) > rmv_interrupt = 0; > if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) > flow_isolate_all = 1; > + if (!strcmp(lgopts[opt_idx].name, "disable-flow-flush")) > + no_flow_flush = 1; > if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { > char *end = NULL; > n = strtoull(optarg, &end, 16); > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 134d79a555..ea78f8982d 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -383,6 +383,11 @@ uint8_t no_flush_rx = 0; /* flush by default */ > */ > uint8_t flow_isolate_all; > > +/* > + * Disable port flow flush when stop port. > + */ > +uint8_t no_flow_flush = 0; /* do flow flush by default */ > + > /* > * Avoids to check link status when starting/stopping a port. > */ > @@ -3246,7 +3251,7 @@ stop_port(portid_t pid) > } > } > > - if (port->flow_list) > + if (port->flow_list && !no_flow_flush) > port_flow_flush(pi); In case stop_port() is called through pmd_test_exit(), should the flag be disabled for flush to happen. > > ret = eth_dev_stop_mp(pi); > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h > index 7d24d25970..ab4733522d 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -476,6 +476,7 @@ extern uint8_t numa_support; /**< set by "--numa" parameter */ > extern uint16_t port_topology; /**< set by "--port-topology" parameter */ > extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */ > extern uint8_t flow_isolate_all; /**< set by "--flow-isolate-all */ > +extern uint8_t no_flow_flush; /**< set by "--disable-flow-flush" parameter */ > extern uint8_t mp_alloc_type; > /**< set by "--mp-anon" or "--mp-alloc" parameter */ > extern uint32_t eth_link_speed; > diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst > index 074f910fc9..3ec3d4f5e6 100644 > --- a/doc/guides/testpmd_app_ug/run_app.rst > +++ b/doc/guides/testpmd_app_ug/run_app.rst > @@ -436,6 +436,11 @@ The command line options are: > > Ports that do not support this mode are automatically discarded. > > +* ``--disable-flow-flush`` > + > + Disable port flow flush when stop port. This allows testing keep flow rules > + or shared flow objects across restart. > + > * ``--tx-offloads=0xXXXXXXXX`` > > Set the hexadecimal bitmask of TX queue offloads. [-- Attachment #2: Type: text/html, Size: 4760 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2023-01-23 15:01 ` Singh, Aman Deep @ 2023-01-25 18:34 ` Ferruh Yigit 0 siblings, 0 replies; 10+ messages in thread From: Ferruh Yigit @ 2023-01-25 18:34 UTC (permalink / raw) To: Singh, Aman Deep, Chengwen Feng, thomas, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, yuying.zhang On 1/23/2023 3:01 PM, Singh, Aman Deep wrote: > > On 12/15/2022 7:11 AM, Chengwen Feng wrote: >> This patch adds "--disable-flow-flush" parameter, which could used to >> disable port flow flush when stop port. It allows testing keep flow >> rules or shared flow objects across restart. >> >> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> >> --- >> app/test-pmd/parameters.c | 4 ++++ >> app/test-pmd/testpmd.c | 7 ++++++- >> app/test-pmd/testpmd.h | 1 + >> doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ >> 4 files changed, 16 insertions(+), 1 deletion(-) >> >> diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c >> index d597c209ba..e734ad9a02 100644 >> --- a/app/test-pmd/parameters.c >> +++ b/app/test-pmd/parameters.c >> @@ -175,6 +175,7 @@ usage(char* progname) >> "disable print of designated event or all of them.\n"); >> printf(" --flow-isolate-all: " >> "requests flow API isolated mode on all ports at initialization time.\n"); >> + printf(" --disable-flow-flush: disable port flow flush when stop port.\n"); >> printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX queue offloads\n"); >> printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX queue offloads\n"); >> printf(" --hot-plug: enable hot plug for device.\n"); >> @@ -667,6 +668,7 @@ launch_args_parse(int argc, char** argv) >> { "rxfreet", 1, 0, 0 }, >> { "no-flush-rx", 0, 0, 0 }, >> { "flow-isolate-all", 0, 0, 0 }, >> + { "disable-flow-flush", 0, 0, 0 }, >> { "rxoffs", 1, 0, 0 }, >> { "rxpkts", 1, 0, 0 }, >> { "rxhdrs", 1, 0, 0 }, >> @@ -1330,6 +1332,8 @@ launch_args_parse(int argc, char** argv) >> rmv_interrupt = 0; >> if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) >> flow_isolate_all = 1; >> + if (!strcmp(lgopts[opt_idx].name, "disable-flow-flush")) >> + no_flow_flush = 1; >> if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { >> char *end = NULL; >> n = strtoull(optarg, &end, 16); >> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c >> index 134d79a555..ea78f8982d 100644 >> --- a/app/test-pmd/testpmd.c >> +++ b/app/test-pmd/testpmd.c >> @@ -383,6 +383,11 @@ uint8_t no_flush_rx = 0; /* flush by default */ >> */ >> uint8_t flow_isolate_all; >> >> +/* >> + * Disable port flow flush when stop port. >> + */ >> +uint8_t no_flow_flush = 0; /* do flow flush by default */ >> + >> /* >> * Avoids to check link status when starting/stopping a port. >> */ >> @@ -3246,7 +3251,7 @@ stop_port(portid_t pid) >> } >> } >> >> - if (port->flow_list) >> + if (port->flow_list && !no_flow_flush) >> port_flow_flush(pi); > > In case stop_port() is called through pmd_test_exit(), should the flag > be disabled for flush to happen. > In case of 'pmd_test_exit()', 'close_port()' will be called after port stop which will make port unusable anyway. As long as there is no memory leak in that path, I think no need to for flow flush. @Chengwen, can you please check and confirm there won't be any resource leak in case of 'no_flow_flush' is set and testpmd terminated via 'pmd_test_exit()' call? And rest looks good to me. >> >> ret = eth_dev_stop_mp(pi); >> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h >> index 7d24d25970..ab4733522d 100644 >> --- a/app/test-pmd/testpmd.h >> +++ b/app/test-pmd/testpmd.h >> @@ -476,6 +476,7 @@ extern uint8_t numa_support; /**< set by "--numa" parameter */ >> extern uint16_t port_topology; /**< set by "--port-topology" parameter */ >> extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */ >> extern uint8_t flow_isolate_all; /**< set by "--flow-isolate-all */ >> +extern uint8_t no_flow_flush; /**< set by "--disable-flow-flush" parameter */ >> extern uint8_t mp_alloc_type; >> /**< set by "--mp-anon" or "--mp-alloc" parameter */ >> extern uint32_t eth_link_speed; >> diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst >> index 074f910fc9..3ec3d4f5e6 100644 >> --- a/doc/guides/testpmd_app_ug/run_app.rst >> +++ b/doc/guides/testpmd_app_ug/run_app.rst >> @@ -436,6 +436,11 @@ The command line options are: >> >> Ports that do not support this mode are automatically discarded. >> >> +* ``--disable-flow-flush`` >> + >> + Disable port flow flush when stop port. This allows testing keep flow rules >> + or shared flow objects across restart. >> + >> * ``--tx-offloads=0xXXXXXXXX`` >> >> Set the hexadecimal bitmask of TX queue offloads. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2022-12-15 1:41 ` [PATCH 2/2] app/testpmd: add disable-flow-flush parameter Chengwen Feng 2023-01-23 15:01 ` Singh, Aman Deep @ 2023-01-25 18:37 ` Ferruh Yigit 2023-01-26 12:29 ` Ori Kam 2023-01-31 7:55 ` Singh, Aman Deep 1 sibling, 2 replies; 10+ messages in thread From: Ferruh Yigit @ 2023-01-25 18:37 UTC (permalink / raw) To: Chengwen Feng, thomas, andrew.rybchenko, Ori Kam, aman.deep.singh Cc: dev, liudongdong3, yisen.zhuang, yuying.zhang On 12/15/2022 1:41 AM, Chengwen Feng wrote: > This patch adds "--disable-flow-flush" parameter, which could used to > disable port flow flush when stop port. It allows testing keep flow > rules or shared flow objects across restart. > > Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> +cc Ori I am for proceeding with this patch unless there is objection from Aman & Ori. > --- > app/test-pmd/parameters.c | 4 ++++ > app/test-pmd/testpmd.c | 7 ++++++- > app/test-pmd/testpmd.h | 1 + > doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ > 4 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c > index d597c209ba..e734ad9a02 100644 > --- a/app/test-pmd/parameters.c > +++ b/app/test-pmd/parameters.c > @@ -175,6 +175,7 @@ usage(char* progname) > "disable print of designated event or all of them.\n"); > printf(" --flow-isolate-all: " > "requests flow API isolated mode on all ports at initialization time.\n"); > + printf(" --disable-flow-flush: disable port flow flush when stop port.\n"); > printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX queue offloads\n"); > printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX queue offloads\n"); > printf(" --hot-plug: enable hot plug for device.\n"); > @@ -667,6 +668,7 @@ launch_args_parse(int argc, char** argv) > { "rxfreet", 1, 0, 0 }, > { "no-flush-rx", 0, 0, 0 }, > { "flow-isolate-all", 0, 0, 0 }, > + { "disable-flow-flush", 0, 0, 0 }, > { "rxoffs", 1, 0, 0 }, > { "rxpkts", 1, 0, 0 }, > { "rxhdrs", 1, 0, 0 }, > @@ -1330,6 +1332,8 @@ launch_args_parse(int argc, char** argv) > rmv_interrupt = 0; > if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) > flow_isolate_all = 1; > + if (!strcmp(lgopts[opt_idx].name, "disable-flow-flush")) > + no_flow_flush = 1; > if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { > char *end = NULL; > n = strtoull(optarg, &end, 16); > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 134d79a555..ea78f8982d 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -383,6 +383,11 @@ uint8_t no_flush_rx = 0; /* flush by default */ > */ > uint8_t flow_isolate_all; > > +/* > + * Disable port flow flush when stop port. > + */ > +uint8_t no_flow_flush = 0; /* do flow flush by default */ > + > /* > * Avoids to check link status when starting/stopping a port. > */ > @@ -3246,7 +3251,7 @@ stop_port(portid_t pid) > } > } > > - if (port->flow_list) > + if (port->flow_list && !no_flow_flush) > port_flow_flush(pi); > > ret = eth_dev_stop_mp(pi); > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h > index 7d24d25970..ab4733522d 100644 > --- a/app/test-pmd/testpmd.h > +++ b/app/test-pmd/testpmd.h > @@ -476,6 +476,7 @@ extern uint8_t numa_support; /**< set by "--numa" parameter */ > extern uint16_t port_topology; /**< set by "--port-topology" parameter */ > extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */ > extern uint8_t flow_isolate_all; /**< set by "--flow-isolate-all */ > +extern uint8_t no_flow_flush; /**< set by "--disable-flow-flush" parameter */ > extern uint8_t mp_alloc_type; > /**< set by "--mp-anon" or "--mp-alloc" parameter */ > extern uint32_t eth_link_speed; > diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst > index 074f910fc9..3ec3d4f5e6 100644 > --- a/doc/guides/testpmd_app_ug/run_app.rst > +++ b/doc/guides/testpmd_app_ug/run_app.rst > @@ -436,6 +436,11 @@ The command line options are: > > Ports that do not support this mode are automatically discarded. > > +* ``--disable-flow-flush`` > + > + Disable port flow flush when stop port. This allows testing keep flow rules > + or shared flow objects across restart. > + > * ``--tx-offloads=0xXXXXXXXX`` > > Set the hexadecimal bitmask of TX queue offloads. ^ permalink raw reply [flat|nested] 10+ messages in thread
* RE: [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2023-01-25 18:37 ` Ferruh Yigit @ 2023-01-26 12:29 ` Ori Kam 2023-01-31 7:55 ` Singh, Aman Deep 1 sibling, 0 replies; 10+ messages in thread From: Ori Kam @ 2023-01-26 12:29 UTC (permalink / raw) To: Ferruh Yigit, Chengwen Feng, NBU-Contact-Thomas Monjalon (EXTERNAL), andrew.rybchenko, aman.deep.singh Cc: dev, liudongdong3, yisen.zhuang, yuying.zhang Hi, > -----Original Message----- > From: Ferruh Yigit <ferruh.yigit@amd.com> > Sent: Wednesday, 25 January 2023 20:38 > > On 12/15/2022 1:41 AM, Chengwen Feng wrote: > > This patch adds "--disable-flow-flush" parameter, which could used to > > disable port flow flush when stop port. It allows testing keep flow > > rules or shared flow objects across restart. > > > > Signed-off-by: Chengwen Feng <fengchengwen@huawei.com> > > +cc Ori > > I am for proceeding with this patch unless there is objection from Aman > & Ori. > > > --- > > app/test-pmd/parameters.c | 4 ++++ > > app/test-pmd/testpmd.c | 7 ++++++- > > app/test-pmd/testpmd.h | 1 + > > doc/guides/testpmd_app_ug/run_app.rst | 5 +++++ > > 4 files changed, 16 insertions(+), 1 deletion(-) > > > > diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c > > index d597c209ba..e734ad9a02 100644 > > --- a/app/test-pmd/parameters.c > > +++ b/app/test-pmd/parameters.c > > @@ -175,6 +175,7 @@ usage(char* progname) > > "disable print of designated event or all of them.\n"); > > printf(" --flow-isolate-all: " > > "requests flow API isolated mode on all ports at initialization > time.\n"); > > + printf(" --disable-flow-flush: disable port flow flush when stop > port.\n"); > > printf(" --tx-offloads=0xXXXXXXXX: hexadecimal bitmask of TX > queue offloads\n"); > > printf(" --rx-offloads=0xXXXXXXXX: hexadecimal bitmask of RX > queue offloads\n"); > > printf(" --hot-plug: enable hot plug for device.\n"); > > @@ -667,6 +668,7 @@ launch_args_parse(int argc, char** argv) > > { "rxfreet", 1, 0, 0 }, > > { "no-flush-rx", 0, 0, 0 }, > > { "flow-isolate-all", 0, 0, 0 }, > > + { "disable-flow-flush", 0, 0, 0 }, > > { "rxoffs", 1, 0, 0 }, > > { "rxpkts", 1, 0, 0 }, > > { "rxhdrs", 1, 0, 0 }, > > @@ -1330,6 +1332,8 @@ launch_args_parse(int argc, char** argv) > > rmv_interrupt = 0; > > if (!strcmp(lgopts[opt_idx].name, "flow-isolate-all")) > > flow_isolate_all = 1; > > + if (!strcmp(lgopts[opt_idx].name, "disable-flow- > flush")) > > + no_flow_flush = 1; > > if (!strcmp(lgopts[opt_idx].name, "tx-offloads")) { > > char *end = NULL; > > n = strtoull(optarg, &end, 16); > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > > index 134d79a555..ea78f8982d 100644 > > --- a/app/test-pmd/testpmd.c > > +++ b/app/test-pmd/testpmd.c > > @@ -383,6 +383,11 @@ uint8_t no_flush_rx = 0; /* flush by default */ > > */ > > uint8_t flow_isolate_all; > > > > +/* > > + * Disable port flow flush when stop port. > > + */ > > +uint8_t no_flow_flush = 0; /* do flow flush by default */ > > + > > /* > > * Avoids to check link status when starting/stopping a port. > > */ > > @@ -3246,7 +3251,7 @@ stop_port(portid_t pid) > > } > > } > > > > - if (port->flow_list) > > + if (port->flow_list && !no_flow_flush) > > port_flow_flush(pi); > > > > ret = eth_dev_stop_mp(pi); > > diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h > > index 7d24d25970..ab4733522d 100644 > > --- a/app/test-pmd/testpmd.h > > +++ b/app/test-pmd/testpmd.h > > @@ -476,6 +476,7 @@ extern uint8_t numa_support; /**< set by "-- > numa" parameter */ > > extern uint16_t port_topology; /**< set by "--port-topology" parameter > */ > > extern uint8_t no_flush_rx; /**<set by "--no-flush-rx" parameter */ > > extern uint8_t flow_isolate_all; /**< set by "--flow-isolate-all */ > > +extern uint8_t no_flow_flush; /**< set by "--disable-flow-flush" > parameter */ > > extern uint8_t mp_alloc_type; > > /**< set by "--mp-anon" or "--mp-alloc" parameter */ > > extern uint32_t eth_link_speed; > > diff --git a/doc/guides/testpmd_app_ug/run_app.rst > b/doc/guides/testpmd_app_ug/run_app.rst > > index 074f910fc9..3ec3d4f5e6 100644 > > --- a/doc/guides/testpmd_app_ug/run_app.rst > > +++ b/doc/guides/testpmd_app_ug/run_app.rst > > @@ -436,6 +436,11 @@ The command line options are: > > > > Ports that do not support this mode are automatically discarded. > > > > +* ``--disable-flow-flush`` > > + > > + Disable port flow flush when stop port. This allows testing keep flow > rules > > + or shared flow objects across restart. > > + > > * ``--tx-offloads=0xXXXXXXXX`` > > > > Set the hexadecimal bitmask of TX queue offloads. Acked-by: Ori Kam <orika@nvidia.com> Best, Ori ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 2/2] app/testpmd: add disable-flow-flush parameter 2023-01-25 18:37 ` Ferruh Yigit 2023-01-26 12:29 ` Ori Kam @ 2023-01-31 7:55 ` Singh, Aman Deep 1 sibling, 0 replies; 10+ messages in thread From: Singh, Aman Deep @ 2023-01-31 7:55 UTC (permalink / raw) To: Ferruh Yigit, Chengwen Feng, thomas, andrew.rybchenko, Ori Kam Cc: dev, liudongdong3, yisen.zhuang, yuying.zhang [-- Attachment #1: Type: text/plain, Size: 399 bytes --] On 1/26/2023 12:07 AM, Ferruh Yigit wrote: > On 12/15/2022 1:41 AM, Chengwen Feng wrote: >> This patch adds "--disable-flow-flush" parameter, which could used to >> disable port flow flush when stop port. It allows testing keep flow >> rules or shared flow objects across restart. >> >> Signed-off-by: Chengwen Feng<fengchengwen@huawei.com> Acked-by: Aman Singh<aman.deep.singh@intel.com> <snip> [-- Attachment #2: Type: text/html, Size: 1046 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/2] net/hns3: support rule keep capability 2022-12-15 1:41 [PATCH 0/2] net/hns3: support rule keep capability Chengwen Feng 2022-12-15 1:41 ` [PATCH 1/2] net/hns3: declare " Chengwen Feng 2022-12-15 1:41 ` [PATCH 2/2] app/testpmd: add disable-flow-flush parameter Chengwen Feng @ 2023-01-31 17:05 ` Ferruh Yigit 2 siblings, 0 replies; 10+ messages in thread From: Ferruh Yigit @ 2023-01-31 17:05 UTC (permalink / raw) To: Chengwen Feng, thomas, andrew.rybchenko Cc: dev, liudongdong3, yisen.zhuang, aman.deep.singh, yuying.zhang On 12/15/2022 1:41 AM, Chengwen Feng wrote: > This patch declare the hns3 PMD supports rule keep capability, and also > add "--disable-flow-flush" parameter to test for such capability. > > Chengwen Feng (2): > net/hns3: declare support rule keep capability > app/testpmd: add disable-flow-flush parameter Series applied to dpdk-next-net/main, thanks. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-01-31 17:05 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-12-15 1:41 [PATCH 0/2] net/hns3: support rule keep capability Chengwen Feng 2022-12-15 1:41 ` [PATCH 1/2] net/hns3: declare " Chengwen Feng 2022-12-15 1:56 ` Dongdong Liu 2022-12-15 1:41 ` [PATCH 2/2] app/testpmd: add disable-flow-flush parameter Chengwen Feng 2023-01-23 15:01 ` Singh, Aman Deep 2023-01-25 18:34 ` Ferruh Yigit 2023-01-25 18:37 ` Ferruh Yigit 2023-01-26 12:29 ` Ori Kam 2023-01-31 7:55 ` Singh, Aman Deep 2023-01-31 17:05 ` [PATCH 0/2] net/hns3: support rule keep capability Ferruh Yigit
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).