summaryrefslogtreecommitdiffstats
path: root/src/include/ipxe/ib_packet.h
diff options
context:
space:
mode:
authorMichael Brown2016-03-08 18:02:24 +0100
committerMichael Brown2016-03-08 18:43:26 +0100
commitb5aa51ac62bd36294e1f312d0ac1d742f28fe7b0 (patch)
treea032cabf893c63d02aed83d24e3d4969a254f1b7 /src/include/ipxe/ib_packet.h
parent[infiniband] Retrieve GID flag from cached path entries (diff)
downloadipxe-b5aa51ac62bd36294e1f312d0ac1d742f28fe7b0.tar.gz
ipxe-b5aa51ac62bd36294e1f312d0ac1d742f28fe7b0.tar.xz
ipxe-b5aa51ac62bd36294e1f312d0ac1d742f28fe7b0.zip
[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 <mcb30@ipxe.org>
Diffstat (limited to 'src/include/ipxe/ib_packet.h')
-rw-r--r--src/include/ipxe/ib_packet.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/include/ipxe/ib_packet.h b/src/include/ipxe/ib_packet.h
index 2cea016b..747f9639 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 */