diff options
author | Michael Brown | 2009-11-13 20:10:13 +0100 |
---|---|---|
committer | Michael Brown | 2009-11-16 23:14:58 +0100 |
commit | 50242e4202f7fc77facfcebca25d107c4abc60c1 (patch) | |
tree | 0a784f19bed32aae6622d2888fcef09f48c65750 | |
parent | [infiniband] Rename IB_PKEY_NONE to IB_PKEY_DEFAULT (diff) | |
download | ipxe-50242e4202f7fc77facfcebca25d107c4abc60c1.tar.gz ipxe-50242e4202f7fc77facfcebca25d107c4abc60c1.tar.xz ipxe-50242e4202f7fc77facfcebca25d107c4abc60c1.zip |
[ipoib] Always set the "full membership" bit in the IPv4 broadcast GID
The SM always creates the IPoIB multicast groups with full membership
partition keys.
-rw-r--r-- | src/drivers/net/ipoib.c | 3 | ||||
-rw-r--r-- | src/include/gpxe/infiniband.h | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/drivers/net/ipoib.c b/src/drivers/net/ipoib.c index 06e6a2cf..b8338916 100644 --- a/src/drivers/net/ipoib.c +++ b/src/drivers/net/ipoib.c @@ -708,7 +708,8 @@ void ipoib_link_state_changed ( struct ib_device *ibdev ) { sizeof ( mac->gid.u.half[0] ) ); /* Update broadcast GID based on potentially-new partition key */ - ipoib->broadcast.gid.u.words[2] = htons ( ibdev->pkey ); + ipoib->broadcast.gid.u.words[2] = + htons ( ibdev->pkey | IB_PKEY_FULL ); /* Set net device link state to reflect Infiniband link state */ rc = ib_link_rc ( ibdev ); diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h index a12e4036..70b930de 100644 --- a/src/include/gpxe/infiniband.h +++ b/src/include/gpxe/infiniband.h @@ -33,6 +33,9 @@ FILE_LICENCE ( GPL2_OR_LATER ); /** Default Infiniband partition key */ #define IB_PKEY_DEFAULT 0xffff +/** Infiniband partition key full membership flag */ +#define IB_PKEY_FULL 0x8000 + /** * Maximum payload size * |