RE: [PATCH 0/3] RDMA net namespace

Parav Pandit
2022-10-27T14:06:26Z

> From: yanjun.zhu@linux.dev <yanjun.zhu@linux.dev>
> Sent: Thursday, October 27, 2022 2:02 AM
> To: Parav Pandit <parav@nvidia.com>; dust.li@linux.alibaba.com; Zhu Yanjun
> <yanjun.zhu@intel.com>; jgg@ziepe.ca; leon@kernel.org; linux-
> rdma@vger.kernel.org
> Subject: Re: [PATCH 0/3] RDMA net namespace
>
> October 27, 2022 11:48 AM, "Parav Pandit" <parav@nvidia.com> wrote:
>
> >> From: yanjun.zhu@linux.dev <yanjun.zhu@linux.dev>
> >> Sent: Wednesday, October 26, 2022 11:39 PM
> >>
> >> October 27, 2022 11:21 AM, "Parav Pandit" <parav@nvidia.com> wrote:
> >>
> >> From: yanjun.zhu@linux.dev <yanjun.zhu@linux.dev>
> >> Sent: Wednesday, October 26, 2022 11:17 PM
> >>
> >> October 27, 2022 11:10 AM, "Parav Pandit" <parav@nvidia.com> wrote:
> >>
> >> From: yanjun.zhu@linux.dev <yanjun.zhu@linux.dev>
> >> Sent: Wednesday, October 26, 2022 11:08 PM
> >>
> >> October 27, 2022 11:01 AM, "Parav Pandit" <parav@nvidia.com> wrote:
> >>
> >> From: Dust Li <dust.li@linux.alibaba.com>
> >> Sent: Wednesday, October 26, 2022 10:31 PM
> >>
> >> 2. else we are in
> >> exclusive mode. When the corresponding netdevice of the RoCE or iWarp
> >> device is moved from one net namespace to another, we move the
> RDMA
> >> device into that net namespace
> >>
> >> What do you think ?
> >>
> >> No. one device is not supposed to move other devices.
> >> Every device is independent that should be moved by explicit command.
> >>
> >> Can you show us where we can find this rule "Every device is
> >> independent that should be moved by explicit command."?
> >>
> >> Also changes like above breaks the existing orchestration, it no-go.
> >>
>
> And I do not find the rule that you mentioned.
>
> > There is no Linux kernel subsystem or module to my knowledge that
> > attempt to move multiple devices using single command.
> > When user executes command , user explicitly give device name "foo",
> only "foo" should move.
> > Other loosely coupled device whose name is not specified in the ip
> > command which has a different life cycle should not move along with "foo".
> >
> > You are trying to define the new rule that breaks the existing ABI and
> > the iproute2 (ip and rdma) command semantics.
> > It is implicit that when command is issued on device A, operate on
> > device A. This is part of
> > iproute2 functioning.
>
> About iproute2, I read this link
> https://wiki.linuxfoundation.org/networking/iproute2#documentation
>
> There is no rules that you mentioned.
>
> This rule is defined explicitly or implicitly?
>
Wiki pages links are not the documentation.
Man pages of the iproute2 is documentation of iproute2 at [1] and [2].

[1] https://man7.org/linux/man-pages/man8/rdma-system.8.html
[2] https://man7.org/linux/man-pages/man8/rdma-dev.8.html

As I explained, the explicit rule that you are looking for that say "when I modify device foo, it can also modifies the device bar".
Because no part of the Linux kernel does that usually, unless the device is representor/control object etc or has parent/child relationship.
It is fundamental to a command definition, not a matter of explicit or implicit.

And clearly in this discussion foo and bar are loosely coupled network devices, one is not controlling the other.

Also, a rdma device is attached to multiple net devices, primary and other upper devices such as vlan, macvlan etc.