Home | History | Annotate | Download | only in rdma
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef IB_USER_CM_H
     20 #define IB_USER_CM_H
     21 #include <linux/types.h>
     22 #include <rdma/ib_user_sa.h>
     23 #define IB_USER_CM_ABI_VERSION 5
     24 enum {
     25   IB_USER_CM_CMD_CREATE_ID,
     26   IB_USER_CM_CMD_DESTROY_ID,
     27   IB_USER_CM_CMD_ATTR_ID,
     28   IB_USER_CM_CMD_LISTEN,
     29   IB_USER_CM_CMD_NOTIFY,
     30   IB_USER_CM_CMD_SEND_REQ,
     31   IB_USER_CM_CMD_SEND_REP,
     32   IB_USER_CM_CMD_SEND_RTU,
     33   IB_USER_CM_CMD_SEND_DREQ,
     34   IB_USER_CM_CMD_SEND_DREP,
     35   IB_USER_CM_CMD_SEND_REJ,
     36   IB_USER_CM_CMD_SEND_MRA,
     37   IB_USER_CM_CMD_SEND_LAP,
     38   IB_USER_CM_CMD_SEND_APR,
     39   IB_USER_CM_CMD_SEND_SIDR_REQ,
     40   IB_USER_CM_CMD_SEND_SIDR_REP,
     41   IB_USER_CM_CMD_EVENT,
     42   IB_USER_CM_CMD_INIT_QP_ATTR,
     43 };
     44 struct ib_ucm_cmd_hdr {
     45   __u32 cmd;
     46   __u16 in;
     47   __u16 out;
     48 };
     49 struct ib_ucm_create_id {
     50   __u64 uid;
     51   __u64 response;
     52 };
     53 struct ib_ucm_create_id_resp {
     54   __u32 id;
     55 };
     56 struct ib_ucm_destroy_id {
     57   __u64 response;
     58   __u32 id;
     59   __u32 reserved;
     60 };
     61 struct ib_ucm_destroy_id_resp {
     62   __u32 events_reported;
     63 };
     64 struct ib_ucm_attr_id {
     65   __u64 response;
     66   __u32 id;
     67   __u32 reserved;
     68 };
     69 struct ib_ucm_attr_id_resp {
     70   __be64 service_id;
     71   __be64 service_mask;
     72   __be32 local_id;
     73   __be32 remote_id;
     74 };
     75 struct ib_ucm_init_qp_attr {
     76   __u64 response;
     77   __u32 id;
     78   __u32 qp_state;
     79 };
     80 struct ib_ucm_listen {
     81   __be64 service_id;
     82   __be64 service_mask;
     83   __u32 id;
     84   __u32 reserved;
     85 };
     86 struct ib_ucm_notify {
     87   __u32 id;
     88   __u32 event;
     89 };
     90 struct ib_ucm_private_data {
     91   __u64 data;
     92   __u32 id;
     93   __u8 len;
     94   __u8 reserved[3];
     95 };
     96 struct ib_ucm_req {
     97   __u32 id;
     98   __u32 qpn;
     99   __u32 qp_type;
    100   __u32 psn;
    101   __be64 sid;
    102   __u64 data;
    103   __u64 primary_path;
    104   __u64 alternate_path;
    105   __u8 len;
    106   __u8 peer_to_peer;
    107   __u8 responder_resources;
    108   __u8 initiator_depth;
    109   __u8 remote_cm_response_timeout;
    110   __u8 flow_control;
    111   __u8 local_cm_response_timeout;
    112   __u8 retry_count;
    113   __u8 rnr_retry_count;
    114   __u8 max_cm_retries;
    115   __u8 srq;
    116   __u8 reserved[5];
    117 };
    118 struct ib_ucm_rep {
    119   __u64 uid;
    120   __u64 data;
    121   __u32 id;
    122   __u32 qpn;
    123   __u32 psn;
    124   __u8 len;
    125   __u8 responder_resources;
    126   __u8 initiator_depth;
    127   __u8 target_ack_delay;
    128   __u8 failover_accepted;
    129   __u8 flow_control;
    130   __u8 rnr_retry_count;
    131   __u8 srq;
    132   __u8 reserved[4];
    133 };
    134 struct ib_ucm_info {
    135   __u32 id;
    136   __u32 status;
    137   __u64 info;
    138   __u64 data;
    139   __u8 info_len;
    140   __u8 data_len;
    141   __u8 reserved[6];
    142 };
    143 struct ib_ucm_mra {
    144   __u64 data;
    145   __u32 id;
    146   __u8 len;
    147   __u8 timeout;
    148   __u8 reserved[2];
    149 };
    150 struct ib_ucm_lap {
    151   __u64 path;
    152   __u64 data;
    153   __u32 id;
    154   __u8 len;
    155   __u8 reserved[3];
    156 };
    157 struct ib_ucm_sidr_req {
    158   __u32 id;
    159   __u32 timeout;
    160   __be64 sid;
    161   __u64 data;
    162   __u64 path;
    163   __u16 reserved_pkey;
    164   __u8 len;
    165   __u8 max_cm_retries;
    166   __u8 reserved[4];
    167 };
    168 struct ib_ucm_sidr_rep {
    169   __u32 id;
    170   __u32 qpn;
    171   __u32 qkey;
    172   __u32 status;
    173   __u64 info;
    174   __u64 data;
    175   __u8 info_len;
    176   __u8 data_len;
    177   __u8 reserved[6];
    178 };
    179 struct ib_ucm_event_get {
    180   __u64 response;
    181   __u64 data;
    182   __u64 info;
    183   __u8 data_len;
    184   __u8 info_len;
    185   __u8 reserved[6];
    186 };
    187 struct ib_ucm_req_event_resp {
    188   struct ib_user_path_rec primary_path;
    189   struct ib_user_path_rec alternate_path;
    190   __be64 remote_ca_guid;
    191   __u32 remote_qkey;
    192   __u32 remote_qpn;
    193   __u32 qp_type;
    194   __u32 starting_psn;
    195   __u8 responder_resources;
    196   __u8 initiator_depth;
    197   __u8 local_cm_response_timeout;
    198   __u8 flow_control;
    199   __u8 remote_cm_response_timeout;
    200   __u8 retry_count;
    201   __u8 rnr_retry_count;
    202   __u8 srq;
    203   __u8 port;
    204   __u8 reserved[7];
    205 };
    206 struct ib_ucm_rep_event_resp {
    207   __be64 remote_ca_guid;
    208   __u32 remote_qkey;
    209   __u32 remote_qpn;
    210   __u32 starting_psn;
    211   __u8 responder_resources;
    212   __u8 initiator_depth;
    213   __u8 target_ack_delay;
    214   __u8 failover_accepted;
    215   __u8 flow_control;
    216   __u8 rnr_retry_count;
    217   __u8 srq;
    218   __u8 reserved[5];
    219 };
    220 struct ib_ucm_rej_event_resp {
    221   __u32 reason;
    222 };
    223 struct ib_ucm_mra_event_resp {
    224   __u8 timeout;
    225   __u8 reserved[3];
    226 };
    227 struct ib_ucm_lap_event_resp {
    228   struct ib_user_path_rec path;
    229 };
    230 struct ib_ucm_apr_event_resp {
    231   __u32 status;
    232 };
    233 struct ib_ucm_sidr_req_event_resp {
    234   __u16 pkey;
    235   __u8 port;
    236   __u8 reserved;
    237 };
    238 struct ib_ucm_sidr_rep_event_resp {
    239   __u32 status;
    240   __u32 qkey;
    241   __u32 qpn;
    242 };
    243 #define IB_UCM_PRES_DATA 0x01
    244 #define IB_UCM_PRES_INFO 0x02
    245 #define IB_UCM_PRES_PRIMARY 0x04
    246 #define IB_UCM_PRES_ALTERNATE 0x08
    247 struct ib_ucm_event_resp {
    248   __u64 uid;
    249   __u32 id;
    250   __u32 event;
    251   __u32 present;
    252   __u32 reserved;
    253   union {
    254     struct ib_ucm_req_event_resp req_resp;
    255     struct ib_ucm_rep_event_resp rep_resp;
    256     struct ib_ucm_rej_event_resp rej_resp;
    257     struct ib_ucm_mra_event_resp mra_resp;
    258     struct ib_ucm_lap_event_resp lap_resp;
    259     struct ib_ucm_apr_event_resp apr_resp;
    260     struct ib_ucm_sidr_req_event_resp sidr_req_resp;
    261     struct ib_ucm_sidr_rep_event_resp sidr_rep_resp;
    262     __u32 send_status;
    263   } u;
    264 };
    265 #endif
    266