Whamcloud - gitweb
LU-7734 lnet: cpt locking
[fs/lustre-release.git] / lnet / include / lnet / types.h
index ee2787d..6b9a949 100644 (file)
@@ -409,6 +409,7 @@ typedef struct {
         * - LNET_MD_IOVEC: The start and length fields specify an array of
         *   struct iovec.
         * - LNET_MD_MAX_SIZE: The max_size field is valid.
+        * - LNET_MD_BULK_HANDLE: The bulk_handle field is valid.
         *
         * Note:
         * - LNET_MD_KIOV or LNET_MD_IOVEC allows for a scatter/gather
@@ -432,6 +433,15 @@ typedef struct {
         * descriptor are not logged.
         */
        lnet_handle_eq_t eq_handle;
+       /**
+        * The bulk MD handle which was registered to describe the buffers
+        * either to be used to transfer data to the peer or receive data
+        * from the peer. This allows LNet to properly determine the NUMA
+        * node on which the memory was allocated and use that to select the
+        * nearest local network interface. This value is only used
+        * if the LNET_MD_BULK_HANDLE option is set.
+        */
+       lnet_handle_md_t bulk_handle;
 } lnet_md_t;
 
 /* Max Transfer Unit (minimum supported everywhere).
@@ -462,6 +472,8 @@ typedef struct {
 #define LNET_MD_MAX_SIZE            (1 << 7)
 /** See lnet_md_t::options. */
 #define LNET_MD_KIOV                (1 << 8)
+/** See lnet_md_t::options. */
+#define LNET_MD_BULK_HANDLE         (1 << 9)
 
 /* For compatibility with Cray Portals */
 #define LNET_MD_PHYS                        0