Thread (18 messages) 18 messages, 6 authors, 2025-02-07

Re: [PATCH rdma-next 1/1] RDMA/mana_ib: Set correct device into ib

From: Konstantin Taranov <kotaranov@microsoft.com>
Date: 2024-06-26 18:19:45
Also in: linux-rdma

quoted
quoted
quoted
On Wed, Jun 26, 2024 at 09:05:05AM +0000, Konstantin Taranov wrote:
quoted
quoted
quoted
When mc->ports[0] is not slave, use it in the set_netdev.
When mana is used in netvsc, the stored net devices in mana
are slaves and GIDs should be taken from their master devices.
In the baremetal case, the mc->ports devices will not be slaves.
I wonder, why do you have "... | IFF_SLAVE" in
__netvsc_vf_setup() in a first place? Isn't IFF_SLAVE is supposed to
be set by bond driver?
quoted
quoted
quoted
quoted
quoted
I guess it is just a valid use of the IFF_SLAVE bit. In the bond
case it is also set as a BOND netdev. The IFF_SLAVE helps to show
users that another master
quoted
quoted
quoted
quoted
netdev should be used for networking. But I am not an expert in
netvsc.
quoted
quoted
quoted
The thing is that netvsc is virtual device like many others, but
it is the only one who uses IFF_SLAVE bit. The comment around that
bit says "slave of a load balancer.", which is not the case
according to the Hyper-V documentation.

You will need to get Ack from netdev maintainers to rely on
IFF_SLAVE bit in the way you are relying on it now.
This is used to tell userspace tools to not interact directly with the device.
For example, it is used when VF is connected to netvsc device.
It prevents things like IPv6 local address, and Network Manager won't
modify device.
quoted
You described how hyper-v uses it, but I'm interested to get
acknowledgment that it is a valid use case for IFF_SLAVE, despite sentence
written in the comment.

There is no documented semantics around any of the IF flags, only historical
precedent used by bond, team and bridge drivers. Initially Hyper-V VF used
bonding but it was impossibly difficult to make this work across all versions of
Linux, so transparent VF support was added instead. Ideally, the VF device
could be hidden from userspace but that required more kernel modifications
than would be accepted.
Thanks Stephen for the explanation!

I am also CCing Haiyang, who maintains Hyper-V netvsc.

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help