#include <linux/types.h>
 
-#define IB_USER_CM_ABI_VERSION 3
+#define IB_USER_CM_ABI_VERSION 4
 
 enum {
        IB_USER_CM_CMD_CREATE_ID,
 struct ib_ucm_destroy_id {
        __u64 response;
        __u32 id;
+       __u32 reserved;
 };
 
 struct ib_ucm_destroy_id_resp {
 struct ib_ucm_attr_id {
        __u64 response;
        __u32 id;
+       __u32 reserved;
 };
 
 struct ib_ucm_attr_id_resp {
        __be64 service_id;
        __be64 service_mask;
        __u32 id;
+       __u32 reserved;
 };
 
 struct ib_ucm_establish {
        __u8  rnr_retry_count;
        __u8  max_cm_retries;
        __u8  srq;
-       __u8  reserved[1];
+       __u8  reserved[5];
 };
 
 struct ib_ucm_rep {
        __u8  flow_control;
        __u8  rnr_retry_count;
        __u8  srq;
+       __u8  reserved[4];
 };
 
 struct ib_ucm_info {
        __u64 data;
        __u8  info_len;
        __u8  data_len;
-       __u8  reserved[2];
+       __u8  reserved[6];
 };
 
 struct ib_ucm_mra {
        __u16 pkey;
        __u8  len;
        __u8  max_cm_retries;
+       __u8  reserved[4];
 };
 
 struct ib_ucm_sidr_rep {
        __u64 data;
        __u8  info_len;
        __u8  data_len;
-       __u8  reserved[2];
+       __u8  reserved[6];
 };
 /*
  * event notification ABI structures.
        __u64 info;
        __u8  data_len;
        __u8  info_len;
-       __u8  reserved[2];
+       __u8  reserved[6];
 };
 
 struct ib_ucm_req_event_resp {
        __u8  rnr_retry_count;
        __u8  srq;
        __u8  port;
+       __u8  reserved[7];
 };
 
 struct ib_ucm_rep_event_resp {
        __u8  flow_control;
        __u8  rnr_retry_count;
        __u8  srq;
-       __u8  reserved[1];
+       __u8  reserved[5];
 };
 
 struct ib_ucm_rej_event_resp {
        __u32 id;
        __u32 event;
        __u32 present;
+       __u32 reserved;
        union {
                struct ib_ucm_req_event_resp req_resp;
                struct ib_ucm_rep_event_resp rep_resp;