OSDN Git Service

RDMA/rxe: Fix bug rejecting all multicast packets
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 8 Oct 2020 21:27:53 +0000 (16:27 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Thu, 8 Oct 2020 23:22:12 +0000 (20:22 -0300)
commitde55412d02a2c7554053a19dc98addd88c8c3c2a
tree49f2d870b59fd1506ef63cf3f94fba6972b0092d
parente7ec96fc7932f48a6d6cdd05bf82004a1a04285b
RDMA/rxe: Fix bug rejecting all multicast packets

Fix a bug in rxe_rcv() that causes all multicast packets to be
dropped. Currently rxe_match_dgid() is called for each packet to verify
that the destination IP address matches one of the entries in the port
source GID table. This is incorrect for IP multicast addresses since they
do not appear in the GID table.

Add code to detect multicast addresses.

Change function name to rxe_chk_dgid() which is clearer.

Link: https://lore.kernel.org/r/20201008212753.265249-1-rpearson@hpe.com
Signed-off-by: Bob Pearson <rpearson@hpe.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_recv.c