Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[safe/jmp/linux-2.6] / include / rdma / rdma_user_cm.h
index 9572ab8..c557054 100644 (file)
@@ -38,7 +38,7 @@
 #include <rdma/ib_user_verbs.h>
 #include <rdma/ib_user_sa.h>
 
-#define RDMA_USER_CM_ABI_VERSION       3
+#define RDMA_USER_CM_ABI_VERSION       4
 
 #define RDMA_MAX_PRIVATE_DATA          256
 
@@ -58,7 +58,10 @@ enum {
        RDMA_USER_CM_CMD_GET_EVENT,
        RDMA_USER_CM_CMD_GET_OPTION,
        RDMA_USER_CM_CMD_SET_OPTION,
-       RDMA_USER_CM_CMD_NOTIFY
+       RDMA_USER_CM_CMD_NOTIFY,
+       RDMA_USER_CM_CMD_JOIN_MCAST,
+       RDMA_USER_CM_CMD_LEAVE_MCAST,
+       RDMA_USER_CM_CMD_MIGRATE_ID
 };
 
 /*
@@ -188,6 +191,13 @@ struct rdma_ucm_notify {
        __u32 event;
 };
 
+struct rdma_ucm_join_mcast {
+       __u64 response;         /* rdma_ucm_create_id_resp */
+       __u64 uid;
+       struct sockaddr_in6 addr;
+       __u32 id;
+};
+
 struct rdma_ucm_get_event {
        __u64 response;
 };
@@ -203,4 +213,32 @@ struct rdma_ucm_event_resp {
        } param;
 };
 
+/* Option levels */
+enum {
+       RDMA_OPTION_ID          = 0
+};
+
+/* Option details */
+enum {
+       RDMA_OPTION_ID_TOS      = 0
+};
+
+struct rdma_ucm_set_option {
+       __u64 optval;
+       __u32 id;
+       __u32 level;
+       __u32 optname;
+       __u32 optlen;
+};
+
+struct rdma_ucm_migrate_id {
+       __u64 response;
+       __u32 id;
+       __u32 fd;
+};
+
+struct rdma_ucm_migrate_resp {
+       __u32 events_reported;
+};
+
 #endif /* RDMA_USER_CM_H */