diff options
author | Michael Brown | 2009-08-06 02:18:38 +0200 |
---|---|---|
committer | Michael Brown | 2009-08-09 00:56:28 +0200 |
commit | 34bfc04e4c2ea74a025994fc37c83d640942a651 (patch) | |
tree | 959f4815000618ff158ffccf14fcb21c89c70d16 /src/include/gpxe/ib_mcast.h | |
parent | [infiniband] Update subnet management agent to use a management interface (diff) | |
download | ipxe-34bfc04e4c2ea74a025994fc37c83d640942a651.tar.gz ipxe-34bfc04e4c2ea74a025994fc37c83d640942a651.tar.xz ipxe-34bfc04e4c2ea74a025994fc37c83d640942a651.zip |
[infiniband] Update all other MAD users to use a management interface
Diffstat (limited to 'src/include/gpxe/ib_mcast.h')
-rw-r--r-- | src/include/gpxe/ib_mcast.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/src/include/gpxe/ib_mcast.h b/src/include/gpxe/ib_mcast.h index 2ca3382b..74eccd0b 100644 --- a/src/include/gpxe/ib_mcast.h +++ b/src/include/gpxe/ib_mcast.h @@ -11,9 +11,38 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include <gpxe/infiniband.h> +struct ib_mad_transaction; + +/** An Infiniband multicast group membership */ +struct ib_mc_membership { + /** Queue pair */ + struct ib_queue_pair *qp; + /** Multicast GID */ + struct ib_gid gid; + /** Multicast group join transaction */ + struct ib_mad_transaction *madx; + /** Handle join success/failure + * + * @v ibdev Infiniband device + * @v qp Queue pair + * @v membership Multicast group membership + * @v rc Status code + * @v mad Response MAD (or NULL on error) + */ + void ( * complete ) ( struct ib_device *ibdev, struct ib_queue_pair *qp, + struct ib_mc_membership *membership, int rc, + union ib_mad *mad ); +}; + extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *gid ); + struct ib_mc_membership *membership, + struct ib_gid *gid, + void ( * joined ) ( struct ib_device *ibdev, + struct ib_queue_pair *qp, + struct ib_mc_membership *memb, + int rc, union ib_mad *mad ) ); + extern void ib_mcast_leave ( struct ib_device *ibdev, struct ib_queue_pair *qp, - struct ib_gid *gid ); + struct ib_mc_membership *membership ); #endif /* _GPXE_IB_MCAST_H */ |