26/10/2021 17:47, Ivan Malov: > Hi David, > > On 26/10/2021 17:46, David Marchand wrote: > > On Thu, Oct 14, 2021 at 5:22 AM Ivan Malov <ivan.ma...@oktetlabs.ru> wrote: > >> > >> Not all DPDK ports in a given switching domain may have the > >> privilege to manage "transfer" flows. Add an API to find a > >> port with sufficient privileges by any port in the domain. > >> > >> Signed-off-by: Ivan Malov <ivan.ma...@oktetlabs.ru> > >> Reviewed-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru> > >> Acked-by: Ori Kam <or...@nvidia.com> > >> --- > >> Patch series [1] has reworked support for "transfer" flows. > >> This allows to elaborate on the idea which first appeared > >> in RFC [2]. Hence the patch in question. > >> > >> net/sfc driver is going to support the new API. The > >> corresponding patch is already in progress and will > >> be provided in the course of this release cycle. > >> > >> [1] https://patches.dpdk.org/project/dpdk/list/?series=19608 > >> [2] https://patches.dpdk.org/project/dpdk/list/?series=18737 > >> > > > > [snip] > > > >> @@ -568,6 +568,25 @@ eth_rx_metadata_negotiate_mp(uint16_t port_id) > >> } > >> } > >> > >> +static void > >> +flow_pick_transfer_proxy_mp(uint16_t port_id) > >> +{ > >> + struct rte_port *port = &ports[port_id]; > >> + int ret; > >> + > >> + port->flow_transfer_proxy = port_id; > >> + > >> + if (!is_proc_primary()) > >> + return; > >> + > >> + ret = rte_flow_pick_transfer_proxy(port_id, > >> &port->flow_transfer_proxy, > >> + NULL); > >> + if (ret != 0) { > >> + fprintf(stderr, "Error picking flow transfer proxy for > >> port %u: %s - ignore\n", > >> + port_id, rte_strerror(-ret)); > >> + } > >> +} > > > > I did not follow this subject, but I find it odd to get a warning > > regardless of what is done in testpmd. > > Like simply running a forwarding test with null pmd, I get: > > The API is meant to avoid returning error when the PMD does not support > the corresponding method. However, it has to return error when the PMD > does not support flow API at all (rte_flow_ops_get() failure). > > I guess, this is exactly what happens in your case. net/null does not > support "flow_ops_get", and the API in question forwards error > from rte_flow_ops_get(). > > Non-dummy PMDs should not trigger the error you see. > > > > > $ ./devtools/test-null.sh > > EAL: Detected CPU lcores: 8 > > EAL: Detected NUMA nodes: 1 > > EAL: Detected static linkage of DPDK > > EAL: Multi-process socket /run/user/114840/dpdk/rte/mp_socket > > EAL: Selected IOVA mode 'VA' > > Interactive-mode selected > > Auto-start selected > > > > vvvv > > Error picking flow transfer proxy for port 0: Function not implemented - > > ignore > > Error picking flow transfer proxy for port 1: Function not implemented - > > ignore > > ^^^^
We should avoid such meaningless error message. Please Ivan what do you suggest?