[dpdk-dev] [RFC v2] net/mlx5: support new naming scheme for representors

Dekel Peled dekelp at mellanox.com
Sun Mar 3 08:14:07 CET 2019


In current kernel implementation, the physical port name for representors is a numeric string (i.e. '0', '1', etc.).



Kernel patch [1] implements an updated scheme for naming of representors ports.

The new scheme gives a unique name for each port using the PF ID and the VF ID.

Uplink representors are named 'p0', 'p1', etc.

VF representors are named 'pf0vf0', 'pf0vf1', 'pf1vf0', 'pf1vf1', etc.



This RFC describes the suggested changes to MLX5 PMD, in order to support the new naming scheme, while maintaining support of the existing naming scheme.



During PCI probing, MLX5 PMD uses Netlink to query the kernel for switch information.

The response is processed by mlx5_nl_switch_info_cb().

If this query fails, MLX5 PMD attempts to use sysfs to query for switch information.

This query is implemented in mlx5_sysfs_switch_info();



The following section describes the suggested changes by pseudocode:

mlx5_nl_switch_info_cb()

{

                Parse the netlink response message.

                If found type IFLA_PHYS_PORT_NAME {

                                Convert payload string to number, store as port-name.

                                /* START NEW CODE */

                                If convert failed {

                                                If found substring "vf" in payload string {

                                                                Convert the remainder of payload string to number

                                                                Store as port-name.

                                                }

                                }

                                /* END OF NEW CODE */

                }

}



mlx5_sysfs_switch_info()

{

                Convert ifindex to ifname.

                Open file /sys/class/net/<ifname>/phys_port_name

                Try to convert file contents to number, if succeeded store as port-name.

                /* START NEW CODE */

                If convert failed {

                                Try to convert file contents to 'pf'/number/'vf'/number.

                                If succeeded, store last number as port-name.

                }

                /* END OF NEW CODE */

}



[1] https://github.com/torvalds/linux/commit/c12ecc2305648822970002871230979359edb2c0



---

v2: Use public link to kernel patch.

---



Signed-off-by: Dekel Peled <dekelp at mellanox.com<mailto:dekelp at mellanox.com>>




More information about the dev mailing list