linux-rdma.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline
@ 2021-03-26  1:27 Zhu Yanjun
  2021-04-08 18:33 ` Jason Gunthorpe
  0 siblings, 1 reply; 5+ messages in thread
From: Zhu Yanjun @ 2021-03-26  1:27 UTC (permalink / raw)
  To: dledford, jgg, linux-rdma, leon; +Cc: Zhu Yanjun, Yi Zhang, Leon Romanovsky

From: Zhu Yanjun <zyjzyj2000@gmail.com>

When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
in the stack. As such, the operations of ipv6 in RXE will fail.
So ipv6 features in RXE should also be disabled in RXE.

Fixes: 8700e3e7c4857 ("Soft RoCE driver")
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
---
V2->V3: Remove print message
V1->V2: Modify the pr_info messages
---
---
 drivers/infiniband/sw/rxe/rxe_net.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
index 01662727dca0..3b8ed007e8af 100644
--- a/drivers/infiniband/sw/rxe/rxe_net.c
+++ b/drivers/infiniband/sw/rxe/rxe_net.c
@@ -72,6 +72,9 @@ static struct dst_entry *rxe_find_route6(struct net_device *ndev,
 	struct dst_entry *ndst;
 	struct flowi6 fl6 = { { 0 } };
 
+	if (!ipv6_mod_enabled())
+		return NULL;
+
 	memset(&fl6, 0, sizeof(fl6));
 	fl6.flowi6_oif = ndev->ifindex;
 	memcpy(&fl6.saddr, saddr, sizeof(*saddr));
@@ -616,6 +619,8 @@ static int rxe_net_ipv4_init(void)
 static int rxe_net_ipv6_init(void)
 {
 #if IS_ENABLED(CONFIG_IPV6)
+	if (!ipv6_mod_enabled())
+		return 0;
 
 	recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
 						htons(ROCE_V2_UDP_DPORT), true);
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline
  2021-03-26  1:27 [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline Zhu Yanjun
@ 2021-04-08 18:33 ` Jason Gunthorpe
  2021-04-10  2:36   ` Zhu Yanjun
  0 siblings, 1 reply; 5+ messages in thread
From: Jason Gunthorpe @ 2021-04-08 18:33 UTC (permalink / raw)
  To: Zhu Yanjun
  Cc: dledford, linux-rdma, leon, Zhu Yanjun, Yi Zhang, Leon Romanovsky

On Thu, Mar 25, 2021 at 09:27:23PM -0400, Zhu Yanjun wrote:
> From: Zhu Yanjun <zyjzyj2000@gmail.com>
> 
> When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
> in the stack. As such, the operations of ipv6 in RXE will fail.
> So ipv6 features in RXE should also be disabled in RXE.
> 
> Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> Reported-by: Yi Zhang <yi.zhang@redhat.com>
> Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> Tested-by: Yi Zhang <yi.zhang@redhat.com>
> V2->V3: Remove print message
> V1->V2: Modify the pr_info messages
>  drivers/infiniband/sw/rxe/rxe_net.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> index 01662727dca0..3b8ed007e8af 100644
> +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> @@ -72,6 +72,9 @@ static struct dst_entry *rxe_find_route6(struct net_device *ndev,
>  	struct dst_entry *ndst;
>  	struct flowi6 fl6 = { { 0 } };
>  
> +	if (!ipv6_mod_enabled())
> +		return NULL;
> +
>  	memset(&fl6, 0, sizeof(fl6));
>  	fl6.flowi6_oif = ndev->ifindex;
>  	memcpy(&fl6.saddr, saddr, sizeof(*saddr));

What is this actually fixing?

ndst = ipv6_stub->ipv6_dst_lookup_flow() will return an error if the
ipv6 support is not loaded so why do we need more tests?

> @@ -616,6 +619,8 @@ static int rxe_net_ipv4_init(void)
>  static int rxe_net_ipv6_init(void)
>  {
>  #if IS_ENABLED(CONFIG_IPV6)
> +	if (!ipv6_mod_enabled())
> +		return 0;
>  
>  	recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
>  						htons(ROCE_V2_UDP_DPORT), true);

rxe_setup_udp_tunnel() should already fail naturally because the V6
socket won't be created

What is the actual symptom this patch is trying to address?

Jason

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline
  2021-04-10  2:36   ` Zhu Yanjun
@ 2021-04-09 13:37     ` Jason Gunthorpe
  2021-04-12  6:34       ` Zhu Yanjun
  0 siblings, 1 reply; 5+ messages in thread
From: Jason Gunthorpe @ 2021-04-09 13:37 UTC (permalink / raw)
  To: Zhu Yanjun
  Cc: Zhu Yanjun, Doug Ledford, RDMA mailing list, Leon Romanovsky,
	Yi Zhang, Leon Romanovsky

On Fri, Apr 09, 2021 at 10:36:42PM -0400, Zhu Yanjun wrote:

> > What is the actual symptom this patch is trying to address?
> 
> This patch is try to fix the problem in the link
> https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t

you should ignore the -97 return code when creating the UDP v6 socket

Jason

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline
  2021-04-08 18:33 ` Jason Gunthorpe
@ 2021-04-10  2:36   ` Zhu Yanjun
  2021-04-09 13:37     ` Jason Gunthorpe
  0 siblings, 1 reply; 5+ messages in thread
From: Zhu Yanjun @ 2021-04-10  2:36 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Zhu Yanjun, Doug Ledford, RDMA mailing list, Leon Romanovsky,
	Yi Zhang, Leon Romanovsky

On Thu, Apr 8, 2021 at 2:34 PM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Thu, Mar 25, 2021 at 09:27:23PM -0400, Zhu Yanjun wrote:
> > From: Zhu Yanjun <zyjzyj2000@gmail.com>
> >
> > When ipv6.disable=1 is set in cmdline, ipv6 is actually disabled
> > in the stack. As such, the operations of ipv6 in RXE will fail.
> > So ipv6 features in RXE should also be disabled in RXE.
> >
> > Fixes: 8700e3e7c4857 ("Soft RoCE driver")
> > Reported-by: Yi Zhang <yi.zhang@redhat.com>
> > Signed-off-by: Zhu Yanjun <zyjzyj2000@gmail.com>
> > Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
> > Tested-by: Yi Zhang <yi.zhang@redhat.com>
> > V2->V3: Remove print message
> > V1->V2: Modify the pr_info messages
> >  drivers/infiniband/sw/rxe/rxe_net.c | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/infiniband/sw/rxe/rxe_net.c b/drivers/infiniband/sw/rxe/rxe_net.c
> > index 01662727dca0..3b8ed007e8af 100644
> > +++ b/drivers/infiniband/sw/rxe/rxe_net.c
> > @@ -72,6 +72,9 @@ static struct dst_entry *rxe_find_route6(struct net_device *ndev,
> >       struct dst_entry *ndst;
> >       struct flowi6 fl6 = { { 0 } };
> >
> > +     if (!ipv6_mod_enabled())
> > +             return NULL;
> > +
> >       memset(&fl6, 0, sizeof(fl6));
> >       fl6.flowi6_oif = ndev->ifindex;
> >       memcpy(&fl6.saddr, saddr, sizeof(*saddr));
>
> What is this actually fixing?
>
> ndst = ipv6_stub->ipv6_dst_lookup_flow() will return an error if the
> ipv6 support is not loaded so why do we need more tests?

As what I said in commit log, when "When ipv6.disable=1 is set in
cmdline, ipv6 is actually disabled"
That is, when cat /proc/cmdline, the command line is
"
cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.12.0-rc3+ root=/dev/mapper/cl-root
ro resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap
crashkernel=512M ipv6.disable=1
"
And if you make the above configurations, then modprobe rdma_rxe should work.
then ''rdma link add rxe0 type rxe netdev eth0" should work well.
ndst = ipv6_stub->ipv6_dst_lookup_flow should not be called.
Can you tell me how to disable IPV6 in your test host?

> in the stack. As such, the operations of ipv6 in RXE will fail.
> So ipv6 features in RXE should also be disabled in RXE."

>
> > @@ -616,6 +619,8 @@ static int rxe_net_ipv4_init(void)
> >  static int rxe_net_ipv6_init(void)
> >  {
> >  #if IS_ENABLED(CONFIG_IPV6)
> > +     if (!ipv6_mod_enabled())
> > +             return 0;
> >
> >       recv_sockets.sk6 = rxe_setup_udp_tunnel(&init_net,
> >                                               htons(ROCE_V2_UDP_DPORT), true);
>
> rxe_setup_udp_tunnel() should already fail naturally because the V6
> socket won't be created
>
> What is the actual symptom this patch is trying to address?

This patch is try to fix the problem in the link
https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t

Zhu Yanjun

>
> Jason

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline
  2021-04-09 13:37     ` Jason Gunthorpe
@ 2021-04-12  6:34       ` Zhu Yanjun
  0 siblings, 0 replies; 5+ messages in thread
From: Zhu Yanjun @ 2021-04-12  6:34 UTC (permalink / raw)
  To: Jason Gunthorpe
  Cc: Zhu Yanjun, Doug Ledford, RDMA mailing list, Leon Romanovsky,
	Yi Zhang, Leon Romanovsky

On Fri, Apr 9, 2021 at 9:37 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Fri, Apr 09, 2021 at 10:36:42PM -0400, Zhu Yanjun wrote:
>
> > > What is the actual symptom this patch is trying to address?
> >
> > This patch is try to fix the problem in the link
> > https://lore.kernel.org/linux-rdma/880d7b59-4b17-a44f-1a91-88257bfc3aaa@redhat.com/T/#t
>
> you should ignore the -97 return code when creating the UDP v6 socket

Got it. I will send V4 for this IPv6 problem.

Zhu Yanjun

>
> Jason

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-04-11 14:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-26  1:27 [PATCHv3 for-next 1/1] RDMA/rxe: Disable ipv6 features when ipv6.disable set in cmdline Zhu Yanjun
2021-04-08 18:33 ` Jason Gunthorpe
2021-04-10  2:36   ` Zhu Yanjun
2021-04-09 13:37     ` Jason Gunthorpe
2021-04-12  6:34       ` Zhu Yanjun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).