On 11/26/20 7:43 PM, Gregory Etelson wrote: > According to RTE flow user guide, PMD will not keep flow rules after > port stop. Application resources that refer to flow rules become > obsolete after port stop and must not be used. > Testpmd maintains linked list of active flows for each port. Entries in > that list are allocated dynamically and must be explicitly released to > prevent memory leak. > The patch releases testpmd port flow_list that holds remaining flows > before port is stopped. > > Cc: sta...@dpdk.org > > Signed-off-by: Gregory Etelson <getel...@nvidia.com> > --- > app/test-pmd/testpmd.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c > index 33fc0fddf5..0bb192b2f5 100644 > --- a/app/test-pmd/testpmd.c > +++ b/app/test-pmd/testpmd.c > @@ -2806,6 +2806,9 @@ stop_port(portid_t pid) > } > } > > + if (port->flow_list) > + port_flow_flush(pi); > + > if (rte_eth_dev_stop(pi) != 0) > RTE_LOG(ERR, EAL, "rte_eth_dev_stop failed for port > %u\n", > pi); >
port_flow_flush() does rte_flow_flush() which is not strictly required. Description sounds like we should cleanup testpmd lists only.