Thread (3 messages) flat view 3 messages, 2 authors, 2d ago

Re: [RFC] ethdev: simplify representor info get API

From: Dariusz Sosnowski <hidden>
Date: 2026-09-07 15:31:50

On Mon, Aug 31, 2026 at 09:46:54AM -0700, Stephen Hemminger wrote:
On Mon, 31 Aug 2026 18:29:05 +0200
Dariusz Sosnowski [off-list ref] wrote:
quoted
* Background on rte_eth_representor_info_get()

rte_eth_representor_info_get() experimental function was added
to ethdev public API in 21.05 DPDK release [1].
You know the API shouldn't have stayed experimental so long.
There is no good reason for API to stay experimental across multiple LTS releases!

The code would be much simpler if you use sentinel values rather than
carrying around all the XX_valid flag values.

With int fields and -1 (or a named RTE_ETH_REPRESENTOR_UNSPEC),
 the whole comparator collapses to something like:


static bool field_match(int a, int b)
{
	return a == -1 || b == -1 || a == b;
}

return field_match(info.controller, other->controller) &&
       field_match(info.pf, other->pf) &&
       info.type == other->type &&
       (info.type != RTE_ETH_REPRESENTOR_VF || field_match(info.vf, other->vf)) &&
Ack, I can apply that in the next version of the patches.

My only worry would be that mlx5 DPDK driver gets these values
(controller numbers, VF/SF numbers) from phys_port_name
exported through sysfs.
phys_port_name is based on devlink port attributes [1] with
the following types:

- controller number - u32
- port number - u32
    - Used for physical port representors in mlx5 DPDK driver.
      These are of type RTE_ETH_REPRESENTOR_PF.
- VF number - u16
- SF number - u32

Using int fields would not cover values
which can be returned by kernel.

What do you think about going with int64_t for these fields?

[1]: https://github.com/torvalds/linux/blob/v7.2/include/uapi/linux/devlink.h#L412
Relevant attributes are:
- DEVLINK_ATTR_PORT_CONTROLLER_NUMBER
- DEVLINK_ATTR_PORT_NUMBER
- DEVLINK_ATTR_PORT_PCI_PF_NUMBER
- DEVLINK_ATTR_PORT_PCI_VF_NUMBER
- DEVLINK_ATTR_PORT_PCI_SF_NUMBER
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help