diff options
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_addr.h | 20 | ||||
-rw-r--r-- | include/rdma/ib_cm.h | 16 | ||||
-rw-r--r-- | include/rdma/ib_user_cm.h | 7 | ||||
-rw-r--r-- | include/rdma/ib_user_verbs.h | 2 |
4 files changed, 36 insertions, 9 deletions
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h index 81b62307621d..c094e5012862 100644 --- a/include/rdma/ib_addr.h +++ b/include/rdma/ib_addr.h | |||
@@ -36,6 +36,22 @@ | |||
36 | #include <linux/socket.h> | 36 | #include <linux/socket.h> |
37 | #include <rdma/ib_verbs.h> | 37 | #include <rdma/ib_verbs.h> |
38 | 38 | ||
39 | struct rdma_addr_client { | ||
40 | atomic_t refcount; | ||
41 | struct completion comp; | ||
42 | }; | ||
43 | |||
44 | /** | ||
45 | * rdma_addr_register_client - Register an address client. | ||
46 | */ | ||
47 | void rdma_addr_register_client(struct rdma_addr_client *client); | ||
48 | |||
49 | /** | ||
50 | * rdma_addr_unregister_client - Deregister an address client. | ||
51 | * @client: Client object to deregister. | ||
52 | */ | ||
53 | void rdma_addr_unregister_client(struct rdma_addr_client *client); | ||
54 | |||
39 | struct rdma_dev_addr { | 55 | struct rdma_dev_addr { |
40 | unsigned char src_dev_addr[MAX_ADDR_LEN]; | 56 | unsigned char src_dev_addr[MAX_ADDR_LEN]; |
41 | unsigned char dst_dev_addr[MAX_ADDR_LEN]; | 57 | unsigned char dst_dev_addr[MAX_ADDR_LEN]; |
@@ -52,6 +68,7 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr); | |||
52 | /** | 68 | /** |
53 | * rdma_resolve_ip - Resolve source and destination IP addresses to | 69 | * rdma_resolve_ip - Resolve source and destination IP addresses to |
54 | * RDMA hardware addresses. | 70 | * RDMA hardware addresses. |
71 | * @client: Address client associated with request. | ||
55 | * @src_addr: An optional source address to use in the resolution. If a | 72 | * @src_addr: An optional source address to use in the resolution. If a |
56 | * source address is not provided, a usable address will be returned via | 73 | * source address is not provided, a usable address will be returned via |
57 | * the callback. | 74 | * the callback. |
@@ -64,7 +81,8 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr); | |||
64 | * or been canceled. A status of 0 indicates success. | 81 | * or been canceled. A status of 0 indicates success. |
65 | * @context: User-specified context associated with the call. | 82 | * @context: User-specified context associated with the call. |
66 | */ | 83 | */ |
67 | int rdma_resolve_ip(struct sockaddr *src_addr, struct sockaddr *dst_addr, | 84 | int rdma_resolve_ip(struct rdma_addr_client *client, |
85 | struct sockaddr *src_addr, struct sockaddr *dst_addr, | ||
68 | struct rdma_dev_addr *addr, int timeout_ms, | 86 | struct rdma_dev_addr *addr, int timeout_ms, |
69 | void (*callback)(int status, struct sockaddr *src_addr, | 87 | void (*callback)(int status, struct sockaddr *src_addr, |
70 | struct rdma_dev_addr *addr, void *context), | 88 | struct rdma_dev_addr *addr, void *context), |
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h index c9b4738be9d6..5c070176d9ab 100644 --- a/include/rdma/ib_cm.h +++ b/include/rdma/ib_cm.h | |||
@@ -60,6 +60,7 @@ enum ib_cm_state { | |||
60 | }; | 60 | }; |
61 | 61 | ||
62 | enum ib_cm_lap_state { | 62 | enum ib_cm_lap_state { |
63 | IB_CM_LAP_UNINIT, | ||
63 | IB_CM_LAP_IDLE, | 64 | IB_CM_LAP_IDLE, |
64 | IB_CM_LAP_SENT, | 65 | IB_CM_LAP_SENT, |
65 | IB_CM_LAP_RCVD, | 66 | IB_CM_LAP_RCVD, |
@@ -443,13 +444,20 @@ int ib_send_cm_drep(struct ib_cm_id *cm_id, | |||
443 | u8 private_data_len); | 444 | u8 private_data_len); |
444 | 445 | ||
445 | /** | 446 | /** |
446 | * ib_cm_establish - Forces a connection state to established. | 447 | * ib_cm_notify - Notifies the CM of an event reported to the consumer. |
447 | * @cm_id: Connection identifier to transition to established. | 448 | * @cm_id: Connection identifier to transition to established. |
449 | * @event: Type of event. | ||
448 | * | 450 | * |
449 | * This routine should be invoked by users who receive messages on a | 451 | * This routine should be invoked by users to notify the CM of relevant |
450 | * connected QP before an RTU has been received. | 452 | * communication events. Events that should be reported to the CM and |
453 | * when to report them are: | ||
454 | * | ||
455 | * IB_EVENT_COMM_EST - Used when a message is received on a connected | ||
456 | * QP before an RTU has been received. | ||
457 | * IB_EVENT_PATH_MIG - Notifies the CM that the connection has failed over | ||
458 | * to the alternate path. | ||
451 | */ | 459 | */ |
452 | int ib_cm_establish(struct ib_cm_id *cm_id); | 460 | int ib_cm_notify(struct ib_cm_id *cm_id, enum ib_event_type event); |
453 | 461 | ||
454 | /** | 462 | /** |
455 | * ib_send_cm_rej - Sends a connection rejection message to the | 463 | * ib_send_cm_rej - Sends a connection rejection message to the |
diff --git a/include/rdma/ib_user_cm.h b/include/rdma/ib_user_cm.h index 066c20b7cdfb..37650afb982c 100644 --- a/include/rdma/ib_user_cm.h +++ b/include/rdma/ib_user_cm.h | |||
@@ -38,7 +38,7 @@ | |||
38 | 38 | ||
39 | #include <rdma/ib_user_sa.h> | 39 | #include <rdma/ib_user_sa.h> |
40 | 40 | ||
41 | #define IB_USER_CM_ABI_VERSION 4 | 41 | #define IB_USER_CM_ABI_VERSION 5 |
42 | 42 | ||
43 | enum { | 43 | enum { |
44 | IB_USER_CM_CMD_CREATE_ID, | 44 | IB_USER_CM_CMD_CREATE_ID, |
@@ -46,7 +46,7 @@ enum { | |||
46 | IB_USER_CM_CMD_ATTR_ID, | 46 | IB_USER_CM_CMD_ATTR_ID, |
47 | 47 | ||
48 | IB_USER_CM_CMD_LISTEN, | 48 | IB_USER_CM_CMD_LISTEN, |
49 | IB_USER_CM_CMD_ESTABLISH, | 49 | IB_USER_CM_CMD_NOTIFY, |
50 | 50 | ||
51 | IB_USER_CM_CMD_SEND_REQ, | 51 | IB_USER_CM_CMD_SEND_REQ, |
52 | IB_USER_CM_CMD_SEND_REP, | 52 | IB_USER_CM_CMD_SEND_REP, |
@@ -117,8 +117,9 @@ struct ib_ucm_listen { | |||
117 | __u32 reserved; | 117 | __u32 reserved; |
118 | }; | 118 | }; |
119 | 119 | ||
120 | struct ib_ucm_establish { | 120 | struct ib_ucm_notify { |
121 | __u32 id; | 121 | __u32 id; |
122 | __u32 event; | ||
122 | }; | 123 | }; |
123 | 124 | ||
124 | struct ib_ucm_private_data { | 125 | struct ib_ucm_private_data { |
diff --git a/include/rdma/ib_user_verbs.h b/include/rdma/ib_user_verbs.h index db1b814b62cc..64a721fcbc1c 100644 --- a/include/rdma/ib_user_verbs.h +++ b/include/rdma/ib_user_verbs.h | |||
@@ -458,7 +458,7 @@ struct ib_uverbs_query_qp_resp { | |||
458 | __u8 cur_qp_state; | 458 | __u8 cur_qp_state; |
459 | __u8 path_mtu; | 459 | __u8 path_mtu; |
460 | __u8 path_mig_state; | 460 | __u8 path_mig_state; |
461 | __u8 en_sqd_async_notify; | 461 | __u8 sq_draining; |
462 | __u8 max_rd_atomic; | 462 | __u8 max_rd_atomic; |
463 | __u8 max_dest_rd_atomic; | 463 | __u8 max_dest_rd_atomic; |
464 | __u8 min_rnr_timer; | 464 | __u8 min_rnr_timer; |