diff options
Diffstat (limited to 'include/rdma/ib_verbs.h')
| -rw-r--r-- | include/rdma/ib_verbs.h | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 701e7b40560a..95bf4bac44cb 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
| @@ -94,7 +94,7 @@ enum ib_device_cap_flags { | |||
| 94 | IB_DEVICE_SRQ_RESIZE = (1<<13), | 94 | IB_DEVICE_SRQ_RESIZE = (1<<13), |
| 95 | IB_DEVICE_N_NOTIFY_CQ = (1<<14), | 95 | IB_DEVICE_N_NOTIFY_CQ = (1<<14), |
| 96 | IB_DEVICE_ZERO_STAG = (1<<15), | 96 | IB_DEVICE_ZERO_STAG = (1<<15), |
| 97 | IB_DEVICE_SEND_W_INV = (1<<16), | 97 | IB_DEVICE_RESERVED = (1<<16), /* old SEND_W_INV */ |
| 98 | IB_DEVICE_MEM_WINDOW = (1<<17), | 98 | IB_DEVICE_MEM_WINDOW = (1<<17), |
| 99 | /* | 99 | /* |
| 100 | * Devices should set IB_DEVICE_UD_IP_SUM if they support | 100 | * Devices should set IB_DEVICE_UD_IP_SUM if they support |
| @@ -104,6 +104,8 @@ enum ib_device_cap_flags { | |||
| 104 | * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode. | 104 | * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode. |
| 105 | */ | 105 | */ |
| 106 | IB_DEVICE_UD_IP_CSUM = (1<<18), | 106 | IB_DEVICE_UD_IP_CSUM = (1<<18), |
| 107 | IB_DEVICE_UD_TSO = (1<<19), | ||
| 108 | IB_DEVICE_SEND_W_INV = (1<<21), | ||
| 107 | }; | 109 | }; |
| 108 | 110 | ||
| 109 | enum ib_atomic_cap { | 111 | enum ib_atomic_cap { |
| @@ -411,6 +413,7 @@ enum ib_wc_opcode { | |||
| 411 | IB_WC_COMP_SWAP, | 413 | IB_WC_COMP_SWAP, |
| 412 | IB_WC_FETCH_ADD, | 414 | IB_WC_FETCH_ADD, |
| 413 | IB_WC_BIND_MW, | 415 | IB_WC_BIND_MW, |
| 416 | IB_WC_LSO, | ||
| 414 | /* | 417 | /* |
| 415 | * Set value of IB_WC_RECV so consumers can test if a completion is a | 418 | * Set value of IB_WC_RECV so consumers can test if a completion is a |
| 416 | * receive by testing (opcode & IB_WC_RECV). | 419 | * receive by testing (opcode & IB_WC_RECV). |
| @@ -495,6 +498,10 @@ enum ib_qp_type { | |||
| 495 | IB_QPT_RAW_ETY | 498 | IB_QPT_RAW_ETY |
| 496 | }; | 499 | }; |
| 497 | 500 | ||
| 501 | enum ib_qp_create_flags { | ||
| 502 | IB_QP_CREATE_IPOIB_UD_LSO = 1 << 0, | ||
| 503 | }; | ||
| 504 | |||
| 498 | struct ib_qp_init_attr { | 505 | struct ib_qp_init_attr { |
| 499 | void (*event_handler)(struct ib_event *, void *); | 506 | void (*event_handler)(struct ib_event *, void *); |
| 500 | void *qp_context; | 507 | void *qp_context; |
| @@ -504,6 +511,7 @@ struct ib_qp_init_attr { | |||
| 504 | struct ib_qp_cap cap; | 511 | struct ib_qp_cap cap; |
| 505 | enum ib_sig_type sq_sig_type; | 512 | enum ib_sig_type sq_sig_type; |
| 506 | enum ib_qp_type qp_type; | 513 | enum ib_qp_type qp_type; |
| 514 | enum ib_qp_create_flags create_flags; | ||
| 507 | u8 port_num; /* special QP types only */ | 515 | u8 port_num; /* special QP types only */ |
| 508 | }; | 516 | }; |
| 509 | 517 | ||
| @@ -617,7 +625,9 @@ enum ib_wr_opcode { | |||
| 617 | IB_WR_SEND_WITH_IMM, | 625 | IB_WR_SEND_WITH_IMM, |
| 618 | IB_WR_RDMA_READ, | 626 | IB_WR_RDMA_READ, |
| 619 | IB_WR_ATOMIC_CMP_AND_SWP, | 627 | IB_WR_ATOMIC_CMP_AND_SWP, |
| 620 | IB_WR_ATOMIC_FETCH_AND_ADD | 628 | IB_WR_ATOMIC_FETCH_AND_ADD, |
| 629 | IB_WR_LSO, | ||
| 630 | IB_WR_SEND_WITH_INV, | ||
| 621 | }; | 631 | }; |
| 622 | 632 | ||
| 623 | enum ib_send_flags { | 633 | enum ib_send_flags { |
| @@ -641,7 +651,10 @@ struct ib_send_wr { | |||
| 641 | int num_sge; | 651 | int num_sge; |
| 642 | enum ib_wr_opcode opcode; | 652 | enum ib_wr_opcode opcode; |
| 643 | int send_flags; | 653 | int send_flags; |
| 644 | __be32 imm_data; | 654 | union { |
| 655 | __be32 imm_data; | ||
| 656 | u32 invalidate_rkey; | ||
| 657 | } ex; | ||
| 645 | union { | 658 | union { |
| 646 | struct { | 659 | struct { |
| 647 | u64 remote_addr; | 660 | u64 remote_addr; |
| @@ -655,6 +668,9 @@ struct ib_send_wr { | |||
| 655 | } atomic; | 668 | } atomic; |
| 656 | struct { | 669 | struct { |
| 657 | struct ib_ah *ah; | 670 | struct ib_ah *ah; |
| 671 | void *header; | ||
| 672 | int hlen; | ||
| 673 | int mss; | ||
| 658 | u32 remote_qpn; | 674 | u32 remote_qpn; |
| 659 | u32 remote_qkey; | 675 | u32 remote_qkey; |
| 660 | u16 pkey_index; /* valid for GSI only */ | 676 | u16 pkey_index; /* valid for GSI only */ |
| @@ -730,7 +746,7 @@ struct ib_uobject { | |||
| 730 | struct ib_ucontext *context; /* associated user context */ | 746 | struct ib_ucontext *context; /* associated user context */ |
| 731 | void *object; /* containing object */ | 747 | void *object; /* containing object */ |
| 732 | struct list_head list; /* link to context's list */ | 748 | struct list_head list; /* link to context's list */ |
| 733 | u32 id; /* index into kernel idr */ | 749 | int id; /* index into kernel idr */ |
| 734 | struct kref ref; | 750 | struct kref ref; |
| 735 | struct rw_semaphore mutex; /* protects .live */ | 751 | struct rw_semaphore mutex; /* protects .live */ |
| 736 | int live; | 752 | int live; |
| @@ -971,6 +987,8 @@ struct ib_device { | |||
| 971 | int comp_vector, | 987 | int comp_vector, |
| 972 | struct ib_ucontext *context, | 988 | struct ib_ucontext *context, |
| 973 | struct ib_udata *udata); | 989 | struct ib_udata *udata); |
| 990 | int (*modify_cq)(struct ib_cq *cq, u16 cq_count, | ||
| 991 | u16 cq_period); | ||
| 974 | int (*destroy_cq)(struct ib_cq *cq); | 992 | int (*destroy_cq)(struct ib_cq *cq); |
| 975 | int (*resize_cq)(struct ib_cq *cq, int cqe, | 993 | int (*resize_cq)(struct ib_cq *cq, int cqe, |
| 976 | struct ib_udata *udata); | 994 | struct ib_udata *udata); |
| @@ -1376,6 +1394,15 @@ struct ib_cq *ib_create_cq(struct ib_device *device, | |||
| 1376 | int ib_resize_cq(struct ib_cq *cq, int cqe); | 1394 | int ib_resize_cq(struct ib_cq *cq, int cqe); |
| 1377 | 1395 | ||
| 1378 | /** | 1396 | /** |
| 1397 | * ib_modify_cq - Modifies moderation params of the CQ | ||
| 1398 | * @cq: The CQ to modify. | ||
| 1399 | * @cq_count: number of CQEs that will trigger an event | ||
| 1400 | * @cq_period: max period of time in usec before triggering an event | ||
| 1401 | * | ||
| 1402 | */ | ||
| 1403 | int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period); | ||
| 1404 | |||
| 1405 | /** | ||
| 1379 | * ib_destroy_cq - Destroys the specified CQ. | 1406 | * ib_destroy_cq - Destroys the specified CQ. |
| 1380 | * @cq: The CQ to destroy. | 1407 | * @cq: The CQ to destroy. |
| 1381 | */ | 1408 | */ |
