[infiniband] Provide a general mechanism for multicast group joins

Generalise out the multicast group membership record code from IPoIB.
This commit is contained in:
Michael Brown
2009-07-07 16:07:31 +01:00
parent 3c77fe73a5
commit 0fbf2f6bda
6 changed files with 274 additions and 129 deletions

View File

@@ -146,6 +146,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_ib_qset ( ERRFILE_NET | 0x001a0000 )
#define ERRFILE_ib_gma ( ERRFILE_NET | 0x001b0000 )
#define ERRFILE_ib_pathrec ( ERRFILE_NET | 0x001c0000 )
#define ERRFILE_ib_mcast ( ERRFILE_NET | 0x001d0000 )
#define ERRFILE_image ( ERRFILE_IMAGE | 0x00000000 )
#define ERRFILE_elf ( ERRFILE_IMAGE | 0x00010000 )

View File

@@ -203,6 +203,8 @@ struct ib_smp_class_specific {
#define IB_SA_CLASS_VERSION 2
#define IB_SA_METHOD_DELETE_RESP 0x95
struct ib_rmpp_hdr {
uint32_t raw[3];
} __attribute__ (( packed ));

View File

@@ -0,0 +1,19 @@
#ifndef _GPXE_IB_MCAST_H
#define _GPXE_IB_MCAST_H
/** @file
*
* Infiniband multicast groups
*
*/
FILE_LICENCE ( GPL2_OR_LATER );
#include <gpxe/infiniband.h>
extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp,
struct ib_gid *gid );
extern void ib_mcast_leave ( struct ib_device *ibdev, struct ib_queue_pair *qp,
struct ib_gid *gid );
#endif /* _GPXE_IB_MCAST_H */