On Wed, Apr 02, 2025 at 07:13:06AM +0200, Jack Wang wrote: > I hit following error which testing migration in pure RoCE env: > "-incoming rdma:[::]:8089: RDMA ERROR: You only have RoCE / iWARP devices in > your > systems and your management software has specified '[::]', but IPv6 over RoCE > / > iWARP is not supported in Linux.#012'." > > In our setup, we use rdma bind on ipv6 on target host, while connect from > source > with ipv4, remove the qemu_rdma_broken_ipv6_kernel, migration just work > fine. > > Checking the git history, the function was added since introducing of > rdma migration, which is more than 10 years ago. linux-rdma has > improved support on RoCE/iWARP for ipv6 over past years. There are a few fixes > back in 2016 seems related to the issue, eg: > aeb76df46d11 ("IB/core: Set routable RoCE gid type for ipv4/ipv6 networks") > > other fixes back in 2018, eg: > 052eac6eeb56 RDMA/cma: Update RoCE multicast routines to use net namespace > 8d20a1f0ecd5 RDMA/cma: Fix rdma_cm raw IB path setting for RoCE > 9327c7afdce3 RDMA/cma: Provide a function to set RoCE path record L2 > parameters > 5c181bda77f4 RDMA/cma: Set default GID type as RoCE when resolving RoCE route > 3c7f67d1880d IB/cma: Fix default RoCE type setting > be1d325a3358 IB/core: Set RoCEv2 MGID according to spec > 63a5f483af0e IB/cma: Set default gid type to RoCEv2 > > So remove the outdated function and it's usage. > > Cc: Peter Xu <pet...@redhat.com> > Cc: Li Zhijian <lizhij...@fujitsu.com> > Cc: Yu Zhang <yu.zh...@ionos.com> > Cc: Fabiano Rosas <faro...@suse.de > Cc: qemu-devel@nongnu.org > Cc: linux-r...@vger.kernel.org > Cc: mich...@flatgalaxy.com > Signed-off-by: Jack Wang <jinpu.w...@ionos.com> > Tested-by: Li zhijian <lizhij...@fujitsu.com> > Reviewed-by: Michael Galaxy <mrgal...@nvidia.com> > --- > v2: cleanup unused err, update comment (Fabiano) > v1: drop RFC, fix build error (zhijian), collect Reviewed-by and Tested-by
Queued with some cosmetic changes: diff --git a/migration/rdma.c b/migration/rdma.c index 28def620d9..2d839fce6c 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -2502,7 +2502,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp) goto err_dest_init_bind_addr; } - /* Try all addresses*/ + /* Try all addresses */ for (e = res; e != NULL; e = e->ai_next) { inet_ntop(e->ai_family, @@ -2517,7 +2517,7 @@ static int qemu_rdma_dest_init(RDMAContext *rdma, Error **errp) rdma_freeaddrinfo(res); if (!e) { - error_setg(errp, "RDMA ERROR: Error: could not rdma_bind_addr!"); + error_setg(errp, "RDMA ERROR: Error: could not rdma_bind_addr!"); goto err_dest_init_bind_addr; } Thanks, -- Peter Xu