From b5aa51ac62bd36294e1f312d0ac1d742f28fe7b0 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 8 Mar 2016 17:02:24 +0000 Subject: [ipoib] Resimplify test for received broadcast packets Commit e62e52b ("[ipoib] Simplify test for received broadcast packets") relies upon the multicast LID being present in the destination address vector as passed to ipoib_complete_recv(). Unfortunately, this information is not present in many Infiniband devices' completion queue entries. Fix by testing instead for the presence of a multicast GID. Signed-off-by: Michael Brown --- src/include/ipxe/ib_packet.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/include') diff --git a/src/include/ipxe/ib_packet.h b/src/include/ipxe/ib_packet.h index 2cea016bd..747f96399 100644 --- a/src/include/ipxe/ib_packet.h +++ b/src/include/ipxe/ib_packet.h @@ -48,6 +48,9 @@ union ib_gid { #define IB_GID_ARGS( gid ) \ IB_GUID_ARGS ( &(gid)->s.prefix ), IB_GUID_ARGS ( &(gid)->s.guid ) +/** Test for multicast GID */ +#define IB_GID_MULTICAST( gid ) ( (gid)->bytes[0] == 0xff ) + /** An Infiniband Local Route Header */ struct ib_local_route_header { /** Virtual lane and link version */ -- cgit v1.2.3-55-g7522