]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
RDS: IB: don't use the link-local address for ib transport
authorSantosh Shilimkar <santosh.shilimkar@oracle.com>
Fri, 29 Apr 2016 21:50:55 +0000 (14:50 -0700)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Fri, 27 May 2016 16:31:17 +0000 (09:31 -0700)
Link-local address can't be used for IB failover and don't work
with IB stack. Even though the DB RDS usage has recommnded to not
use these addresses, we keep hitting issue because of accidental
usage of it because of missing application config or admin scripts
blindly doing rds-ping for each local address(s).

RDS TCP which doesn't support acitive active, there might be an
usecase so the current fix it limited for IB transport atm.

Example traces:
$ rds-ping -I 169.254.221.37 169.254.221.38
bind() failed, errno: 99 (Cannot assign requested address)

cosnole:
 RDS/IB: Link local address 169.254.221.37 NOT SUPPORTED
 RDS: rds_bind() could not find a transport for 169.254.221.37, load rds_tcp or rds_rdma?

Orabug: 23027670

Tested-by: Michael Nowak <michael.nowak@oracle.com>
Tested-by: Rose Wang <rose.wang@oracle.com>
Tested-by: Rafael Alejandro Peralez <rafael.peralez@oracle.com>
Acked-by: Mukesh Kacker <mukesh.kacker@oracle.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
Reviewed-by: Wengang Wang <wen.gang.wang@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
net/rds/ib.c

index 26d5302b0c63841ee575f97e9fe49f24ea6ffc95..19cf1ae6b22e323bea7dfe13902c0d0fb408296b 100644 (file)
@@ -430,6 +430,12 @@ static int rds_ib_laddr_check(struct net *net, __be32 addr)
        struct rdma_cm_id *cm_id;
        struct sockaddr_in sin;
 
+       /* Link-local addresses don't play well with IB */
+       if (ipv4_is_linklocal_169(addr)) {
+               pr_info_ratelimited("RDS/IB: Link local address %pI4 NOT SUPPORTED\n", &addr);
+               return -EADDRNOTAVAIL;
+       }
+
        /* Create a CMA ID and try to bind it. This catches both
         * IB and iWARP capable NICs.
         */